Browse Source

CHART-2164 汇总方式开接口

master
zheng 7 years ago
parent
commit
1486e764cd
  1. 48
      designer_chart/src/com/fr/extended/chart/AbstractExtendedChartTableDataPane.java

48
designer_chart/src/com/fr/extended/chart/AbstractExtendedChartTableDataPane.java

@ -2,10 +2,12 @@ package com.fr.extended.chart;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.data.util.function.AbstractDataFunction;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.chart.gui.data.CalculateComboBox;
import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane;
import com.fr.general.GeneralUtils;
@ -22,37 +24,57 @@ import java.util.List;
*/
public abstract class AbstractExtendedChartTableDataPane<T extends AbstractDataConfig> extends AbstractTableDataContentPane {
private CalculateComboBox function;
public AbstractExtendedChartTableDataPane() {
initComponents();
}
protected void initComponents() {
String[] labels = fieldLabel();
UIComboBox[] comboBoxes = filedComboBoxes();
String[] labels = fieldLabels();
Component[] fieldComponents = fieldComponents();
int len = Math.min(labels.length, comboBoxes.length);
int len = Math.min(labels.length, fieldComponents.length);
Component[][] components = new Component[len][2];
Component[][] components = new Component[len + (hasFunction() ? 1 : 0)][2];
for (int i = 0; i < len; i++) {
UIComboBox comboBox = comboBoxes[i];
comboBox.setPreferredSize(new Dimension(100, 20));
Component fieldComponent = fieldComponents[i];
fieldComponent.setPreferredSize(new Dimension(100, 20));
components[i] = new Component[]{new UILabel(labels[i], SwingConstants.LEFT), fieldComponent};
}
components[i] = new Component[]{new UILabel(labels[i], SwingConstants.LEFT), comboBox};
if (hasFunction()) {
function = new CalculateComboBox();
components[len] = new Component[]{new UILabel("function", SwingConstants.LEFT), function};
}
double p = TableLayout.PREFERRED;
double[] columnSize = {p, p};
double[] rowSize = new double[len];
double[] rowSize = new double[len + (hasFunction() ? 1 : 0)];
Arrays.fill(rowSize, p);
JPanel panel = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
this.setLayout(new BorderLayout());
this.add(panel, BorderLayout.CENTER);
this.add(addSouthPane(), BorderLayout.SOUTH);
}
protected JPanel addSouthPane() {
return new JPanel();
}
protected boolean hasFunction() {
return false;
}
protected Component[] fieldComponents() {
return filedComboBoxes();
}
protected abstract String[] fieldLabel();
protected abstract String[] fieldLabels();
protected abstract UIComboBox[] filedComboBoxes();
@ -70,6 +92,10 @@ public abstract class AbstractExtendedChartTableDataPane<T extends AbstractDataC
if (dataConfig != null) {
populate((T) dataConfig);
}
if (hasFunction() && chart.getFilterDefinition() instanceof ExtendedTableDataSet) {
ExtendedTableDataSet dataSet = (ExtendedTableDataSet) chart.getFilterDefinition();
function.populateBean((AbstractDataFunction) dataSet.getDataFunction());
}
}
}
}
@ -84,6 +110,10 @@ public abstract class AbstractExtendedChartTableDataPane<T extends AbstractDataC
ExtendedTableDataSet dataSet = new ExtendedTableDataSet();
dataSet.setDataConfig(update());
if (hasFunction()) {
dataSet.setDataFunction(function.updateBean());
}
chart.setFilterDefinition(dataSet);
}
}

Loading…
Cancel
Save