package kz.arta.synergy.workflow.mobile.android.forms.general.components.listbox;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;

import com.github.lzyzsd.jsbridge.CallBackFunction;

import kz.arta.synergy.workflow.mobile.android.common.requests.RestClient;

/**
 * Created by neox on 18.04.16.
 * Выпадающий список
 */
public class ListBox {

    /**
     * Activity
     */
    private Activity activity;

    /**
     * Конструктор
     *
     * @param activity активити
     */
    public ListBox(Activity activity) {
        this.activity = activity;
    }

    /**
     * Метод используется для отображения контекстного меню
     *
     * @param data     описание
     * @param function callback
     */
    public void showDialog(String data, final CallBackFunction function) {
        final Items[] items = RestClient.getGson().fromJson(data, Items[].class);
        if (items.length == 0) {
            return;
        }
        String[] titles = new String[items.length];
        for (int i = 0; i < items.length; i++) {
            titles[i] = items[i].title;
        }
        AlertDialog.Builder dialog = new AlertDialog.Builder(activity);
        dialog.setItems(titles, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int index) {
                function.onCallBack(items[index].value);
            }
        });
        dialog.show();
    }

    /**
     * Описание комбобокса
     */
    class Items {

        /**
         * Значение
         */
        String value;

        /**
         * Имя
         */
        String title;
    }

}
