From 4831883915324bf763bd136e26c7d6f8a73d5f4e Mon Sep 17 00:00:00 2001 From: zheng Date: Fri, 6 Sep 2019 11:32:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8A=BD=E8=B1=A1=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/fun/impl/AbstractChartTypeUI.java | 84 +++++++++++++++++++ ...ne.java => AbstractVanSingleDataPane.java} | 30 +++---- .../fr/design/chartx/GanttChartDataPane.java | 25 ++++-- .../design/chartx/MultiPieChartDataPane.java | 21 ----- .../design/chartx/WordCloudChartDataPane.java | 20 ----- .../design/chartx/impl/AbstractDataPane.java | 68 +++++++++++++++ .../design/chartx/impl/AbstractOtherPane.java | 42 ++++++++++ .../fr/design/chartx/impl/CommonTypePane.java | 79 +++++++++++++++++ 8 files changed, 304 insertions(+), 65 deletions(-) create mode 100644 designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractChartTypeUI.java rename designer-chart/src/main/java/com/fr/design/chartx/{MultiCategoryChartDataPane.java => AbstractVanSingleDataPane.java} (57%) delete mode 100644 designer-chart/src/main/java/com/fr/design/chartx/MultiPieChartDataPane.java delete mode 100644 designer-chart/src/main/java/com/fr/design/chartx/WordCloudChartDataPane.java create mode 100644 designer-chart/src/main/java/com/fr/design/chartx/impl/AbstractDataPane.java create mode 100644 designer-chart/src/main/java/com/fr/design/chartx/impl/AbstractOtherPane.java create mode 100644 designer-chart/src/main/java/com/fr/design/chartx/impl/CommonTypePane.java diff --git a/designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractChartTypeUI.java new file mode 100644 index 000000000..a4a7b5611 --- /dev/null +++ b/designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractChartTypeUI.java @@ -0,0 +1,84 @@ +package com.fr.design.chart.fun.impl; + +import com.fr.chart.chartattr.Plot; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.chart.fun.ChartTypeUIProvider; +import com.fr.design.chartx.impl.AbstractDataPane; +import com.fr.design.chartx.impl.AbstractOtherPane; +import com.fr.design.condition.ConditionAttributesPane; +import com.fr.design.gui.frpane.AttributeChangeListener; +import com.fr.design.mainframe.chart.ChartEditPane; +import com.fr.design.mainframe.chart.ChartsConfigPane; +import com.fr.design.mainframe.chart.gui.ChartDataPane; +import com.fr.design.mainframe.chart.gui.ChartStylePane; +import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane; +import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane; +import com.fr.stable.fun.impl.AbstractProvider; + +/** + * Created by shine on 2019/09/03. + */ +public abstract class AbstractChartTypeUI extends AbstractProvider implements ChartTypeUIProvider { + + @Override + public abstract AbstractDataPane getChartDataPane(AttributeChangeListener listener); + + @Override + public abstract AbstractOtherPane[] getAttrPaneArray(AttributeChangeListener listener); + + @Override + public String[] getSubName() { + return new String[]{getName()}; + } + + @Override + public boolean needChartChangePane() { + return false; + } + + @Override + public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent) { + return null; + } + + @Override + public AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent) { + return null; + } + + @Override + public boolean isUseDefaultPane() { + return false; + } + + @Override + public int currentAPILevel() { + return CURRENT_API_LEVEL; + } + + @Override + public String mark4Provider() { + return getClass().getName(); + } + + @Override + public ChartEditPane getChartEditPane(String plotID) { + return new ChartEditPane(); + } + + @Override + public ConditionAttributesPane getPlotConditionPane(Plot plot) { + return null; + } + + @Override + public BasicBeanPane getPlotSeriesPane(ChartStylePane parent, Plot plot) { + return null; + } + + @Override + public ChartsConfigPane getChartConfigPane(String plotID) { + return null; + } + +} \ No newline at end of file diff --git a/designer-chart/src/main/java/com/fr/design/chartx/MultiCategoryChartDataPane.java b/designer-chart/src/main/java/com/fr/design/chartx/AbstractVanSingleDataPane.java similarity index 57% rename from designer-chart/src/main/java/com/fr/design/chartx/MultiCategoryChartDataPane.java rename to designer-chart/src/main/java/com/fr/design/chartx/AbstractVanSingleDataPane.java index 721fc8480..1db85d8c5 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/MultiCategoryChartDataPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/AbstractVanSingleDataPane.java @@ -1,24 +1,30 @@ package com.fr.design.chartx; import com.fr.chartx.data.AbstractDataDefinition; -import com.fr.design.chartx.fields.diff.MultiCategoryCellDataFieldsPane; -import com.fr.design.chartx.fields.diff.MultiCategoryDataSetFieldsPane; import com.fr.design.chartx.single.SingleDataPane; import com.fr.design.gui.frpane.AttributeChangeListener; import javax.swing.JPanel; /** - * Created by shine on 2019/5/22. + * Created by shine on 2019/09/06. */ -public class MultiCategoryChartDataPane extends AbstractChartDataPane { - +public abstract class AbstractVanSingleDataPane extends AbstractChartDataPane { private SingleDataPane singleDataPane; - public MultiCategoryChartDataPane(AttributeChangeListener listener) { + + public AbstractVanSingleDataPane(AttributeChangeListener listener) { super(listener); } + @Override + protected JPanel createContentPane() { + singleDataPane = createSingleDataPane(); + return singleDataPane; + } + + protected abstract SingleDataPane createSingleDataPane(); + @Override protected void populate(AbstractDataDefinition dataDefinition) { singleDataPane.populateBean(dataDefinition); @@ -28,16 +34,4 @@ public class MultiCategoryChartDataPane extends AbstractChartDataPane { - private MultiCategoryChartDataPane dataPane; - private MultiCategoryChartDataPane linkPane; + private AbstractVanSingleDataPane dataPane; + private AbstractVanSingleDataPane linkPane; @Override protected JPanel createContentPane() { - dataPane = new MultiCategoryChartDataPane(listener); - linkPane = new MultiCategoryChartDataPane(listener); + dataPane = new AbstractVanSingleDataPane(listener) { + @Override + protected SingleDataPane createSingleDataPane() { + return new SingleDataPane(new MultiCategoryDataSetFieldsPane(), new MultiCategoryCellDataFieldsPane()); + } + }; + linkPane = new AbstractVanSingleDataPane(listener) { + @Override + protected SingleDataPane createSingleDataPane() { + return new SingleDataPane(new MultiCategoryDataSetFieldsPane(), new MultiCategoryCellDataFieldsPane()); + } + }; return new VanChartGroupPane(new String[]{"data", "link"}, new JPanel[]{dataPane, linkPane}) { }; } @@ -27,13 +40,13 @@ public class GanttChartDataPane extends AbstractChartDataPane extends AbstractChartAttrPane { + + protected abstract void populate(T chart); + + protected abstract void update(T chart); + + @Override + public void populate(ChartCollection collection) { + if (collection == null) { + return; + } + AbstractChartWithData chart = collection.getSelectedChart(AbstractChartWithData.class); + if (chart == null) { + return; + } + + populate((T) chart); + } + + @Override + public void update(ChartCollection collection) { + + if (collection == null) { + return; + } + AbstractChartWithData chart = collection.getSelectedChart(AbstractChartWithData.class); + if (chart == null) { + return; + } + + update((T) chart); + } +} diff --git a/designer-chart/src/main/java/com/fr/design/chartx/impl/CommonTypePane.java b/designer-chart/src/main/java/com/fr/design/chartx/impl/CommonTypePane.java new file mode 100644 index 000000000..24d9bf95d --- /dev/null +++ b/designer-chart/src/main/java/com/fr/design/chartx/impl/CommonTypePane.java @@ -0,0 +1,79 @@ +package com.fr.design.chartx.impl; + +import com.fr.chart.charttypes.ChartTypeManager; +import com.fr.chart.impl.AbstractChartWithData; +import com.fr.chartx.attr.ChartProvider; +import com.fr.design.ChartTypeInterfaceManager; +import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; +import com.fr.design.mainframe.chart.gui.type.ChartImagePane; + +/** + * Created by shine on 2019/09/04. + */ +public class CommonTypePane extends AbstractChartTypePane { + + @Override + protected String[] getTypeIconPath() { + return new String[0]; + } + + @Override + protected String[] getTypeTipName() { + return ChartTypeInterfaceManager.getInstance().getSubName(getPlotID()); + } + + @Override + public ChartProvider getDefaultChart() { + return ChartTypeManager.getInstance().getChartTypes(getPlotID())[0]; + } + + @Override + public String title4PopupWindow() { + return ChartTypeInterfaceManager.getInstance().getName(getPlotID()); + } + + protected int getSelectIndexInChart(T chart) { + return 0; + } + + protected void setSelectIndexInChart(T chart, int index) { + } + + @Override + public void populateBean(AbstractChartWithData ob) { + if (getTypeIconPath().length > 0) { + for (ChartImagePane imagePane : typeDemo) { + imagePane.isPressing = false; + } + typeDemo.get(getSelectIndexInChart((T) ob)).isPressing = true; + checkDemosBackground(); + } + } + + @Override + public void updateBean(AbstractChartWithData ob) { + if (getTypeIconPath().length > 0) { + for (int index = 0, len = typeDemo.size(); index < len; index++) { + if (typeDemo.get(index).isPressing) { + setSelectIndexInChart((T) ob, index); + return; + } + } + } + } + + @Override + protected String[] getTypeLayoutPath() { + return new String[0]; + } + + @Override + protected String[] getTypeLayoutTipName() { + return new String[0]; + } + + @Override + protected String getPlotTypeID() { + return null; + } +}