diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 6917c190bf..58d756ec29 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2382,3 +2382,4 @@ Plugin-ChartF_Time= Plugin-ChartF_Add= Plugin-ChartF_Non_Adjustment= Plugin-ChartF_Add_Interval= +FR-Designer_Auto_Refresh= diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 52e10468b0..eec295f0b3 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2381,3 +2381,4 @@ Plugin-ChartF_Time= Plugin-ChartF_Add= Plugin-ChartF_Non_Adjustment= Plugin-ChartF_Add_Interval= +FR-Designer_Auto_Refresh= diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 6df8be3e47..2a84c9f693 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2381,4 +2381,5 @@ Plugin-ChartF_Default_Interval= Plugin-ChartF_Time= Plugin-ChartF_Add= Plugin-ChartF_Non_Adjustment= -Plugin-ChartF_Add_Interval= \ No newline at end of file +Plugin-ChartF_Add_Interval= +FR-Designer_Auto_Refresh= \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index e1e45b65f7..dfbd601a86 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2381,4 +2381,5 @@ Plugin-ChartF_Default_Interval= Plugin-ChartF_Time= Plugin-ChartF_Add= Plugin-ChartF_Non_Adjustment= -Plugin-ChartF_Add_Interval= \ No newline at end of file +Plugin-ChartF_Add_Interval= +FR-Designer_Auto_Refresh= \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index dff879783c..6f94038a42 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2382,3 +2382,4 @@ Plugin-ChartF_Time=\u65F6\u95F4 Plugin-ChartF_Add=\u6DFB\u52A0 Plugin-ChartF_Non_Adjustment=\u4E0D\u53EF\u8C03\u6574 Plugin-ChartF_Add_Interval=\u6DFB\u52A0\u95F4\u9694 +FR-Designer_Auto_Refresh=\u5B9A\u65F6\u5237\u65B0 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 427fa947c7..f4c6afe548 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2381,3 +2381,4 @@ Plugin-ChartF_Time= Plugin-ChartF_Add= Plugin-ChartF_Non_Adjustment= Plugin-ChartF_Add_Interval= +FR-Designer_Auto_Refresh= diff --git a/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java b/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java index 0fb127a007..af113ff36d 100644 --- a/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java +++ b/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java @@ -289,21 +289,28 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr } } } + + private static String getChartName(String plotID, IndependentChartUIProvider provider) { + String name = provider.getPlotTypeTitle4PopupWindow(); + if (StringUtils.isEmpty(name)) { + name = ChartTypeManager.getInstance().getChartName(plotID); + } + return name; + } public String[] getTitle4PopupWindow(String priority) { - if (priority.isEmpty()) { + if (StringUtils.isEmpty(priority)) { return getTitle4PopupWindow(); } String[] names = new String[getChartSize(priority)]; if (chartTypeInterfaces != null && chartTypeInterfaces.containsKey(priority)) { Map chartUIList = chartTypeInterfaces.get(priority); - Iterator iterator = chartUIList.entrySet().iterator(); + Iterator> iterator = chartUIList.entrySet().iterator(); int i = 0; while (iterator.hasNext()) { - Map.Entry entry = (Map.Entry) iterator.next(); - IndependentChartUIProvider provider = (IndependentChartUIProvider) entry.getValue(); - names[i++] = provider.getPlotTypeTitle4PopupWindow(); + Map.Entry entry = iterator.next(); + names[i++] = getChartName(entry.getKey(), entry.getValue()); } return names; } @@ -317,7 +324,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr if (chartTypeInterfaces != null && chartTypeInterfaces.containsKey(priority) && chartTypeInterfaces.get(priority).containsKey(plotID)) { IndependentChartUIProvider provider = chartTypeInterfaces.get(priority).get(plotID); - return provider.getPlotTypeTitle4PopupWindow(); + return getChartName(plotID, provider); } //兼容老的插件 @@ -327,7 +334,7 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr Map.Entry entry = (Map.Entry) iterator.next(); String defaultPriority = (String) entry.getKey(); if (chartTypeInterfaces.get(defaultPriority).containsKey(plotID)) { - return chartTypeInterfaces.get(defaultPriority).get(plotID).getPlotTypeTitle4PopupWindow(); + return getChartName(plotID, chartTypeInterfaces.get(defaultPriority).get(plotID)); } } } @@ -352,8 +359,12 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr int index = 0; for (Integer aPriorityList : priorityList) { String priority = String.valueOf(aPriorityList); - Iterator chartUI = chartTypeInterfaces.get(priority).entrySet().iterator(); - index = fetchNames(chartUI, names, index); + Iterator> chartUI = chartTypeInterfaces.get(priority).entrySet().iterator(); + while (chartUI.hasNext()) { + Map.Entry chartUIEntry = chartUI.next(); + + names[index++] = getChartName(chartUIEntry.getKey(), chartUIEntry.getValue()); + } } return names; @@ -372,16 +383,6 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr } return ChartTypeManager.orderInPriority(priorityList); } - - private int fetchNames(Iterator chartUI, String[] names, int index) { - - while (chartUI.hasNext()) { - Map.Entry chartUIEntry = (Map.Entry) chartUI.next(); - IndependentChartUIProvider provider = (IndependentChartUIProvider) chartUIEntry.getValue(); - names[index++] = provider.getPlotTypeTitle4PopupWindow(); - } - return index; - } public String getIconPath(String plotID) { diff --git a/designer_chart/src/com/fr/extended/chart/AbstractExtendedChartUIProvider.java b/designer_chart/src/com/fr/extended/chart/AbstractExtendedChartUIProvider.java index 1edfeaf7a7..feebeb8070 100644 --- a/designer_chart/src/com/fr/extended/chart/AbstractExtendedChartUIProvider.java +++ b/designer_chart/src/com/fr/extended/chart/AbstractExtendedChartUIProvider.java @@ -10,6 +10,8 @@ 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.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.stable.fun.impl.AbstractProvider; @@ -18,6 +20,10 @@ import com.fr.stable.fun.impl.AbstractProvider; */ public abstract class AbstractExtendedChartUIProvider extends AbstractProvider implements IndependentChartUIProvider { + protected abstract AbstractExtendedChartTableDataPane getTableDataSourcePane(); + + protected abstract AbstractReportDataContentPane getReportDataSourcePane(); + @Override public boolean needChartChangePane() { return false; @@ -33,6 +39,16 @@ public abstract class AbstractExtendedChartUIProvider extends AbstractProvider i return new ChartDataPane(listener); } + @Override + public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent) { + return getTableDataSourcePane(); + } + + @Override + public AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent) { + return getReportDataSourcePane(); + } + @Override public AbstractChartAttrPane[] getAttrPaneArray(AttributeChangeListener listener) { return new AbstractChartAttrPane[0]; @@ -68,8 +84,7 @@ public abstract class AbstractExtendedChartUIProvider extends AbstractProvider i return null; } - @Override - public String getIconPath() { + public String getPlotTypeTitle4PopupWindow(){ return null; } diff --git a/designer_chart/src/com/fr/extended/chart/AbstractExtendedStylePane.java b/designer_chart/src/com/fr/extended/chart/AbstractExtendedStylePane.java index 47644cc96c..2d4b6aa687 100644 --- a/designer_chart/src/com/fr/extended/chart/AbstractExtendedStylePane.java +++ b/designer_chart/src/com/fr/extended/chart/AbstractExtendedStylePane.java @@ -3,12 +3,10 @@ package com.fr.extended.chart; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.ChartCollection; import com.fr.design.beans.BasicBeanPane; -import com.fr.design.dialog.BasicScrollPane; import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.ibutton.UITabGroup; import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.PaneTitleConstants; -import com.fr.design.mainframe.chart.gui.ChartStylePane; import javax.swing.JPanel; import java.awt.BorderLayout; @@ -27,7 +25,7 @@ public abstract class AbstractExtendedStylePane extends private JPanel centerPane; private CardLayout cardLayout; - private List> paneList; + private List> paneList; private AttributeChangeListener listener; @@ -82,13 +80,15 @@ public abstract class AbstractExtendedStylePane extends } private void dealWithTabChanged() { - AbstractExtendedStylePane.this.removeAttributeChangeListener(); - paneList.get(tabPane.getSelectedIndex()).populateBean(chart); - AbstractExtendedStylePane.this.addAttributeChangeListener(listener); + if (chart != null) { + AbstractExtendedStylePane.this.removeAttributeChangeListener(); + paneList.get(tabPane.getSelectedIndex()).populateBean(chart); + AbstractExtendedStylePane.this.addAttributeChangeListener(listener); + } } - protected abstract List> initPaneList(); + protected abstract List> initPaneList(); @Override public void populate(ChartCollection collection) { diff --git a/designer_chart/src/com/fr/extended/chart/ExtendedOtherPane.java b/designer_chart/src/com/fr/extended/chart/ExtendedOtherPane.java index 352c4580fc..dd6a5a40e4 100644 --- a/designer_chart/src/com/fr/extended/chart/ExtendedOtherPane.java +++ b/designer_chart/src/com/fr/extended/chart/ExtendedOtherPane.java @@ -2,6 +2,8 @@ package com.fr.extended.chart; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.ChartCollection; +import com.fr.design.gui.ibutton.UIButtonGroup; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; @@ -11,6 +13,9 @@ import com.fr.general.Inter; import com.fr.plugin.chart.designer.TableLayout4VanChartHelper; import javax.swing.JPanel; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import java.awt.BorderLayout; import java.awt.Component; /** @@ -19,7 +24,9 @@ import java.awt.Component; public class ExtendedOtherPane extends AbstractChartAttrPane { private ExtendedChartHyperLinkPane hyperLinkPane; + private UIButtonGroup refreshEnabled; private UISpinner autoRefreshTime; + private JPanel contentPane; @Override public void populate(ChartCollection collection) { @@ -28,6 +35,8 @@ public class ExtendedOtherPane extends AbstractChartAttrPane { if (chart != null && chart instanceof AbstractChart) { hyperLinkPane.populateBean((AbstractChart) chart); autoRefreshTime.setValue(((AbstractChart) chart).getAutoRefreshTime()); + refreshEnabled.setSelectedIndex(((AbstractChart) chart).isRefreshEnabled() ? 0 : 1); + checkRefreshEnable(); } } @@ -40,14 +49,17 @@ public class ExtendedOtherPane extends AbstractChartAttrPane { if (chart != null && chart instanceof AbstractChart) { hyperLinkPane.updateBean((AbstractChart) chart); ((AbstractChart) chart).setAutoRefreshTime(autoRefreshTime.getValue()); + ((AbstractChart) chart).setRefreshEnabled(refreshEnabled.getSelectedIndex() == 0); } } } + private void checkRefreshEnable() { + contentPane.setVisible(refreshEnabled.getSelectedIndex() == 0); + } + @Override protected JPanel createContentPane() { - autoRefreshTime = new UISpinner(0, Integer.MAX_VALUE, 1, 0); - double p = TableLayout.PREFERRED; double f = TableLayout.FILL; @@ -56,7 +68,7 @@ public class ExtendedOtherPane extends AbstractChartAttrPane { double[] rowSize = {p, p, p, p, p, p}; Component[][] components = new Component[][]{ - new Component[]{autoRefreshTime, null}, + new Component[]{createRefreshPane(), null}, new Component[]{createHyperlinkPane(), null} }; @@ -68,6 +80,36 @@ public class ExtendedOtherPane extends AbstractChartAttrPane { return null; } + private JPanel createRefreshPane() { + + refreshEnabled = new UIButtonGroup(new String[]{Inter.getLocText("Plugin-ChartF_Open"), Inter.getLocText("Plugin-ChartF_Close")}); + refreshEnabled.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + checkRefreshEnable(); + } + }); + + autoRefreshTime = new UISpinner(0, Integer.MAX_VALUE, 1, 0); + double p = TableLayout.PREFERRED; + double f = TableLayout.FILL; + double[] columnSize = {p, f, 20}; + double[] rowSize = {p}; + + Component[][] components = new Component[][]{ + new Component[]{new UILabel(Inter.getLocText("Plugin-ChartF_Time_Interval")), autoRefreshTime, new UILabel(Inter.getLocText("Chart-Time_Seconds"))}, + }; + contentPane = TableLayout4VanChartHelper.createGapTableLayoutPane(components, rowSize, columnSize); + + JPanel panel = new JPanel(new BorderLayout(0,4)); + panel.add(refreshEnabled, BorderLayout.NORTH); + panel.add(contentPane, BorderLayout.CENTER); + + JPanel gapPane = TableLayout4VanChartHelper.createGapTableLayoutPane(Inter.getLocText("FR-Designer_Auto_Refresh"), panel); + + return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Inter.getLocText("Chart-Use_Refresh"), gapPane); + } + private JPanel createHyperlinkPane() { hyperLinkPane = new ExtendedChartHyperLinkPane(); return TableLayout4VanChartHelper.createExpandablePaneWithTitle(Inter.getLocText("M_Insert-Hyperlink"), hyperLinkPane); diff --git a/designer_chart/src/com/fr/extended/chart/ExtendedScrollPane.java b/designer_chart/src/com/fr/extended/chart/ExtendedScrollPane.java new file mode 100644 index 0000000000..061f8dc13e --- /dev/null +++ b/designer_chart/src/com/fr/extended/chart/ExtendedScrollPane.java @@ -0,0 +1,12 @@ +package com.fr.extended.chart; + +import com.fr.plugin.chart.designer.AbstractVanChartScrollPane; + +/** + * Created by shine on 2018/3/24. + */ +public abstract class ExtendedScrollPane extends AbstractVanChartScrollPane { + + @Override + public abstract void updateBean(T ob); +}