package com.fr.extended.chart; import com.fr.base.Utils; import com.fr.data.util.function.AbstractDataFunction; import com.fr.design.chartx.component.AbstractCustomFieldComboBoxPane; import com.fr.design.mainframe.chart.gui.data.table.DataPaneHelper; import java.util.ArrayList; import java.util.List; /** * Created by shine on 2019/5/16. */ public class ExtendedCustomFieldComboBoxPane extends AbstractCustomFieldComboBoxPane { @Override protected AbstractUseFieldValuePane createUseFieldValuePane() { return new ExtendedUseFieldValuePane(); } @Override protected AbstractCustomFieldNamePane createCustomFieldNamePane() { return new ExtendedCustomFieldNamePane(); } @Override public void populateBean(AbstractDataConfig ob) { if (ob.isCustomName()) { populateCustomFieldNamePane(ob); jcb.setSelectedIndex(1); } else { populateUseFieldValuePane(ob); jcb.setSelectedIndex(0); } } @Override public void updateBean(AbstractDataConfig ob) { if (jcb.getSelectedIndex() == 0) { ob.setCustomName(false); updateUseFieldValuePane(ob); } else { ob.setCustomName(true); updateCustomFieldNamePane(ob); } } private class ExtendedUseFieldValuePane extends AbstractUseFieldValuePane { @Override public void populateBean(AbstractDataConfig ob) { List list = ob.getCustomFields(); if (list.size() == 2) { populateSeries(list.get(0).getFieldName()); populateValue(list.get(1).getFieldName()); populateFunction((AbstractDataFunction) list.get(1).getDataFunction()); } } @Override public void updateBean(AbstractDataConfig ob) { List list = new ArrayList(); list.add(new ExtendedField(updateSeries())); ExtendedField field = new ExtendedField(updateValue()); field.setDataFunction(updateFunction()); list.add(field); ob.setCustomFields(list); } } private class ExtendedCustomFieldNamePane extends AbstractCustomFieldNamePane { @Override protected List covertTBeanToTableModelList(AbstractDataConfig dataConfig) { List customFields = dataConfig.getCustomFields(); List list = new ArrayList(); for (ExtendedField field : customFields) { String[] array = {field.getFieldName(), field.getCustomName(), DataPaneHelper.getFunctionString(field.getDataFunction())}; list.add(array); } return list; } @Override protected void setTableModelListToTBean(List tableValues, AbstractDataConfig dataConfig) { List customFields = new ArrayList(); for (Object[] line : tableValues) { ExtendedField field = new ExtendedField(Utils.objectToString(line[0])); field.setCustomName(Utils.objectToString(line[1])); if (line.length > 2) { field.setDataFunction(DataPaneHelper.getFunctionByName(Utils.objectToString(line[2]))); } customFields.add(field); } dataConfig.setCustomFields(customFields); } } }