帆软报表设计器源代码。
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.

107 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);
}
}
6 years ago
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);
}
}
6 years ago
private class ExtendedCustomFieldNamePane extends AbstractCustomFieldNamePane {
@Override
6 years ago
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);
}
6 years ago
return list;
}
@Override
6 years ago
protected void setTableModelListToTBean(List<Object[]> tableValues, AbstractDataConfig dataConfig) {
List<ExtendedField> customFields = new ArrayList<ExtendedField>();
6 years ago
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);
}
6 years ago
dataConfig.setCustomFields(customFields);
}
6 years ago
}
}