You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
3.5 KiB
106 lines
3.5 KiB
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<AbstractDataConfig> { |
|
@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<ExtendedField> 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<ExtendedField> list = new ArrayList<ExtendedField>(); |
|
|
|
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<Object[]> covertTBeanToTableModelList(AbstractDataConfig dataConfig) { |
|
List<ExtendedField> customFields = dataConfig.getCustomFields(); |
|
|
|
List<Object[]> list = new ArrayList<Object[]>(); |
|
for (ExtendedField field : customFields) { |
|
String[] array = {field.getFieldName(), field.getCustomName(), DataPaneHelper.getFunctionString(field.getDataFunction())}; |
|
list.add(array); |
|
} |
|
return list; |
|
} |
|
|
|
@Override |
|
protected void setTableModelListToTBean(List<Object[]> tableValues, AbstractDataConfig dataConfig) { |
|
List<ExtendedField> customFields = new ArrayList<ExtendedField>(); |
|
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); |
|
} |
|
|
|
} |
|
|
|
}
|
|
|