From 55180c48ff57fd860bc97e0221c29da3bc738c6a Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Tue, 26 Sep 2017 19:11:28 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B6=85=E9=93=BE?= =?UTF-8?q?=EF=BC=8C=E6=9D=A1=E4=BB=B6=E5=B1=9E=E6=80=A7=E7=AD=89=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E4=BF=AE=E6=94=B9=E5=B1=9E=E6=80=A7=E5=93=8D=E5=BA=94?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E3=80=82=20=E4=BF=AE=E6=94=B9=E6=AD=A3?= =?UTF-8?q?=E5=9C=A8=E5=8A=A0=E8=BD=BD=E4=B8=AD=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bubble/VanChartBubbleInteractivePane.java | 11 --- .../component/VanChartUIListControlPane.java | 67 +++++++++++++++++-- .../other/VanChartInteractivePane.java | 7 +- ...StructureIndependentVanChartInterface.java | 10 --- ...WordCloudIndependentVanChartInterface.java | 8 --- 5 files changed, 64 insertions(+), 39 deletions(-) diff --git a/designer_chart/src/com/fr/plugin/chart/bubble/VanChartBubbleInteractivePane.java b/designer_chart/src/com/fr/plugin/chart/bubble/VanChartBubbleInteractivePane.java index 4e4c9edab..706c0f3b0 100644 --- a/designer_chart/src/com/fr/plugin/chart/bubble/VanChartBubbleInteractivePane.java +++ b/designer_chart/src/com/fr/plugin/chart/bubble/VanChartBubbleInteractivePane.java @@ -1,14 +1,10 @@ package com.fr.plugin.chart.bubble; import com.fr.chart.chartattr.Plot; -import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.general.Inter; import com.fr.plugin.chart.base.VanChartConstants; -import com.fr.plugin.chart.designer.TableLayout4VanChartHelper; import com.fr.plugin.chart.designer.other.VanChartInteractivePaneWithOutSort; -import javax.swing.*; - /** * Created by Mitisky on 16/3/31. */ @@ -29,11 +25,4 @@ public class VanChartBubbleInteractivePane extends VanChartInteractivePaneWithOu return super.getValueArray(); } - @Override - protected JPanel getzoomTypePane(UIButtonGroup zoomType) { - if (((VanChartBubblePlot)chart.getPlot()).isForceBubble()) { - return TableLayout4VanChartHelper.createGapTableLayoutPane(Inter.getLocText("Plugin-ChartF_ZoomType"), zoomType); - } - return super.getzoomTypePane(zoomType); - } } diff --git a/designer_chart/src/com/fr/plugin/chart/designer/component/VanChartUIListControlPane.java b/designer_chart/src/com/fr/plugin/chart/designer/component/VanChartUIListControlPane.java index af9e13b35..00bd52a38 100644 --- a/designer_chart/src/com/fr/plugin/chart/designer/component/VanChartUIListControlPane.java +++ b/designer_chart/src/com/fr/plugin/chart/designer/component/VanChartUIListControlPane.java @@ -2,6 +2,8 @@ package com.fr.plugin.chart.designer.component; import com.fr.base.chart.BasePlot; import com.fr.chart.chartattr.Plot; +import com.fr.design.event.UIObserver; +import com.fr.design.event.UIObserverListener; import com.fr.design.gui.controlpane.UIListControlPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ilable.UILabel; @@ -16,6 +18,8 @@ import com.fr.plugin.chart.designer.TableLayout4VanChartHelper; import com.fr.stable.Nameable; import javax.swing.*; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -24,20 +28,71 @@ import java.awt.event.ActionListener; * Created by mengao on 2017/9/8. * 新图表UIListControlPane,基础面板。 */ -public abstract class VanChartUIListControlPane extends UIListControlPane { +public abstract class VanChartUIListControlPane extends UIListControlPane implements UIObserver { + private UIObserverListener uiObserverListener; + public VanChartUIListControlPane() { super(); this.setBorder(null); + iniListener(); } public VanChartUIListControlPane(BasePlot plot) { super(plot); this.setBorder(null); + iniListener(); + } + + /** + * 注册观察者监听事件 + * @param listener 观察者监听事件 + */ + @Override + public void registerChangeListener(UIObserverListener listener) { + uiObserverListener = listener; + } + + @Override + public boolean shouldResponseChangeListener() { + return true; + } + + private void iniListener() { + if (shouldResponseChangeListener()) { + this.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + if (uiObserverListener == null) { + return; + } + uiObserverListener.doChange(); + } + }); + } + } + + protected void fireChanged() { + Object[] listeners = listenerList.getListenerList(); + + for (int i = listeners.length - 2; i >= 0; i -= 2) { + if (listeners[i] == ChangeListener.class) { + ((ChangeListener) listeners[i + 1]).stateChanged(new ChangeEvent(this)); + } + } + + } + + /** + * 增加监听事件 + * @param l 监听的对象 + */ + public void addChangeListener(ChangeListener l) { + this.listenerList.add(ChangeListener.class, l); } @Override - protected JPanel getLeftTopPane (UIToolbar topToolBar) { + protected JPanel getLeftTopPane(UIToolbar topToolBar) { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; @@ -46,7 +101,7 @@ public abstract class VanChartUIListControlPane extends UIListControlPane { Component[][] components = new Component[][]{ new Component[]{new UILabel(getAddItemText()), topToolBar}, }; - return TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize); + return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); } @Override @@ -55,7 +110,7 @@ public abstract class VanChartUIListControlPane extends UIListControlPane { return; } update((Plot) plot); - DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); + fireChanged();//图表属性改变,响应事件 } protected abstract void update(Plot plot); @@ -63,7 +118,7 @@ public abstract class VanChartUIListControlPane extends UIListControlPane { //-------------------连续弹窗问题 start-------------------// - public void populate (Nameable[] nameableArray) { + public void populate(Nameable[] nameableArray) { //特殊处理,使用instanceof判断,弹出不同的面板 if (SwingUtilities.getWindowAncestor(this) instanceof JDialog) { popupEditDialog = new HyperDialog(cardPane); @@ -113,7 +168,7 @@ public abstract class VanChartUIListControlPane extends UIListControlPane { //取消 addCancelButton(buttonsPane); - controlPane.setBorder(BorderFactory.createEmptyBorder(10,0,10,0)); + controlPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 0)); return controlPane; } diff --git a/designer_chart/src/com/fr/plugin/chart/designer/other/VanChartInteractivePane.java b/designer_chart/src/com/fr/plugin/chart/designer/other/VanChartInteractivePane.java index 9c5b07d51..5e2b1fd9b 100644 --- a/designer_chart/src/com/fr/plugin/chart/designer/other/VanChartInteractivePane.java +++ b/designer_chart/src/com/fr/plugin/chart/designer/other/VanChartInteractivePane.java @@ -142,10 +142,9 @@ public class VanChartInteractivePane extends AbstractVanChartScrollPane { return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Inter.getLocText("Chart-Use_Zoom"), panel); } + protected JPanel getzoomTypePane(UIButtonGroup zoomType) { - JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(Inter.getLocText("Plugin-ChartF_ZoomType"), zoomType, TableLayout4VanChartHelper.SECOND_EDIT_AREA_WIDTH); - panel.setBorder(BorderFactory.createEmptyBorder(0,12,0,0)); - return panel; + return TableLayout4VanChartHelper.createGapTableLayoutPane(Inter.getLocText("Plugin-ChartF_ZoomType"), zoomType); } protected JPanel createZoomPaneContent(JPanel zoomWidgetPane, JPanel zoomGesturePane, JPanel changeEnablePane, JPanel zoomTypePane, VanChartPlot plot) { @@ -245,7 +244,7 @@ public class VanChartInteractivePane extends AbstractVanChartScrollPane { private void checkZoomPane() { boolean zoomWidgetEnabled = zoomWidget.getSelectedIndex() == 0; changeEnablePane.setVisible(zoomWidgetEnabled); - zoomTypePane.setVisible(!zoomWidgetEnabled); + zoomType.setEnabled(!zoomWidgetEnabled); } @Override diff --git a/designer_chart/src/com/fr/plugin/chart/structure/desinger/StructureIndependentVanChartInterface.java b/designer_chart/src/com/fr/plugin/chart/structure/desinger/StructureIndependentVanChartInterface.java index 65725cf53..52eeda2ed 100644 --- a/designer_chart/src/com/fr/plugin/chart/structure/desinger/StructureIndependentVanChartInterface.java +++ b/designer_chart/src/com/fr/plugin/chart/structure/desinger/StructureIndependentVanChartInterface.java @@ -5,7 +5,6 @@ import com.fr.chart.chartattr.Plot; import com.fr.design.beans.BasicBeanPane; import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.gui.frpane.AttributeChangeListener; -import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartStylePane; @@ -14,7 +13,6 @@ import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.general.Inter; import com.fr.plugin.chart.base.VanChartConstants; -import com.fr.plugin.chart.designer.TableLayout4VanChartHelper; import com.fr.plugin.chart.designer.other.VanChartInteractivePaneWithOutSort; import com.fr.plugin.chart.designer.other.VanChartOtherPane; import com.fr.plugin.chart.designer.style.VanChartStylePane; @@ -25,8 +23,6 @@ import com.fr.plugin.chart.structure.desinger.style.VanChartStructureSeriesPane; import com.fr.plugin.chart.structure.desinger.type.VanChartStructureTypePane; import com.fr.plugin.chart.vanchart.AbstractIndependentVanChartUI; -import javax.swing.*; - /** * Created by shine on 2017/2/15. */ @@ -64,12 +60,6 @@ public class StructureIndependentVanChartInterface extends AbstractIndependentVa protected BasicBeanPane createInteractivePane() { return new VanChartInteractivePaneWithOutSort(){ - @Override - protected JPanel getzoomTypePane(UIButtonGroup zoomType) { - JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(Inter.getLocText("Plugin-ChartF_ZoomType"), zoomType); - return panel; - } - @Override protected String[] getNameArray() { return new String[]{Inter.getLocText("Plugin-ChartF_XYAxis"), Inter.getLocText("Chart-Use_None")}; diff --git a/designer_chart/src/com/fr/plugin/chart/wordcloud/designer/WordCloudIndependentVanChartInterface.java b/designer_chart/src/com/fr/plugin/chart/wordcloud/designer/WordCloudIndependentVanChartInterface.java index 5f7566081..2b5ad405a 100644 --- a/designer_chart/src/com/fr/plugin/chart/wordcloud/designer/WordCloudIndependentVanChartInterface.java +++ b/designer_chart/src/com/fr/plugin/chart/wordcloud/designer/WordCloudIndependentVanChartInterface.java @@ -6,7 +6,6 @@ import com.fr.design.beans.BasicBeanPane; import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.frpane.AttributeChangeListener; -import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartStylePane; @@ -15,7 +14,6 @@ import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.general.Inter; import com.fr.plugin.chart.base.VanChartConstants; -import com.fr.plugin.chart.designer.TableLayout4VanChartHelper; import com.fr.plugin.chart.designer.other.VanChartInteractivePaneWithOutSort; import com.fr.plugin.chart.designer.other.VanChartOtherPane; import com.fr.plugin.chart.designer.style.VanChartStylePane; @@ -26,7 +24,6 @@ import com.fr.plugin.chart.wordcloud.designer.other.VanChartWordCloudConditionPa import com.fr.plugin.chart.wordcloud.designer.style.VanChartWordCloudSeriesPane; import com.fr.plugin.chart.wordcloud.designer.type.VanChartWordCloudTypePane; -import javax.swing.*; import java.util.List; /** @@ -87,11 +84,6 @@ public class WordCloudIndependentVanChartInterface extends AbstractIndependentVa @Override protected BasicBeanPane createInteractivePane() { return new VanChartInteractivePaneWithOutSort(){ - @Override - protected JPanel getzoomTypePane(UIButtonGroup zoomType) { - JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(Inter.getLocText("Plugin-ChartF_ZoomType"), zoomType); - return panel; - } @Override protected String[] getNameArray() { From 2e09b9c40fd3dcb5a12f0b847409fa20b4bb5551 Mon Sep 17 00:00:00 2001 From: fr_shine Date: Wed, 27 Sep 2017 16:39:18 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=AE=89=E8=A3=85=E4=BD=8D=E5=9B=BE?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E6=8F=92=E4=BB=B6=20=E6=8F=92=E5=85=A5?= =?UTF-8?q?=E5=9B=BE=E8=A1=A8=E6=8A=9B=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/ChartTypeInterfaceManager.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java b/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java index adc29477f..e53d7849c 100644 --- a/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java +++ b/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java @@ -96,6 +96,8 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import static com.fr.chart.charttypes.ChartTypeManager.CHART_PRIORITY; + /** * Created by eason on 14/12/29. */ @@ -215,7 +217,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr private static void readDefault() { - if (chartTypeInterfaces.containsKey(ChartTypeManager.CHART_PRIORITY)) { + if (chartTypeInterfaces.containsKey(CHART_PRIORITY)) { return; } CloseableContainedMap chartUIList = @@ -238,7 +240,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr chartUIList.put(ChartConstants.GIS_CHAER, new GisMapIndependentChartInterface()); chartUIList.put(ChartConstants.FUNNEL_CHART, new FunnelIndependentChartInterface()); - chartTypeInterfaces.put(ChartTypeManager.CHART_PRIORITY, chartUIList); + chartTypeInterfaces.put(CHART_PRIORITY, chartUIList); } @@ -406,7 +408,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr return getChartDataPane(priority, plotID, listener); } } - return getChartDataPane(ChartTypeManager.CHART_PRIORITY, plotID, listener); + return getChartDataPane(CHART_PRIORITY, plotID, listener); } private ChartDataPane getChartDataPane(String priority, String plotID, AttributeChangeListener listener) { @@ -436,7 +438,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr return getAttrPaneArray(priority, plotID, listener); } } - return getAttrPaneArray(ChartTypeManager.CHART_PRIORITY, plotID, listener); + return getAttrPaneArray(CHART_PRIORITY, plotID, listener); } private AbstractChartAttrPane[] getAttrPaneArray(String priority, String plotID, AttributeChangeListener listener) { @@ -454,7 +456,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr return getTableDataSourcePane(priority, plot, parent); } } - return getTableDataSourcePane(ChartTypeManager.CHART_PRIORITY, plot, parent); + return getTableDataSourcePane(CHART_PRIORITY, plot, parent); } private AbstractTableDataContentPane getTableDataSourcePane(String priority, Plot plot, ChartDataPane parent) { @@ -474,7 +476,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr return getReportDataSourcePane(priority, plot, parent); } } - return getReportDataSourcePane(ChartTypeManager.CHART_PRIORITY, plot, parent); + return getReportDataSourcePane(CHART_PRIORITY, plot, parent); } private boolean plotInChart(String plotID, String priority) { @@ -500,7 +502,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr return getPlotConditionPane(priority, plot); } } - return getPlotConditionPane(ChartTypeManager.CHART_PRIORITY, plot); + return getPlotConditionPane(CHART_PRIORITY, plot); } private ConditionAttributesPane getPlotConditionPane(String priority, Plot plot) { @@ -519,7 +521,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr return getPlotSeriesPane(priority, parent, plot); } } - return getPlotSeriesPane(ChartTypeManager.CHART_PRIORITY, parent, plot); + return getPlotSeriesPane(CHART_PRIORITY, parent, plot); } private BasicBeanPane getPlotSeriesPane(String priority, ChartStylePane parent, Plot plot) { @@ -557,7 +559,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr public void mount(PluginSingleInjection injection) { if (isIndependentChartUIProvider(injection)) { - String priority = injection.getAttribute("priority"); + String priority = injection.getAttribute("priority", CHART_PRIORITY); String plotID = injection.getAttribute("plotID"); IndependentChartUIProvider instance = (IndependentChartUIProvider) injection.getObject(); addChartTypeInterface(instance, priority, plotID); @@ -569,7 +571,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr public void demount(PluginSingleInjection injection) { if (isIndependentChartUIProvider(injection)) { - String priority = injection.getAttribute("priority"); + String priority = injection.getAttribute("priority", CHART_PRIORITY); String plotID = injection.getAttribute("plotID"); removeChartTypeInterface(priority, plotID); } @@ -602,7 +604,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr return getChartEditPane(priority, plotID); } } - return getChartEditPane(ChartTypeManager.CHART_PRIORITY, plotID); + return getChartEditPane(CHART_PRIORITY, plotID); } private ChartEditPane getChartEditPane(String priority, String plotID) { @@ -618,7 +620,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr return getChartConfigPane(priority, plotID); } } - return getChartConfigPane(ChartTypeManager.CHART_PRIORITY, plotID); + return getChartConfigPane(CHART_PRIORITY, plotID); } private ChartsConfigPane getChartConfigPane(String priority, String plotID) { From 3672488555b5d1bb7897e5befcd86c14be0c6836 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Wed, 27 Sep 2017 19:02:11 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E7=94=98=E7=89=B9=E5=9B=BE=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E6=BB=91=E8=BD=AE=E8=AE=BE=E7=BD=AE=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desinger/style/VanChartStructureSeriesPane.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/designer_chart/src/com/fr/plugin/chart/structure/desinger/style/VanChartStructureSeriesPane.java b/designer_chart/src/com/fr/plugin/chart/structure/desinger/style/VanChartStructureSeriesPane.java index ec85e3e30..8227fc4df 100644 --- a/designer_chart/src/com/fr/plugin/chart/structure/desinger/style/VanChartStructureSeriesPane.java +++ b/designer_chart/src/com/fr/plugin/chart/structure/desinger/style/VanChartStructureSeriesPane.java @@ -135,8 +135,10 @@ public class VanChartStructureSeriesPane extends VanChartAbstractPlotSeriesPane protected void updateCondition(ConditionAttr defaultAttr){ if(nodeStylePane != null){ AttrNode attrNode =defaultAttr.getExisted(AttrNode.class); - defaultAttr.remove(attrNode); - defaultAttr.addDataSeriesCondition(nodeStylePane.updateBean()); + if (attrNode != null) { + defaultAttr.remove(attrNode); + defaultAttr.addDataSeriesCondition(nodeStylePane.updateBean()); + } } } }