From 9105c2d33ff54cb147c0b0055389f86e6ac1bf86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E7=A3=8A?= <294531121@qq.com> Date: Tue, 25 Jan 2022 17:49:06 +0800 Subject: [PATCH] =?UTF-8?q?CHART-22531=20=E5=A4=9A=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E8=BD=B4=E5=88=86=E5=B1=82=E8=AE=BE=E7=BD=AE=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E2=80=94=E8=AE=BE=E8=AE=A1=E5=99=A8=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...goryPlotMoreCateReportDataContentPane.java | 33 ++++----- ...egoryPlotMoreCateTableDataContentPane.java | 34 ++++----- .../custom/style/VanChartCustomAxisPane.java | 2 +- .../style/VanChartCustomAxisTabPane.java | 10 ++- ...VanChartMoreCateReportDataContentPane.java | 7 +- .../VanChartMoreCateTableDataContentPane.java | 7 +- .../designer/style/axis/VanChartAxisPane.java | 4 ++ .../style/axis/VanChartBaseAxisPane.java | 70 +++++-------------- ...VanChartCategoryStylePaneWithCheckBox.java | 12 +--- 9 files changed, 65 insertions(+), 114 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/report/CategoryPlotMoreCateReportDataContentPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/report/CategoryPlotMoreCateReportDataContentPane.java index cbaf8b0c1..93d189c69 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/report/CategoryPlotMoreCateReportDataContentPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/report/CategoryPlotMoreCateReportDataContentPane.java @@ -26,7 +26,8 @@ import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.util.LinkedHashMap; +import java.util.ArrayList; +import java.util.List; import java.util.Map; @@ -41,10 +42,10 @@ public class CategoryPlotMoreCateReportDataContentPane extends CategoryPlotRepor private JPanel boxPane; private UIButton addButton; - private Map formualList = new LinkedHashMap<>(); + private List formualList = new ArrayList(); private UIObserverListener uiobListener = null; - public Map getFormualList() { + public List getFormualList() { return formualList; } @@ -100,17 +101,12 @@ public class CategoryPlotMoreCateReportDataContentPane extends CategoryPlotRepor } private TinyFormulaPane addNewCatePane() { - String uuid = UUIDUtil.generate(); - return addNewCatePane(uuid); - } - - private TinyFormulaPane addNewCatePane(String uuid) { final TinyFormulaPane pane = initCategoryBox(StringUtils.EMPTY); pane.setPreferredSize(new Dimension(100, 16)); pane.registerChangeListener(uiobListener); - formualList.put(uuid, pane); + formualList.add(pane); final JPanel newButtonPane = new JPanel(); newButtonPane.setLayout(new FlowLayout(FlowLayout.RIGHT, 0, 0)); @@ -125,7 +121,7 @@ public class CategoryPlotMoreCateReportDataContentPane extends CategoryPlotRepor @Override public void actionPerformed(ActionEvent e) { boxPane.remove(newButtonPane); - formualList.remove(uuid); + formualList.remove(pane); checkComponent(); relayoutPane(); } @@ -177,11 +173,11 @@ public class CategoryPlotMoreCateReportDataContentPane extends CategoryPlotRepor TopDefinitionProvider definition = collection.getSelectedChart().getFilterDefinition(); if (definition instanceof NormalReportDataDefinition) { NormalReportDataDefinition reportDefinition = (NormalReportDataDefinition) definition; - Map moreCateLabels = reportDefinition.getMoreCateLabels(); - if (reportDefinition.getCategoryName() != null && !moreCateLabels.isEmpty()) { - for (Map.Entry entry : moreCateLabels.entrySet()) { - TinyFormulaPane pane = addNewCatePane(entry.getKey()); - pane.populateBean(Utils.objectToString(entry.getValue())); + int size = reportDefinition.getMoreCateSize(); + if (reportDefinition.getCategoryName() != null && size > 0) { + for(int i = 0; i < size; i++) { + TinyFormulaPane pane = addNewCatePane(); + pane.populateBean(Utils.objectToString(reportDefinition.getMoreCateWithIndex(i))); } } } @@ -204,10 +200,9 @@ public class CategoryPlotMoreCateReportDataContentPane extends CategoryPlotRepor } protected void updateMoreCate(NormalReportDataDefinition reportDefinition, Plot plot) { - for (Map.Entry entry : formualList.entrySet()) { - String uuid = entry.getKey(); - TinyFormulaPane pane = entry.getValue(); - reportDefinition.addMoreCate(uuid, canBeFormula(pane.updateBean())); + for (int i = 0, size = formualList.size(); i < size; i++) { + TinyFormulaPane pane = formualList.get(i); + reportDefinition.addMoreCate(canBeFormula(pane.updateBean())); } } } \ No newline at end of file diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/table/CategoryPlotMoreCateTableDataContentPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/table/CategoryPlotMoreCateTableDataContentPane.java index 29f18002c..572c28edd 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/table/CategoryPlotMoreCateTableDataContentPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/table/CategoryPlotMoreCateTableDataContentPane.java @@ -6,7 +6,6 @@ import com.fr.chart.chartattr.Bar2DPlot; import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.Plot; import com.fr.chart.chartdata.NormalTableDataDefinition; -import com.fr.decision.base.util.UUIDUtil; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; import com.fr.design.gui.ibutton.UIButton; @@ -27,9 +26,8 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; -import java.util.LinkedHashMap; +import java.util.ArrayList; import java.util.List; -import java.util.Map; /** * 多分类轴 的数据集定义界面. @@ -45,12 +43,12 @@ public class CategoryPlotMoreCateTableDataContentPane extends CategoryPlotTableD private JPanel boxPane; - private Map boxList = new LinkedHashMap<>(); + private List boxList = new ArrayList(); private UIButton addButton; private UIObserverListener uiobListener = null; - public Map getBoxList() { + public List getBoxList() { return boxList; } @@ -114,11 +112,6 @@ public class CategoryPlotMoreCateTableDataContentPane extends CategoryPlotTableD } private UIComboBox addNewCombox() { - String uuid = UUIDUtil.generate(); - return addNewCombox(uuid); - } - - private UIComboBox addNewCombox(String uuid) { final JPanel buttonPane = new JPanel(); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT, 0, 2)); @@ -145,7 +138,7 @@ public class CategoryPlotMoreCateTableDataContentPane extends CategoryPlotTableD UIButton delButton = new UIButton(BaseUtils.readIcon("com/fr/design/images/toolbarbtn/close.png")); buttonPane.add(delButton); boxPane.add(buttonPane); - boxList.put(uuid, combox); + boxList.add(combox); checkComponent(); @@ -153,7 +146,7 @@ public class CategoryPlotMoreCateTableDataContentPane extends CategoryPlotTableD @Override public void actionPerformed(ActionEvent e) { boxPane.remove(buttonPane); - boxList.remove(uuid); + boxList.remove(combox); checkComponent(); relayoutPane(); } @@ -227,10 +220,10 @@ public class CategoryPlotMoreCateTableDataContentPane extends CategoryPlotTableD TopDefinitionProvider top = collection.getSelectedChart().getFilterDefinition(); if (top instanceof NormalTableDataDefinition) { NormalTableDataDefinition normal = (NormalTableDataDefinition) top; - Map moreCateLabels = normal.getMoreCateLabels(); - for(Map.Entry entry : moreCateLabels.entrySet()) { - UIComboBox box = addNewCombox(entry.getKey()); - box.setSelectedItem(entry.getValue()); + int size = normal.getMoreCateSize(); + for (int i = 0; i < size; i++) { + UIComboBox box = addNewCombox(); + box.setSelectedItem(normal.getMoreCateWithIndex(i)); } } @@ -256,11 +249,10 @@ public class CategoryPlotMoreCateTableDataContentPane extends CategoryPlotTableD } protected void updateMoreCate(NormalTableDataDefinition normal, Plot plot) { - for (Map.Entry entry : boxList.entrySet()) { - String uuid = entry.getKey(); - UIComboBox comboBox = entry.getValue(); - if (comboBox != null && comboBox.getSelectedItem() != null) { - normal.addMoreCate(uuid, comboBox.getSelectedItem().toString()); + for (int i = 0, size = boxList.size(); i < size; i++) { + UIComboBox box = boxList.get(i); + if (box.getSelectedItem() != null) { + normal.addMoreCate(box.getSelectedItem().toString()); } } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/custom/style/VanChartCustomAxisPane.java b/designer-chart/src/main/java/com/fr/van/chart/custom/style/VanChartCustomAxisPane.java index 35b6d63e7..75a3c0f2c 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/custom/style/VanChartCustomAxisPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/custom/style/VanChartCustomAxisPane.java @@ -54,7 +54,7 @@ public class VanChartCustomAxisPane extends BasicScrollPane { } if(axisPane != null) { - axisPane.populateBean((VanChartCustomPlot) chart.getPlot()); + axisPane.populateBean((VanChart) chart); } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/custom/style/VanChartCustomAxisTabPane.java b/designer-chart/src/main/java/com/fr/van/chart/custom/style/VanChartCustomAxisTabPane.java index 93ac30c52..5f9927c6b 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/custom/style/VanChartCustomAxisTabPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/custom/style/VanChartCustomAxisTabPane.java @@ -87,11 +87,16 @@ public class VanChartCustomAxisTabPane extends VanChartCustomPlotTabPane customPlotList = plot.getCustomPlotList(); ArrayList plotOrder = plot.getDiffAxisOrder(); @@ -100,12 +105,13 @@ public class VanChartCustomAxisTabPane extends VanChartCustomPlotTabPane entry : getFormualList().entrySet()) { - entry.getValue().setEnabled(isSupportMulticategory); + for (int i = 0; i < getFormualList().size(); i++) { + getFormualList().get(i).setEnabled(isSupportMulticategory); } } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/data/VanChartMoreCateTableDataContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/data/VanChartMoreCateTableDataContentPane.java index ce6e7a16c..dcf160aec 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/data/VanChartMoreCateTableDataContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/data/VanChartMoreCateTableDataContentPane.java @@ -3,14 +3,11 @@ package com.fr.van.chart.designer.data; import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.Plot; import com.fr.chart.chartdata.NormalTableDataDefinition; -import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.data.table.CategoryPlotMoreCateTableDataContentPane; import com.fr.plugin.chart.attr.plot.VanChartPlot; import com.fr.plugin.chart.attr.plot.VanChartRectanglePlot; -import java.util.Map; - /** * Created by mengao on 2017/7/3. */ @@ -46,8 +43,8 @@ public class VanChartMoreCateTableDataContentPane extends CategoryPlotMoreCateTa private void checkBoxList(boolean isSupportMulticategory) { if (getBoxList().size() != 0) { - for (Map.Entry entry : getBoxList().entrySet()) { - entry.getValue().setEnabled(isSupportMulticategory); + for (int i = 0; i < getBoxList().size(); i++) { + getBoxList().get(i).setEnabled(isSupportMulticategory); } } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartAxisPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartAxisPane.java index 11841813d..ef532d12b 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartAxisPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartAxisPane.java @@ -287,4 +287,8 @@ public class VanChartAxisPane extends BasicBeanPane { public VanChart updateBean() { return null; } + + public void setChart(Chart chart) { + this.chart = chart; + } } \ No newline at end of file diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartBaseAxisPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartBaseAxisPane.java index 5da2e664e..1023ecde8 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartBaseAxisPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartBaseAxisPane.java @@ -7,8 +7,6 @@ import com.fr.base.chart.chartdata.TopDefinitionProvider; import com.fr.chart.base.TextAttr; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Title; -import com.fr.chart.chartdata.NormalReportDataDefinition; -import com.fr.chart.chartdata.NormalTableDataDefinition; import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.frpane.UINumberDragPane; @@ -51,9 +49,7 @@ import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; /** * 坐标轴的基础配置项。分类,时间,值等公共的部分。 @@ -616,73 +612,44 @@ public class VanChartBaseAxisPane extends FurtherBasicBeanPane { } categoryStylePane.removeAll(); categoryStyles.clear(); - populateDefaultCateLabelStyle(axis); - populateMoreCateLabelStyle(axis); + populateCateLabelStyle(axis); categoryStylePane.revalidate(); } - /** - * 默认一定会有一个分类标签,就populate这个 - */ - private void populateDefaultCateLabelStyle(VanChartAxis axis) { - populateCategoryStyles(axis, VanChartAxis.DEFAULT_CATEGORY_UUID, 0); - } /** - * populate其余的分类标签 + * populate分类标签 * * @param axis */ - private void populateMoreCateLabelStyle(VanChartAxis axis) { + private void populateCateLabelStyle(VanChartAxis axis) { Chart chart = axis.getChart(); - Map moreCateLabels = new LinkedHashMap<>(); + int size; TopDefinitionProvider definition = chart.getFilterDefinition(); - if (definition == null) { - return; - } - if (definition instanceof NormalTableDataDefinition) { - NormalTableDataDefinition tableDataDefinition = (NormalTableDataDefinition) definition; - moreCateLabels.putAll(tableDataDefinition.getMoreCateLabels()); - } else if (definition instanceof NormalReportDataDefinition) { - NormalReportDataDefinition reportDataDefinition = (NormalReportDataDefinition) definition; - for (Map.Entry entry : reportDataDefinition.getMoreCateLabels().entrySet()) { - String uuid = entry.getKey(); - String cateLabel = Utils.objectToString(entry.getValue()); - moreCateLabels.put(uuid, cateLabel); - } - } + size = definition == null ? 1 : definition.getMoreCateSize() + 1; - int i = 1; - List uuids = new ArrayList<>(); - for (Map.Entry entry : moreCateLabels.entrySet()) { - String uuid = entry.getKey(); - uuids.add(uuid); - populateCategoryStyles(axis, uuid, i); - i++; + for (int i = 0; i < size; i++) { + populateCategoryStyles(axis, i); } - axis.retainUsefulCategoryStyles(uuids); } - private void populateCategoryStyles(VanChartAxis axis, String uuid, int index) { + private void populateCategoryStyles(VanChartAxis axis, int index) { VanChartCategoryStylePaneWithCheckBox pane = new VanChartCategoryStylePaneWithCheckBox(parent, this, Toolkit.i18nText("Fine-Design_Chart_Style_Category") + (index + 1)); - VanChartAxisLabelStyle style = populateAxisCategoryStyles(axis, uuid, index); - pane.populate(style, uuid); + VanChartAxisLabelStyle style = populateAxisCategoryStyles(axis, index); + pane.populate(style); categoryStyles.add(pane); categoryStylePane.add(createCateLableStylePanel(), BorderLayout.NORTH); } - private VanChartAxisLabelStyle populateAxisCategoryStyles(VanChartAxis axis, String uuid, int index) { + private VanChartAxisLabelStyle populateAxisCategoryStyles(VanChartAxis axis, int index) { VanChartAxisLabelStyle style; - if (axis.getCategoryStyle(uuid) != null) { - style = axis.getCategoryStyle(uuid); + if (axis.getCategoryStylesSize() > index && axis.getCategoryStyle(index) != null) { + style = axis.getCategoryStyle(index); } else { - style = axis.getCategoryStyleByIndex(index); - if (style == null) { - style = new VanChartAxisLabelStyle(); - } - axis.addCategoryStyle(uuid, style); + style = new VanChartAxisLabelStyle(); + axis.addCategoryStyle(style); } return style; } @@ -875,12 +842,11 @@ public class VanChartBaseAxisPane extends FurtherBasicBeanPane { * @param axis */ private void updateLayerDisplayPane(VanChartAxis axis) { + List styles = new ArrayList<>(); for (VanChartCategoryStylePaneWithCheckBox categoryStyle : categoryStyles) { - Map styleMap = categoryStyle.update(); - for (Map.Entry entry : styleMap.entrySet()) { - axis.addCategoryStyle(entry.getKey(), entry.getValue()); - } + styles.add(categoryStyle.update()); } + axis.setCategoryStyles(styles); } //轴线样式 diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/component/VanChartCategoryStylePaneWithCheckBox.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/component/VanChartCategoryStylePaneWithCheckBox.java index 52877216a..49394c052 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/component/VanChartCategoryStylePaneWithCheckBox.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/component/VanChartCategoryStylePaneWithCheckBox.java @@ -19,8 +19,6 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.util.LinkedHashMap; -import java.util.Map; public class VanChartCategoryStylePaneWithCheckBox extends JPanel { private UICheckBox checkBox; // 复选框 @@ -30,7 +28,6 @@ public class VanChartCategoryStylePaneWithCheckBox extends JPanel { private JPanel showOnPane; private AbstractAttrNoScrollPane parent; - private String axisId; private VanChartAxisLabelStyle axis; public VanChartCategoryStylePaneWithCheckBox(AbstractAttrNoScrollPane parent, JPanel showOnPane, String checkBoxName) { @@ -88,16 +85,13 @@ public class VanChartCategoryStylePaneWithCheckBox extends JPanel { } } - public void populate(VanChartAxisLabelStyle style, String uuid) { + public void populate(VanChartAxisLabelStyle style) { this.axis = style; - this.axisId = uuid; checkBox.setSelected(axis.isShowLabel()); } - public Map update() { + public VanChartAxisLabelStyle update() { axis.setShowLabel(checkBox.isSelected()); - Map map = new LinkedHashMap<>(); - map.put(axisId, axis); - return map; + return axis; } }