Browse Source

CHART-4027 系列+值 自定义相关 design

research/10.0
zheng 5 years ago
parent
commit
d7d95ef78a
  1. 58
      designer-chart/src/main/java/com/fr/design/chartx/component/CustomFieldComboBoxPane.java
  2. 108
      designer-chart/src/main/java/com/fr/design/chartx/component/SeriesValueFieldComboBoxPane.java
  3. 28
      designer-chart/src/main/java/com/fr/design/chartx/fields/diff/AbstractDataSetFieldsWithSeriesValuePane.java
  4. 2
      designer-chart/src/main/java/com/fr/design/chartx/fields/diff/MultiCategoryDataSetFieldsPane.java

58
designer-chart/src/main/java/com/fr/design/chartx/component/CustomFieldComboBoxPane.java

@ -1,58 +0,0 @@
package com.fr.design.chartx.component;
import com.fr.chartx.data.field.CustomFieldValueColumnFields;
/**
* Created by shine on 2019/5/17.
*/
public class CustomFieldComboBoxPane extends AbstractCustomFieldComboBoxPane<CustomFieldValueColumnFields> {
@Override
protected AbstractUseFieldValuePane createUseFieldValuePane() {
return new UseFieldValuePane();
}
@Override
protected AbstractCustomFieldNamePane createCustomFieldNamePane() {
return new CustomFieldNamePane();
}
@Override
public void populateBean(CustomFieldValueColumnFields ob) {
if (ob.isCustomFieldValue()) {
populateCustomFieldNamePane(ob);
jcb.setSelectedIndex(1);
} else {
populateUseFieldValuePane(ob);
jcb.setSelectedIndex(0);
}
}
@Override
public void updateBean(CustomFieldValueColumnFields ob) {
if (jcb.getSelectedIndex() == 0) {
ob.setCustomFieldValue(false);
updateUseFieldValuePane(ob);
} else {
ob.setCustomFieldValue(true);
updateCustomFieldNamePane(ob);
}
}
private class UseFieldValuePane extends AbstractUseFieldValuePane<CustomFieldValueColumnFields> {
@Override
public void populateBean(CustomFieldValueColumnFields ob) {
}
}
private class CustomFieldNamePane extends AbstractCustomFieldNamePane<CustomFieldValueColumnFields> {
@Override
public void populateBean(CustomFieldValueColumnFields ob) {
}
}
}

108
designer-chart/src/main/java/com/fr/design/chartx/component/SeriesValueFieldComboBoxPane.java

@ -0,0 +1,108 @@
package com.fr.design.chartx.component;
import com.fr.chartx.data.field.ColumnField;
import com.fr.chartx.data.field.SeriesValueColumnFields;
import com.fr.chartx.data.field.SeriesValueField;
import com.fr.data.util.function.AbstractDataFunction;
import com.fr.design.mainframe.chart.gui.data.table.DataPaneHelper;
import com.fr.general.GeneralUtils;
import java.util.ArrayList;
import java.util.List;
/**
* Created by shine on 2019/5/17.
*/
public class SeriesValueFieldComboBoxPane extends AbstractCustomFieldComboBoxPane<SeriesValueColumnFields> {
@Override
protected AbstractUseFieldValuePane createUseFieldValuePane() {
return new UseFieldValuePane();
}
@Override
protected AbstractCustomFieldNamePane createCustomFieldNamePane() {
return new CustomFieldNamePane();
}
@Override
public void populateBean(SeriesValueColumnFields ob) {
if (ob.isCustomFieldValue()) {
populateCustomFieldNamePane(ob);
jcb.setSelectedIndex(1);
} else {
populateUseFieldValuePane(ob);
jcb.setSelectedIndex(0);
}
}
@Override
public void updateBean(SeriesValueColumnFields ob) {
if (jcb.getSelectedIndex() == 0) {
ob.setCustomFieldValue(false);
updateUseFieldValuePane(ob);
} else {
ob.setCustomFieldValue(true);
updateCustomFieldNamePane(ob);
}
}
private class UseFieldValuePane extends AbstractUseFieldValuePane<SeriesValueColumnFields> {
@Override
public void populateBean(SeriesValueColumnFields ob) {
List<SeriesValueField> list = ob.getSeriesValueFieldList();
if (list != null && list.size() > 0) {
populateSeries(list.get(0).getSeries().getFieldName());
populateValue(list.get(0).getValue().getFieldName());
populateFunction((AbstractDataFunction) list.get(0).getValue().getDataFunction());
}
}
@Override
public void updateBean(SeriesValueColumnFields ob) {
List<SeriesValueField> list = new ArrayList<SeriesValueField>();
SeriesValueField seriesValueField = new SeriesValueField();
ColumnField series = new ColumnField(updateSeries());
ColumnField value = new ColumnField(updateValue());
value.setDataFunction(updateFunction());
seriesValueField.setValue(value);
seriesValueField.setSeries(series);
list.add(seriesValueField);
ob.setSeriesValueFieldList(list);
}
}
private class CustomFieldNamePane extends AbstractCustomFieldNamePane<SeriesValueColumnFields> {
@Override
public void populateBean(SeriesValueColumnFields ob) {
List<Object[]> list = new ArrayList<Object[]>();
for (SeriesValueField seriesValueField : ob.getSeriesValueFieldList()) {
Object[] array = new Object[3];
array[0] = seriesValueField.getSeries().getFieldName();
array[1] = seriesValueField.getValue().getFieldName();
array[2] = DataPaneHelper.getFunctionString(seriesValueField.getValue().getDataFunction());
list.add(array);
}
populate(list);
}
@Override
public void updateBean(SeriesValueColumnFields ob) {
List<Object[]> list = update();
List<SeriesValueField> seriesValueFields = new ArrayList<SeriesValueField>();
for (Object[] line : list) {
ColumnField series = new ColumnField(GeneralUtils.objectToString(line[0]));
ColumnField value = new ColumnField(GeneralUtils.objectToString(line[1]));
value.setDataFunction(DataPaneHelper.getFunctionByName(GeneralUtils.objectToString(line[2])));
SeriesValueField seriesValueField = new SeriesValueField();
seriesValueField.setValue(value);
seriesValueField.setSeries(series);
seriesValueFields.add(seriesValueField);
}
ob.setSeriesValueFieldList(seriesValueFields);
}
}
}

28
designer-chart/src/main/java/com/fr/design/chartx/fields/diff/AbstractDataSetFieldsWithCustomFieldPane.java → designer-chart/src/main/java/com/fr/design/chartx/fields/diff/AbstractDataSetFieldsWithSeriesValuePane.java

@ -1,7 +1,7 @@
package com.fr.design.chartx.fields.diff; package com.fr.design.chartx.fields.diff;
import com.fr.chartx.data.field.diff.AbstractColumnFieldCollectionWithCustomField; import com.fr.chartx.data.field.diff.AbstractColumnFieldCollectionWithSeriesValue;
import com.fr.design.chartx.component.CustomFieldComboBoxPane; import com.fr.design.chartx.component.SeriesValueFieldComboBoxPane;
import com.fr.design.chartx.fields.AbstractDataSetFieldsPane; import com.fr.design.chartx.fields.AbstractDataSetFieldsPane;
import javax.swing.JPanel; import javax.swing.JPanel;
@ -12,49 +12,49 @@ import java.util.List;
* Created by shine on 2019/5/16. * Created by shine on 2019/5/16.
* 带有 自定义系列名fr表现为 系列名使用字段名 的字段集合 的一个pane * 带有 自定义系列名fr表现为 系列名使用字段名 的字段集合 的一个pane
*/ */
public abstract class AbstractDataSetFieldsWithCustomFieldPane<T extends AbstractColumnFieldCollectionWithCustomField> public abstract class AbstractDataSetFieldsWithSeriesValuePane<T extends AbstractColumnFieldCollectionWithSeriesValue>
extends AbstractDataSetFieldsPane<T> { extends AbstractDataSetFieldsPane<T> {
private CustomFieldComboBoxPane customFieldComboBoxPane; private SeriesValueFieldComboBoxPane seriesValueFieldComboBoxPane;
@Override @Override
protected JPanel createCenterPane() { protected JPanel createCenterPane() {
JPanel normalCenter = super.createCenterPane(); JPanel normalCenter = super.createCenterPane();
customFieldComboBoxPane = new CustomFieldComboBoxPane(); seriesValueFieldComboBoxPane = new SeriesValueFieldComboBoxPane();
if (normalCenter != null) { if (normalCenter != null) {
JPanel panel = new JPanel(new BorderLayout()); JPanel panel = new JPanel(new BorderLayout());
panel.add(normalCenter, BorderLayout.CENTER); panel.add(normalCenter, BorderLayout.CENTER);
panel.add(customFieldComboBoxPane, BorderLayout.SOUTH); panel.add(seriesValueFieldComboBoxPane, BorderLayout.SOUTH);
return panel; return panel;
} else { } else {
return customFieldComboBoxPane; return seriesValueFieldComboBoxPane;
} }
} }
@Override @Override
public void checkBoxUse(boolean hasUse) { public void checkBoxUse(boolean hasUse) {
super.checkBoxUse(hasUse); super.checkBoxUse(hasUse);
customFieldComboBoxPane.checkBoxUse(hasUse); seriesValueFieldComboBoxPane.checkBoxUse(hasUse);
} }
@Override @Override
public void clearAllBoxList() { public void clearAllBoxList() {
super.clearAllBoxList(); super.clearAllBoxList();
customFieldComboBoxPane.clearAllBoxList(); seriesValueFieldComboBoxPane.clearAllBoxList();
} }
@Override @Override
public void refreshBoxListWithSelectTableData(List columnNameList) { public void refreshBoxListWithSelectTableData(List columnNameList) {
super.refreshBoxListWithSelectTableData(columnNameList); super.refreshBoxListWithSelectTableData(columnNameList);
customFieldComboBoxPane.refreshBoxListWithSelectTableData(columnNameList); seriesValueFieldComboBoxPane.refreshBoxListWithSelectTableData(columnNameList);
} }
protected void populateCustomPane(AbstractColumnFieldCollectionWithCustomField t) { protected void populateCustomPane(AbstractColumnFieldCollectionWithSeriesValue t) {
customFieldComboBoxPane.populateBean(t.getCustomFieldValueColumnFields()); seriesValueFieldComboBoxPane.populateBean(t.getSeriesValueColumnFields());
} }
protected void updateCustomPane(AbstractColumnFieldCollectionWithCustomField t) { protected void updateCustomPane(AbstractColumnFieldCollectionWithSeriesValue t) {
customFieldComboBoxPane.updateBean(t.getCustomFieldValueColumnFields()); seriesValueFieldComboBoxPane.updateBean(t.getSeriesValueColumnFields());
} }
} }

2
designer-chart/src/main/java/com/fr/design/chartx/fields/diff/MultiCategoryDataSetFieldsPane.java

@ -13,7 +13,7 @@ import java.util.List;
/** /**
* Created by shine on 2019/4/10. * Created by shine on 2019/4/10.
*/ */
public class MultiCategoryDataSetFieldsPane extends AbstractDataSetFieldsWithCustomFieldPane<MultiCategoryColumnFieldCollection> { public class MultiCategoryDataSetFieldsPane extends AbstractDataSetFieldsWithSeriesValuePane<MultiCategoryColumnFieldCollection> {
private MultiComboBoxPane multiCategoryPane; private MultiComboBoxPane multiCategoryPane;

Loading…
Cancel
Save