package shkd.repc.repmd.template;

import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.form.FormShowParameter;
import kd.bos.form.control.Button;
import kd.bos.form.control.Control;
import kd.bos.form.control.EntryGrid;
import kd.bos.form.events.BeforeClosedEvent;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.sdk.plugin.Plugin;
import shkd.repc.repmd.template.util.Template;

import java.util.ArrayList;
import java.util.EventObject;
import java.util.List;

public class AreaTemplateFromPlugin extends AbstractFormPlugin implements Plugin {

    private static final List<Template> ENTRY_LIST = new ArrayList<>();
    private static final DynamicObjectCollection ENTRY_COLLECTION = new DynamicObjectCollection();

    @Override
    public void afterBindData(EventObject e) {
        super.afterBindData(e);
        ENTRY_COLLECTION.clear();
        DynamicObjectCollection entry = this.getModel().getEntryEntity("qeug_entryentity");
        if (entry == null || entry.size() == 0) {
            DynamicObjectCollection query = QueryServiceHelper.query("qeug_areatemplate", "id,qeug_number,qeug_remark", null);
            if (null!=query&& query.size()!=0){
                for (int i = 0; i < query.size(); i++) {
                    DynamicObject dynamicObject = entry.addNew();
                    dynamicObject.set("qeug_id",query.get(i).getString("id"));
                    dynamicObject.set("qeug_number",query.get(i).getString("qeug_number"));
                    dynamicObject.set("qeug_remark",query.get(i).getString("qeug_remark"));
                }
                this.getView().updateView("qeug_entryentity");
            }
        }
    }

    @Override
    public void registerListener(EventObject e) {
        super.registerListener(e);
        Button button = this.getView().getControl("btnok");
        button.addClickListener(this);
    }


    @Override
    public void click(EventObject evt) {
        Control source = (Control) evt.getSource();
        String key = source.getKey();
        // 点击确定按钮
        if (StringUtils.equals("btnok", key)) {
            ENTRY_COLLECTION.clear();
            EntryGrid entryGrid = this.getControl("qeug_entryentity");
            int[] selectRows = entryGrid.getSelectRows();
            DynamicObjectCollection entity = this.getModel().getEntryEntity("qeug_entryentity");
            if (selectRows != null && selectRows.length > 0) {
                for (int selectRow : selectRows) {
                    DynamicObject dynamicObject = entity.get(selectRow);
                    ENTRY_COLLECTION.add(dynamicObject);
                }
                FormShowParameter showParameter = this.getView().getFormShowParameter();
                showParameter.setCustomParam("isOK",true);
                this.getView().close();
            } else {
                this.getView().showMessage("请选中一条数据!");
            }
        }
    }

    @Override
    public void beforeClosed(BeforeClosedEvent e) {
        super.beforeClosed(e);
        this.getView().returnDataToParent(ENTRY_COLLECTION);
    }
}