From 87f264d412eeda21cc9b5eb2b1f3f964e1dd72a4 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Tue, 28 Nov 2017 16:43:44 +0800 Subject: [PATCH 01/28] =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E7=A9=BA=E6=95=B0=E6=8D=AE=E6=8F=90=E7=A4=BA=E7=9A=84?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E9=83=A8=E5=88=86=E5=92=8Cxml=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer/src/com/fr/start/Designer.java | 11 +- .../fr/design/actions/core/ActionFactory.java | 22 +- .../com/fr/design/images/chart/EmptyChart.png | Bin 0 -> 274 bytes .../com/fr/design/locale/designer.properties | 2 + .../design/locale/designer_en_US.properties | 2 + .../design/locale/designer_ja_JP.properties | 2 + .../design/locale/designer_ko_KR.properties | 2 + .../design/locale/designer_zh_CN.properties | 4 +- .../design/locale/designer_zh_TW.properties | 2 + .../fr/design/module/ChartDesignerModule.java | 1 + .../module/ChartEmptyDataStyleAction.java | 46 ++++ .../module/ChartEmptyDataStylePane.java | 211 ++++++++++++++++++ 12 files changed, 296 insertions(+), 9 deletions(-) create mode 100644 designer_base/src/com/fr/design/images/chart/EmptyChart.png create mode 100644 designer_chart/src/com/fr/design/module/ChartEmptyDataStyleAction.java create mode 100644 designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java diff --git a/designer/src/com/fr/start/Designer.java b/designer/src/com/fr/start/Designer.java index 2f484553a0..17c01527e7 100644 --- a/designer/src/com/fr/start/Designer.java +++ b/designer/src/com/fr/start/Designer.java @@ -45,13 +45,9 @@ import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import com.fr.stable.xml.XMLTools; -import javax.swing.JComponent; -import javax.swing.JPanel; +import javax.swing.*; import javax.swing.border.MatteBorder; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Insets; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -130,6 +126,9 @@ public class Designer extends BaseDesigner { if (ActionFactory.getChartPreStyleAction() != null) { menuDef.addShortCut(ActionFactory.getChartPreStyleAction()); } + if (ActionFactory.getChartEmptyDataStyleAction() != null) { + menuDef.addShortCut(ActionFactory.getChartEmptyDataStyleAction()); + } if (ActionFactory.getChartMapEditorAction() != null) { menuDef.addShortCut(ActionFactory.getChartMapEditorAction()); } diff --git a/designer_base/src/com/fr/design/actions/core/ActionFactory.java b/designer_base/src/com/fr/design/actions/core/ActionFactory.java index 7bc73acbb6..ecce774da7 100644 --- a/designer_base/src/com/fr/design/actions/core/ActionFactory.java +++ b/designer_base/src/com/fr/design/actions/core/ActionFactory.java @@ -9,8 +9,7 @@ import com.fr.design.menu.MenuKeySet; import com.fr.design.selection.QuickEditor; import com.fr.general.FRLogger; -import javax.swing.Action; -import javax.swing.KeyStroke; +import javax.swing.*; import java.awt.event.KeyEvent; import java.lang.reflect.Constructor; import java.util.ArrayList; @@ -50,6 +49,7 @@ public class ActionFactory { private static ConcurrentMap> cellEditorClass = new ConcurrentHashMap<>(); private static UpdateAction chartPreStyleAction = null; + private static UpdateAction chartEmptyDataStyleAction = null; private static UpdateAction chartMapEditorAction = null; private ActionFactory() { @@ -126,6 +126,15 @@ public class ActionFactory { chartPreStyleAction = action; } + /** + * 注册图表的 空数据提示样式. + * + * @param action 注册的图表空数据提示样式action + */ + public static void registerChartEmptyDataStyleAction(UpdateAction action) { + chartEmptyDataStyleAction = action; + } + /** * kunsnat: 图表注册 悬浮元素编辑器 , 因为ChartCollection和ChartQuickEditor一个在Chart,一个在Designer, 所以分开注册. * @@ -157,6 +166,15 @@ public class ActionFactory { return chartPreStyleAction; } + /** + * 图表空数据提示样式Action + * + * @return 图表空数据提示样式Action + */ + public static UpdateAction getChartEmptyDataStyleAction() { + return chartEmptyDataStyleAction; + } + /** * 图表编辑器Action diff --git a/designer_base/src/com/fr/design/images/chart/EmptyChart.png b/designer_base/src/com/fr/design/images/chart/EmptyChart.png new file mode 100644 index 0000000000000000000000000000000000000000..1613f98b2094ec2095381a19223e701506cf5b5d GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GGLLkg|>2BR0px_Zt z7sn8b(@Q5G2KD7k;yrV8>Y|_pf%{XA z{_CpGIhuE-$JT;@Wg@#l$g@6A(`|A*2Tt=QeA)bDngl~s*`t6T%a{IY`mH-5WcIA- z%^kJ5iXBH3E{PV3yFA)2<|Wg(QebAo?^{Q&a!q@b>e z_r9KhOWuK{CeO{nCp2aUo%J+j4u5W!m^SD4y)!*hvx}eQ%RE20B2uj(?Y-50#>jVB VPVG}ULxKKb@O1TaS?83{1OVCAZo~ip literal 0 HcmV?d00001 diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index bbed62b646..405b7281ca 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2149,3 +2149,5 @@ FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=If HTTPS is enabled or the HTTPS configuration (certificate path, HTTPS key) is modified, you must restart the designer to take effect. FR-Designer_Format_JavaScript=Format Code +FR-Designer_Prompt_Content= +FR-Designer_Chart-EmptyData= 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 e5608bf896..9557b5314e 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 @@ -2148,3 +2148,5 @@ FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=If HTTPS is enabled or the HTTPS configuration (certificate path, HTTPS key) is modified, you must restart the designer to take effect. FR-Designer_Format_JavaScript=Format Code +FR-Designer_Prompt_Content= +FR-Designer_Chart-EmptyData= 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 bb5cfc1712..549edf34c2 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 @@ -2149,3 +2149,5 @@ FR-Designer_Decimal_Places=\u5C0F\u6570\u67A0\u6570: FR-Base-Load_Resource_File=\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u30ED\u30FC\u30C9 FR-Designer_Env_Des_Https= FR-Designer_Format_JavaScript=Format Code +FR-Designer_Prompt_Content= +FR-Designer_Chart-EmptyData= 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 d25124d98e..d248a0fa49 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 @@ -2149,3 +2149,5 @@ FR-Designer_Export_Background= FR-Designer_Print_Background= FR-Designer_Env_Des_Https= FR-Designer_Format_JavaScript=Format Code +FR-Designer_Prompt_Content= +FR-Designer_Chart-EmptyData= 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 f7b8d3a3cd..6e9e1b5d92 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 @@ -2148,4 +2148,6 @@ FR-Designer_Sheet_Label_Page_Display_Position= FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=\u82E5\u542F\u7528https\u6216\u4FEE\u6539https\u914D\u7F6E\uFF08\u8BC1\u4E66\u8DEF\u5F84\u3001https\u79D8\u94A5\uFF09\uFF0C\u5FC5\u987B\u91CD\u542F\u8BBE\u8BA1\u5668\u624D\u80FD\u751F\u6548\u3002 -FR-Designer_Format_JavaScript=\u683C\u5F0F\u5316\u4EE3\u7801 \ No newline at end of file +FR-Designer_Format_JavaScript=\u683C\u5F0F\u5316\u4EE3\u7801 +FR-Designer_Prompt_Content=\u63D0\u793A\u5185\u5BB9 +FR-Designer_Chart-EmptyData=\u56FE\u8868\u7A7A\u6570\u636E\u63D0\u793A \ No newline at end of file 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 42817879ea..29a2b9a55c 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 @@ -2148,3 +2148,5 @@ FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=\u82E5\u555F\u7528https\u6216\u4FEE\u6539https\u914D\u7F6E\uFF08\u8B49\u66F8\u8DEF\u5F91\u3001https\u7955\u9470\uFF09\uFF0C\u5FC5\u9808\u91CD\u555F\u8A2D\u8A08\u5668\u624D\u80FD\u751F\u6548\u3002 FR-Designer_Format_JavaScript=Format Code +FR-Designer_Prompt_Content= +FR-Designer_Chart-EmptyData= diff --git a/designer_chart/src/com/fr/design/module/ChartDesignerModule.java b/designer_chart/src/com/fr/design/module/ChartDesignerModule.java index 586910774a..85cb0bce78 100644 --- a/designer_chart/src/com/fr/design/module/ChartDesignerModule.java +++ b/designer_chart/src/com/fr/design/module/ChartDesignerModule.java @@ -53,6 +53,7 @@ public class ChartDesignerModule extends DesignModule { DesignModuleFactory.registerChartPropertyPaneClass(ChartPropertyPane.class); ActionFactory.registerChartPreStyleAction(new ChartPreStyleAction()); + ActionFactory.registerChartEmptyDataStyleAction(new ChartEmptyDataStyleAction()); ActionFactory.registerChartMapEditorAction(new ChartMapEditorAction()); } diff --git a/designer_chart/src/com/fr/design/module/ChartEmptyDataStyleAction.java b/designer_chart/src/com/fr/design/module/ChartEmptyDataStyleAction.java new file mode 100644 index 0000000000..5f2d7753c7 --- /dev/null +++ b/designer_chart/src/com/fr/design/module/ChartEmptyDataStyleAction.java @@ -0,0 +1,46 @@ +package com.fr.design.module; + +import com.fr.design.actions.UpdateAction; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.DesignerFrame; +import com.fr.general.IOUtils; +import com.fr.general.Inter; + +import java.awt.event.ActionEvent; + +/** + * Created by mengao on 2017/11/23. + * 空数据配置action + */ +public class ChartEmptyDataStyleAction extends UpdateAction { + + public ChartEmptyDataStyleAction() { + this.setSmallIcon(IOUtils.readIcon("com/fr/design/images/chart/EmptyChart.png")); + this.setName(Inter.getLocText("FR-Designer_Chart-EmptyData")); + } + + @Override + public void actionPerformed(ActionEvent e) { + DesignerFrame designerFrame = DesignerContext.getDesignerFrame(); + final ChartEmptyDataStylePane pane = new ChartEmptyDataStylePane(); + BasicDialog dialog = pane.showWindow(designerFrame); + dialog.addDialogActionListener(new DialogActionAdapter() { + @Override + public void doOk() { + pane.updateBean(); + + } + + @Override + public void doCancel() { + + } + }); + + pane.populateBean(); + dialog.setVisible(true); + } + +} diff --git a/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java b/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java new file mode 100644 index 0000000000..b5c5911b15 --- /dev/null +++ b/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java @@ -0,0 +1,211 @@ +package com.fr.design.module; + +import com.fr.base.BaseUtils; +import com.fr.base.ChartEmptyDataStyleManagerProvider; +import com.fr.base.ChartEmptyDataStyleServerManager; +import com.fr.design.gui.frpane.AbstractAttrNoScrollPane; +import com.fr.design.gui.ibutton.UIButton; +import com.fr.design.gui.ibutton.UIButtonGroup; +import com.fr.design.gui.ibutton.UIRadioButton; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.DesignerFrame; +import com.fr.design.style.background.image.ImageFileChooser; +import com.fr.design.style.background.image.ImagePreviewPane; +import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.general.Inter; +import com.fr.stable.CoreGraphHelper; +import com.fr.stable.StringUtils; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; + +/** + * Created by mengao on 2017/11/23. + */ +public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { + + private UIButtonGroup emptyData; + private UIRadioButton defaultRadioButton; + private UIRadioButton customRadioButton; + private UIButton selectPictureButton; + + private ImagePreviewPane previewPane; + private ImageFileChooser imageFileChooser; + + private Image emptyDataImage= null; + + + @Override + protected JPanel createContentPane() { + JPanel content = new JPanel(new BorderLayout()); + content.add(creatNorthPane(), BorderLayout.NORTH); + content.add(creatCenterPane(), BorderLayout.CENTER); + return content; + } + + private JPanel creatNorthPane() { + emptyData = new UIButtonGroup(new String[]{Inter.getLocText("Plugin-ChartF_Open"), Inter.getLocText("Plugin-ChartF_Close")}); + emptyData.setSelectedIndex(0); + emptyData.setPreferredSize(new Dimension(150, 20)); + emptyData.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + checkEmptyDataStyle(); + } + }); + + UILabel promptContent = new UILabel(Inter.getLocText("FR-Designer_Prompt_Content")); + JPanel northPane = GUICoreUtils.createFlowPane(new Component[]{promptContent, emptyData}, FlowLayout.LEFT, 15, 0); + northPane.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0)); + return northPane; + } + + private JPanel creatCenterPane() { + JPanel centerPane = new JPanel(FRGUIPaneFactory.createBorderLayout()); + + // preview pane + JPanel previewContainerPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); + centerPane.add(previewContainerPane, BorderLayout.CENTER); + + JPanel previewOwnerPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Preview")); + previewOwnerPane.setLayout(new BorderLayout()); + previewContainerPane.add(previewOwnerPane, BorderLayout.CENTER); + previewContainerPane.add(initSelectFilePane(), BorderLayout.EAST); + previewPane = new ImagePreviewPane(); + previewOwnerPane.add(new JScrollPane(previewPane)); + + + // init image file chooser. + imageFileChooser = new ImageFileChooser(); + imageFileChooser.setMultiSelectionEnabled(false); + return centerPane; + } + + public JPanel initSelectFilePane() { + + JPanel selectFilePane = FRGUIPaneFactory.createBorderLayout_L_Pane(); + + selectFilePane.setBorder(BorderFactory.createEmptyBorder(10, 5, 0, 30)); + + defaultRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer_DEFAULT")); + customRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer-Widget-Style_Custom")); + ButtonGroup buttonGroup = new ButtonGroup(); + defaultRadioButton.setSelected(true); + buttonGroup.add(defaultRadioButton); + buttonGroup.add(customRadioButton); + + defaultRadioButton.addActionListener(getLayoutActionListener()); + customRadioButton.addActionListener(getLayoutActionListener()); + + JPanel jp = new JPanel(new GridLayout(3, 1, 0, 10)); + jp.add(defaultRadioButton); + jp.add(customRadioButton); + + selectPictureButton = new UIButton( + Inter.getLocText("FR-Designer_Background_Image_Select")); + selectPictureButton.addActionListener(getSelectPictureActionListener()); + jp.add(selectPictureButton); + + + selectFilePane.add(jp, BorderLayout.NORTH); + return selectFilePane; + } + + private ActionListener getLayoutActionListener() { + return new ActionListener() { + + public void actionPerformed(ActionEvent evt) { + checkCustomImage(); + changeEmptyDataStyle(); + } + + private void changeEmptyDataStyle() { + previewPane.repaint(); + } + }; + } + + /** + * Select picture. + */ + private ActionListener getSelectPictureActionListener() { + return new ActionListener() { + + public void actionPerformed(ActionEvent evt) { + int returnVal = imageFileChooser.showOpenDialog(ChartEmptyDataStylePane.this); + if (returnVal != JFileChooser.CANCEL_OPTION) { + File selectedFile = imageFileChooser.getSelectedFile(); + + if (selectedFile != null && selectedFile.isFile()) { + emptyDataImage = BaseUtils.readImage(selectedFile.getPath()); + CoreGraphHelper.waitForImage(emptyDataImage); + + previewPane.setImage(emptyDataImage); + previewPane.repaint(); + } else { + previewPane.setImage(null); + } + } + + } + }; + } + + private void checkEmptyDataStyle() { + boolean b = emptyData.getSelectedIndex() == 0; + defaultRadioButton.setEnabled(b); + customRadioButton.setEnabled(b); + selectPictureButton.setEnabled(b); + } + + private void checkCustomImage() { + selectPictureButton.setVisible(customRadioButton.isSelected()); + } + + @Override + public String getIconPath() { + return StringUtils.EMPTY; + } + + @Override + public String title4PopupWindow() { + return Inter.getLocText("FR-Designer_Chart-EmptyData"); + } + + public void populateBean() { + ChartEmptyDataStyleManagerProvider manager = ChartEmptyDataStyleServerManager.getProviderInstance(); + emptyData.setSelectedIndex(manager.isOpenEmptyDataStyle() == true ? 0 : 1); + customRadioButton.setSelected(manager.isCustomEmptyDataStyle()); + emptyDataImage = manager.getEmptyDataImage(); + + checkEmptyDataStyle(); + checkCustomImage(); + previewPane.setImage(emptyDataImage); + previewPane.repaint(); + } + + public void updateBean() { + ChartEmptyDataStyleManagerProvider manager = ChartEmptyDataStyleServerManager.getProviderInstance(); + + manager.setOpenEmptyDataStyle(emptyData.getSelectedIndex() == 0); + manager.setCustomEmptyDataStyle(customRadioButton.isSelected()); + manager.setEmptyDataImage(emptyDataImage); + + try { + manager.writeResource(); + } catch (Exception e) { + e.printStackTrace(); + } + + // 通知报表整个刷新. + DesignerFrame frame = DesignerContext.getDesignerFrame(); + if (frame != null) { + frame.repaint(); + } + } +} From 930767eab369386c7fb7b58db1ff389565a691a4 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Tue, 28 Nov 2017 16:53:01 +0800 Subject: [PATCH 02/28] =?UTF-8?q?=E7=A9=BA=E6=95=B0=E6=8D=AE=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/locale/designer.properties | 4 ++-- .../src/com/fr/design/locale/designer_en_US.properties | 4 ++-- .../src/com/fr/design/locale/designer_ja_JP.properties | 4 ++-- .../src/com/fr/design/locale/designer_ko_KR.properties | 4 ++-- .../src/com/fr/design/locale/designer_zh_CN.properties | 4 ++-- .../src/com/fr/design/locale/designer_zh_TW.properties | 4 ++-- .../src/com/fr/design/module/ChartEmptyDataStyleAction.java | 2 +- .../src/com/fr/design/module/ChartEmptyDataStylePane.java | 6 +++--- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 405b7281ca..d66a1206ef 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2149,5 +2149,5 @@ FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=If HTTPS is enabled or the HTTPS configuration (certificate path, HTTPS key) is modified, you must restart the designer to take effect. FR-Designer_Format_JavaScript=Format Code -FR-Designer_Prompt_Content= -FR-Designer_Chart-EmptyData= +FR-Designer_Tip_Content= +FR-Designer_Chart_Empty_Data= 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 9557b5314e..4f4e40aab3 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 @@ -2148,5 +2148,5 @@ FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=If HTTPS is enabled or the HTTPS configuration (certificate path, HTTPS key) is modified, you must restart the designer to take effect. FR-Designer_Format_JavaScript=Format Code -FR-Designer_Prompt_Content= -FR-Designer_Chart-EmptyData= +FR-Designer_Tip_Content= +FR-Designer_Chart_Empty_Data= 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 549edf34c2..24ac12b1a8 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 @@ -2149,5 +2149,5 @@ FR-Designer_Decimal_Places=\u5C0F\u6570\u67A0\u6570: FR-Base-Load_Resource_File=\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u30ED\u30FC\u30C9 FR-Designer_Env_Des_Https= FR-Designer_Format_JavaScript=Format Code -FR-Designer_Prompt_Content= -FR-Designer_Chart-EmptyData= +FR-Designer_Tip_Content= +FR-Designer_Chart_Empty_Data= 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 d248a0fa49..85cadabbce 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 @@ -2149,5 +2149,5 @@ FR-Designer_Export_Background= FR-Designer_Print_Background= FR-Designer_Env_Des_Https= FR-Designer_Format_JavaScript=Format Code -FR-Designer_Prompt_Content= -FR-Designer_Chart-EmptyData= +FR-Designer_Tip_Content= +FR-Designer_Chart_Empty_Data= 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 6e9e1b5d92..c3d491d2de 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 @@ -2149,5 +2149,5 @@ FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=\u82E5\u542F\u7528https\u6216\u4FEE\u6539https\u914D\u7F6E\uFF08\u8BC1\u4E66\u8DEF\u5F84\u3001https\u79D8\u94A5\uFF09\uFF0C\u5FC5\u987B\u91CD\u542F\u8BBE\u8BA1\u5668\u624D\u80FD\u751F\u6548\u3002 FR-Designer_Format_JavaScript=\u683C\u5F0F\u5316\u4EE3\u7801 -FR-Designer_Prompt_Content=\u63D0\u793A\u5185\u5BB9 -FR-Designer_Chart-EmptyData=\u56FE\u8868\u7A7A\u6570\u636E\u63D0\u793A \ No newline at end of file +FR-Designer_Tip_Content=\u63D0\u793A\u5185\u5BB9 +FR-Designer_Chart_Empty_Data=\u56FE\u8868\u7A7A\u6570\u636E\u63D0\u793A \ No newline at end of file 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 29a2b9a55c..65d138d567 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 @@ -2148,5 +2148,5 @@ FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=\u82E5\u555F\u7528https\u6216\u4FEE\u6539https\u914D\u7F6E\uFF08\u8B49\u66F8\u8DEF\u5F91\u3001https\u7955\u9470\uFF09\uFF0C\u5FC5\u9808\u91CD\u555F\u8A2D\u8A08\u5668\u624D\u80FD\u751F\u6548\u3002 FR-Designer_Format_JavaScript=Format Code -FR-Designer_Prompt_Content= -FR-Designer_Chart-EmptyData= +FR-Designer_Tip_Content= +FR-Designer_Chart_Empty_Data= diff --git a/designer_chart/src/com/fr/design/module/ChartEmptyDataStyleAction.java b/designer_chart/src/com/fr/design/module/ChartEmptyDataStyleAction.java index 5f2d7753c7..04213480b2 100644 --- a/designer_chart/src/com/fr/design/module/ChartEmptyDataStyleAction.java +++ b/designer_chart/src/com/fr/design/module/ChartEmptyDataStyleAction.java @@ -18,7 +18,7 @@ public class ChartEmptyDataStyleAction extends UpdateAction { public ChartEmptyDataStyleAction() { this.setSmallIcon(IOUtils.readIcon("com/fr/design/images/chart/EmptyChart.png")); - this.setName(Inter.getLocText("FR-Designer_Chart-EmptyData")); + this.setName(Inter.getLocText("FR-Designer_Chart_Empty_Data")); } @Override diff --git a/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java b/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java index b5c5911b15..f817558e33 100644 --- a/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java +++ b/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java @@ -37,7 +37,7 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { private ImagePreviewPane previewPane; private ImageFileChooser imageFileChooser; - private Image emptyDataImage= null; + private Image emptyDataImage = null; @Override @@ -59,7 +59,7 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { } }); - UILabel promptContent = new UILabel(Inter.getLocText("FR-Designer_Prompt_Content")); + UILabel promptContent = new UILabel(Inter.getLocText("FR-Designer_Tip_Content")); JPanel northPane = GUICoreUtils.createFlowPane(new Component[]{promptContent, emptyData}, FlowLayout.LEFT, 15, 0); northPane.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0)); return northPane; @@ -174,7 +174,7 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { @Override public String title4PopupWindow() { - return Inter.getLocText("FR-Designer_Chart-EmptyData"); + return Inter.getLocText("FR-Designer_Chart_Empty_Data"); } public void populateBean() { From 24fdae75ead931847680872723698247566d1dd5 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Tue, 28 Nov 2017 20:06:44 +0800 Subject: [PATCH 03/28] =?UTF-8?q?=E4=BF=AE=E6=94=B9pmd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/ChartEmptyDataStyleAction.java | 2 +- .../module/ChartEmptyDataStylePane.java | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/designer_chart/src/com/fr/design/module/ChartEmptyDataStyleAction.java b/designer_chart/src/com/fr/design/module/ChartEmptyDataStyleAction.java index 04213480b2..7c6bdb0959 100644 --- a/designer_chart/src/com/fr/design/module/ChartEmptyDataStyleAction.java +++ b/designer_chart/src/com/fr/design/module/ChartEmptyDataStyleAction.java @@ -35,7 +35,7 @@ public class ChartEmptyDataStyleAction extends UpdateAction { @Override public void doCancel() { - + //直接关闭弹出框 } }); diff --git a/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java b/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java index f817558e33..0c8f239277 100644 --- a/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java +++ b/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java @@ -14,6 +14,7 @@ import com.fr.design.mainframe.DesignerFrame; import com.fr.design.style.background.image.ImageFileChooser; import com.fr.design.style.background.image.ImagePreviewPane; import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.general.FRLogger; import com.fr.general.Inter; import com.fr.stable.CoreGraphHelper; import com.fr.stable.StringUtils; @@ -28,6 +29,12 @@ import java.io.File; * Created by mengao on 2017/11/23. */ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { + private static final int WIDTH =150; + private static final int HEIGHT =20; + private static final int FIVE =5; + private static final int TEN =10; + private static final int THIRTY =30; + private UIButtonGroup emptyData; private UIRadioButton defaultRadioButton; @@ -51,7 +58,7 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { private JPanel creatNorthPane() { emptyData = new UIButtonGroup(new String[]{Inter.getLocText("Plugin-ChartF_Open"), Inter.getLocText("Plugin-ChartF_Close")}); emptyData.setSelectedIndex(0); - emptyData.setPreferredSize(new Dimension(150, 20)); + emptyData.setPreferredSize(new Dimension(WIDTH, HEIGHT)); emptyData.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -60,8 +67,8 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { }); UILabel promptContent = new UILabel(Inter.getLocText("FR-Designer_Tip_Content")); - JPanel northPane = GUICoreUtils.createFlowPane(new Component[]{promptContent, emptyData}, FlowLayout.LEFT, 15, 0); - northPane.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0)); + JPanel northPane = GUICoreUtils.createFlowPane(new Component[]{promptContent, emptyData}, FlowLayout.LEFT, TEN, 0); + northPane.setBorder(BorderFactory.createEmptyBorder(0, FIVE, 0, 0)); return northPane; } @@ -90,7 +97,7 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { JPanel selectFilePane = FRGUIPaneFactory.createBorderLayout_L_Pane(); - selectFilePane.setBorder(BorderFactory.createEmptyBorder(10, 5, 0, 30)); + selectFilePane.setBorder(BorderFactory.createEmptyBorder(TEN, FIVE, 0, THIRTY)); defaultRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer_DEFAULT")); customRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer-Widget-Style_Custom")); @@ -102,7 +109,7 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { defaultRadioButton.addActionListener(getLayoutActionListener()); customRadioButton.addActionListener(getLayoutActionListener()); - JPanel jp = new JPanel(new GridLayout(3, 1, 0, 10)); + JPanel jp = new JPanel(new GridLayout(3, 1, 0, TEN)); jp.add(defaultRadioButton); jp.add(customRadioButton); @@ -199,7 +206,7 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { try { manager.writeResource(); } catch (Exception e) { - e.printStackTrace(); + FRLogger.getLogger().error(e.getMessage()); } // 通知报表整个刷新. From 5ba7c941fe6c4247f7cf8a26bd3567bdea9fdf11 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Wed, 29 Nov 2017 11:59:16 +0800 Subject: [PATCH 04/28] =?UTF-8?q?=E7=A9=BA=E6=95=B0=E6=8D=AE=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E8=87=AA=E5=AE=9A=E4=B9=89=EF=BC=8C=E5=89=8D=E5=8F=B0?= =?UTF-8?q?=E4=BC=A0=E9=80=92=E5=8F=82=E6=95=B0=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/images/emptydataimage.png | Bin 0 -> 13785 bytes .../module/ChartEmptyDataStylePane.java | 34 ++++++++++-------- 2 files changed, 19 insertions(+), 15 deletions(-) create mode 100644 designer_chart/src/com/fr/design/images/emptydataimage.png diff --git a/designer_chart/src/com/fr/design/images/emptydataimage.png b/designer_chart/src/com/fr/design/images/emptydataimage.png new file mode 100644 index 0000000000000000000000000000000000000000..d3ab9923e459922234f509ddb95d9a98ea9ab1bd GIT binary patch literal 13785 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 literal 0 HcmV?d00001 diff --git a/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java b/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java index 0c8f239277..3eb6ebddcd 100644 --- a/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java +++ b/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java @@ -15,6 +15,7 @@ import com.fr.design.style.background.image.ImageFileChooser; import com.fr.design.style.background.image.ImagePreviewPane; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.FRLogger; +import com.fr.general.IOUtils; import com.fr.general.Inter; import com.fr.stable.CoreGraphHelper; import com.fr.stable.StringUtils; @@ -29,11 +30,12 @@ import java.io.File; * Created by mengao on 2017/11/23. */ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { - private static final int WIDTH =150; - private static final int HEIGHT =20; - private static final int FIVE =5; - private static final int TEN =10; - private static final int THIRTY =30; + private static final int WIDTH = 150; + private static final int HEIGHT = 20; + private static final int FIVE = 5; + private static final int TEN = 10; + private static final int THIRTY = 30; + private static final Image DEFAULT_EMPTY_DATA_IMAGE = IOUtils.readImage("com/fr/design/images/emptydataimage.png"); private UIButtonGroup emptyData; @@ -44,7 +46,7 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { private ImagePreviewPane previewPane; private ImageFileChooser imageFileChooser; - private Image emptyDataImage = null; + private Image emptyDataImage = DEFAULT_EMPTY_DATA_IMAGE; @Override @@ -63,6 +65,7 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { @Override public void actionPerformed(ActionEvent e) { checkEmptyDataStyle(); + repaintPreviewPane(); } }); @@ -127,12 +130,9 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { return new ActionListener() { public void actionPerformed(ActionEvent evt) { + emptyDataImage = null; checkCustomImage(); - changeEmptyDataStyle(); - } - - private void changeEmptyDataStyle() { - previewPane.repaint(); + repaintPreviewPane(); } }; } @@ -151,9 +151,8 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { if (selectedFile != null && selectedFile.isFile()) { emptyDataImage = BaseUtils.readImage(selectedFile.getPath()); CoreGraphHelper.waitForImage(emptyDataImage); + repaintPreviewPane(); - previewPane.setImage(emptyDataImage); - previewPane.repaint(); } else { previewPane.setImage(null); } @@ -174,6 +173,12 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { selectPictureButton.setVisible(customRadioButton.isSelected()); } + private void repaintPreviewPane() { + emptyDataImage = customRadioButton.isSelected() ? emptyDataImage : DEFAULT_EMPTY_DATA_IMAGE; + previewPane.setImage(emptyData.getSelectedIndex() == 0 ? emptyDataImage : null); + previewPane.repaint(); + } + @Override public String getIconPath() { return StringUtils.EMPTY; @@ -192,8 +197,7 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { checkEmptyDataStyle(); checkCustomImage(); - previewPane.setImage(emptyDataImage); - previewPane.repaint(); + repaintPreviewPane(); } public void updateBean() { From c5e7643d33a20ece84bffe1386d313dacf857204 Mon Sep 17 00:00:00 2001 From: hzzz Date: Mon, 4 Dec 2017 09:44:45 +0800 Subject: [PATCH 05/28] =?UTF-8?q?=E5=8A=A0token=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/SiteCenterToken.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 designer_base/src/com/fr/design/mainframe/SiteCenterToken.java diff --git a/designer_base/src/com/fr/design/mainframe/SiteCenterToken.java b/designer_base/src/com/fr/design/mainframe/SiteCenterToken.java new file mode 100644 index 0000000000..16af4c3654 --- /dev/null +++ b/designer_base/src/com/fr/design/mainframe/SiteCenterToken.java @@ -0,0 +1,17 @@ +package com.fr.design.mainframe; + +import com.fr.stable.CodeUtils; + +import java.text.SimpleDateFormat; +import java.util.Calendar; + +/** + * Created by hzzz on 2017/12/4. + */ +public class SiteCenterToken { + + public static String generateToken() { + String date = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()); + return CodeUtils.md5Encode(date, "", "MD5"); + } +} From 5ec9dbb21c9f51be0d828bf7595805a840111698 Mon Sep 17 00:00:00 2001 From: hzzz Date: Tue, 5 Dec 2017 13:37:22 +0800 Subject: [PATCH 06/28] . --- .../com/fr/design/mainframe/DesignerFrameFileDealerPane.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java index 6b3606ff95..175463b1d4 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java @@ -52,6 +52,10 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt private CardLayout card; private JPanel cardPane; + public FileOperations getSelectedOperation() { + return selectedOperation; + } + private FileOperations selectedOperation; private UIToolbar toolBar; From e603a4b39020f26c758e85daa687b65d93f1e730 Mon Sep 17 00:00:00 2001 From: hzzz Date: Tue, 5 Dec 2017 13:37:27 +0800 Subject: [PATCH 07/28] .: --- designer_base/src/com/fr/.DS_Store | Bin 0 -> 6148 bytes designer_base/src/com/fr/design/.DS_Store | Bin 0 -> 6148 bytes .../fun/TemplateTreeShortCutProvider.java | 13 +++++++++++ .../AbstractTemplateTreeShortCutProvider.java | 22 ++++++++++++++++++ .../src/com/fr/design/images/.DS_Store | Bin 0 -> 18436 bytes .../com/fr/design/images/m_format/.DS_Store | Bin 0 -> 6148 bytes 6 files changed, 35 insertions(+) create mode 100644 designer_base/src/com/fr/.DS_Store create mode 100644 designer_base/src/com/fr/design/.DS_Store create mode 100644 designer_base/src/com/fr/design/fun/TemplateTreeShortCutProvider.java create mode 100644 designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java create mode 100644 designer_base/src/com/fr/design/images/.DS_Store create mode 100644 designer_base/src/com/fr/design/images/m_format/.DS_Store diff --git a/designer_base/src/com/fr/.DS_Store b/designer_base/src/com/fr/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5d56e9d7e4999b4eea93fc8e20aa9a7f0581d12d GIT binary patch literal 6148 zcmeHKI|>3Z5S>vG!N$@uSMUZw^aNhOLJ>h$P_*94b9pr1d>UQtw2?P3dC6p6LSC`6 zBO*G#Y-S=85gEY^i0p zwti-h{ zq5pp-aYY5Fz+Wk#gT-nw$CI+Qb{=Q7w!qhL%elkNFn0c7o_bQ`6`Nzf VCbof2N8IT^{tTEdG%E0G1s=-46_x-1 literal 0 HcmV?d00001 diff --git a/designer_base/src/com/fr/design/.DS_Store b/designer_base/src/com/fr/design/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..bb15f22be07cfce721efea32e3bc367372f5ffe1 GIT binary patch literal 6148 zcmeHK&2G~`5S~o~c%ec@;!q?GD{#uhMZfOB>xxCqrG2;@fGFn@rdHMc$0}jNL8Gk+Dze$GS1~3ku$=suBad zt+VHanT_I`4=dZ~!kXIE^EF=X7dEeE!)j{tiHi@#o&8idW2__ZB<8@eDkC|HH|F!r z!B$V*+Zrr-YQDYQ@2SoE4;Bjrz01sH1|u`T3@`&1h=H(#Mb|FSJM*hD1I)nrFhJ{rLM2QBwjSNmfejrW zslQ7|f;QbH2vxu&VCxZkP=rrK^r<3TF@#S?zY1|lz}BNr2jND>I$>lHZYaWyj(+9B zK_nizWd@jm(+sTn$C&p2-M`=ePbcvcGr$b|R}6^mPP#M1PYQeM%E!@Ot56S6Nhq%M m_&Ws+w-sY7ZN(d?PSCH&KuiL*9?^rs2LVR|H_X7fGVlxZ=3{37 literal 0 HcmV?d00001 diff --git a/designer_base/src/com/fr/design/fun/TemplateTreeShortCutProvider.java b/designer_base/src/com/fr/design/fun/TemplateTreeShortCutProvider.java new file mode 100644 index 0000000000..661dad64ce --- /dev/null +++ b/designer_base/src/com/fr/design/fun/TemplateTreeShortCutProvider.java @@ -0,0 +1,13 @@ +package com.fr.design.fun; + +import com.fr.stable.fun.mark.Aftermath; +import com.fr.stable.fun.mark.Mutable; + +/** + * Created by hzzz on 2017/11/30. + */ +public interface TemplateTreeShortCutProvider extends Mutable, Aftermath { + String XML_TAG = "TemplateTreeShortCut"; + + int CURRENT_LEVEL = 1; +} diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java b/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java new file mode 100644 index 0000000000..a67d72f811 --- /dev/null +++ b/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java @@ -0,0 +1,22 @@ +package com.fr.design.fun.impl; + +import com.fr.design.actions.UpdateAction; +import com.fr.design.fun.TemplateTreeShortCutProvider; +import com.fr.stable.fun.mark.API; + +/** + * Created by hzzz on 2017/11/30. + */ +@API(level = TemplateTreeShortCutProvider.CURRENT_LEVEL) +public abstract class AbstractTemplateTreeShortCutProvider extends UpdateAction implements TemplateTreeShortCutProvider { + + @Override + public int currentAPILevel() { + return TemplateTreeShortCutProvider.CURRENT_LEVEL; + } + + @Override + public String mark4Provider() { + return getClass().getName(); + } +} diff --git a/designer_base/src/com/fr/design/images/.DS_Store b/designer_base/src/com/fr/design/images/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1edf73653f6f5c96508d9c51d0c8f3c46556fddc GIT binary patch literal 18436 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 literal 0 HcmV?d00001 From 6da16636ca95871657ca92d28f1dff09908564ad Mon Sep 17 00:00:00 2001 From: hzzz Date: Mon, 18 Dec 2017 15:26:00 +0800 Subject: [PATCH 08/28] . --- .../fun/impl/AbstractTemplateTreeShortCutProvider.java | 10 +++++++++- .../src/com/fr/design/gui/ilist/ArrayListModel.java | 8 ++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java b/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java index a67d72f811..f23f7f8d3f 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java @@ -12,11 +12,19 @@ public abstract class AbstractTemplateTreeShortCutProvider extends UpdateAction @Override public int currentAPILevel() { - return TemplateTreeShortCutProvider.CURRENT_LEVEL; + return 1; } @Override public String mark4Provider() { return getClass().getName(); } + + @Override + public void process() { + } + + @Override + public void undo() { + } } diff --git a/designer_base/src/com/fr/design/gui/ilist/ArrayListModel.java b/designer_base/src/com/fr/design/gui/ilist/ArrayListModel.java index 62a360694d..7abd152e34 100644 --- a/designer_base/src/com/fr/design/gui/ilist/ArrayListModel.java +++ b/designer_base/src/com/fr/design/gui/ilist/ArrayListModel.java @@ -4,15 +4,15 @@ import javax.swing.AbstractListModel; public class ArrayListModel extends AbstractListModel { private Object[] array; - + public ArrayListModel() { - + } - + public ArrayListModel(Object[] array) { this.array = array; } - + public Object getElementAt(int index) { return array != null ? array[index] : null; } From 9bc10fbace341f240453988751cbf83fa0ae18ce Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Tue, 19 Dec 2017 14:52:15 +0800 Subject: [PATCH 09/28] CHART-1836 CHART-1864 --- .../{emptydataimage.png => us_emptydata.png} | Bin .../src/com/fr/design/images/zh_emptydata.png | Bin 0 -> 15346 bytes .../design/module/ChartEmptyDataStylePane.java | 8 +++++++- 3 files changed, 7 insertions(+), 1 deletion(-) rename designer_chart/src/com/fr/design/images/{emptydataimage.png => us_emptydata.png} (100%) create mode 100644 designer_chart/src/com/fr/design/images/zh_emptydata.png diff --git a/designer_chart/src/com/fr/design/images/emptydataimage.png b/designer_chart/src/com/fr/design/images/us_emptydata.png similarity index 100% rename from designer_chart/src/com/fr/design/images/emptydataimage.png rename to designer_chart/src/com/fr/design/images/us_emptydata.png diff --git a/designer_chart/src/com/fr/design/images/zh_emptydata.png b/designer_chart/src/com/fr/design/images/zh_emptydata.png new file mode 100644 index 0000000000000000000000000000000000000000..0ffd8e1239f49976c2f24504558353c16a852b25 GIT binary patch literal 15346 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 p4de0uKO_7386VKiU8Q literal 0 HcmV?d00001 diff --git a/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java b/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java index 3eb6ebddcd..65a61e7bff 100644 --- a/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java +++ b/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java @@ -15,6 +15,7 @@ import com.fr.design.style.background.image.ImageFileChooser; import com.fr.design.style.background.image.ImagePreviewPane; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.FRLogger; +import com.fr.general.GeneralContext; import com.fr.general.IOUtils; import com.fr.general.Inter; import com.fr.stable.CoreGraphHelper; @@ -35,7 +36,7 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { private static final int FIVE = 5; private static final int TEN = 10; private static final int THIRTY = 30; - private static final Image DEFAULT_EMPTY_DATA_IMAGE = IOUtils.readImage("com/fr/design/images/emptydataimage.png"); + private static Image DEFAULT_EMPTY_DATA_IMAGE; private UIButtonGroup emptyData; @@ -49,6 +50,11 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { private Image emptyDataImage = DEFAULT_EMPTY_DATA_IMAGE; + static { + DEFAULT_EMPTY_DATA_IMAGE = GeneralContext.isChineseEnv() ? IOUtils.readImage("com/fr/design/images/zh_emptydata.png") + : IOUtils.readImage("com/fr/design/images/us_emptydata.png"); + } + @Override protected JPanel createContentPane() { JPanel content = new JPanel(new BorderLayout()); From a61f761c8bcf1490b730d759b1f2b05482ae713c Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Fri, 22 Dec 2017 09:55:29 +0800 Subject: [PATCH 10/28] =?UTF-8?q?REPORT-5856=20=E6=8F=92=E4=BB=B6=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=8F=92=E4=BB=B6=E6=96=B0=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/extra/PluginOperateUtils.java | 14 +++++++++++++- .../com/fr/design/extra/PluginWebBridge.java | 18 +++++++++++++++++- .../com/fr/design/extra/WebViewDlgHelper.java | 2 ++ .../extra/exe/GetPluginFromStoreExecutor.java | 17 +++++++++++++---- 4 files changed, 45 insertions(+), 6 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/PluginOperateUtils.java b/designer_base/src/com/fr/design/extra/PluginOperateUtils.java index 5ce0852c8e..121ecc7970 100644 --- a/designer_base/src/com/fr/design/extra/PluginOperateUtils.java +++ b/designer_base/src/com/fr/design/extra/PluginOperateUtils.java @@ -122,7 +122,7 @@ public class PluginOperateUtils { return resultArray.toString(); } - public static void dealParams(StringBuilder url, String category, String seller, String fee) { + public static void dealParams(StringBuilder url, String category, String seller, String fee, String scope) { if (StringUtils.isNotBlank(category)) { url.append("cid=").append(category.split("-")[1]); } else { @@ -152,6 +152,18 @@ public class PluginOperateUtils { url.append("&fee=").append(StringUtils.EMPTY); } } + if (StringUtils.isNotBlank(scope)) { + switch (scope.split("-")[1]) { + case "universal": + url.append("&scope=").append(1); + break; + case "program": + url.append("&scope=").append(2); + break; + default: + url.append("&scope=").append(StringUtils.EMPTY); + } + } } public static void getLoginInfo(JSCallback jsCallback, UILabel uiLabel) { diff --git a/designer_base/src/com/fr/design/extra/PluginWebBridge.java b/designer_base/src/com/fr/design/extra/PluginWebBridge.java index afdcd448f6..dd5f50295f 100644 --- a/designer_base/src/com/fr/design/extra/PluginWebBridge.java +++ b/designer_base/src/com/fr/design/extra/PluginWebBridge.java @@ -339,10 +339,26 @@ public class PluginWebBridge { * @param callback 回调函数 */ public void getPluginFromStore(String category, String seller, String fee, final JSObject callback) { - Task task = new PluginTask<>(webEngine, callback, new GetPluginFromStoreExecutor(category, seller, fee)); + Task task = new PluginTask<>(webEngine, callback, new GetPluginFromStoreExecutor(category, seller, fee, "")); threadPoolExecutor.submit(task); } + /** + * 根据条件获取在线插件 + * + * @param info 插件信息 + * @param callback 回调函数 + */ + public void getPluginFromStoreNew(String info, final JSObject callback) { + try { + Task task = new PluginTask<>(webEngine, callback, new GetPluginFromStoreExecutor(new JSONObject(info))); + threadPoolExecutor.submit(task); + } catch (JSONException e) { + FRLogger.getLogger().error(e.getMessage()); + } + } + + public void getPluginPrefix(final JSObject callback) { Task task = new PluginTask<>(webEngine, callback, new GetPluginPrefixExecutor()); threadPoolExecutor.submit(task); diff --git a/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java b/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java index a00f460ed8..1859b46716 100644 --- a/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java +++ b/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java @@ -112,6 +112,8 @@ public class WebViewDlgHelper { while ((byteread = inStream.read(buffer)) != -1) { fs.write(buffer, 0, byteread); } + fs.flush(); + fs.close(); inStream.close(); } } catch (Exception e) { diff --git a/designer_base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java b/designer_base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java index 123c3ceed3..4b4bddab4a 100644 --- a/designer_base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java +++ b/designer_base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java @@ -20,11 +20,20 @@ public class GetPluginFromStoreExecutor implements Executor { private String category; private String seller; private String fee; + private String scope; - public GetPluginFromStoreExecutor(String category, String seller, String fee) { + public GetPluginFromStoreExecutor(JSONObject info) { + this.category = info.optString("category"); + this.fee = info.optString("fee"); + this.seller = info.optString("seller"); + this.scope = info.optString("scope"); + } + + public GetPluginFromStoreExecutor(String category, String seller, String fee, String scope) { this.category = category; this.seller = seller; this.fee = fee; + this.scope = scope; } @Override @@ -44,7 +53,7 @@ public class GetPluginFromStoreExecutor implements Executor { @Override public void run(Process process) { String plistUrl = SiteCenter.getInstance().acquireUrlByKind("shop.plugin.plist") + "?"; - boolean getRecommend = StringUtils.isEmpty(category) && StringUtils.isEmpty(seller) && StringUtils.isEmpty(fee); + boolean getRecommend = StringUtils.isEmpty(category) && StringUtils.isEmpty(seller) && StringUtils.isEmpty(fee) && StringUtils.isEmpty(scope); if (getRecommend) { result = PluginOperateUtils.getRecommendPlugins(); return; @@ -53,7 +62,7 @@ public class GetPluginFromStoreExecutor implements Executor { if (StringUtils.isNotBlank(plistUrl)) { StringBuilder url = new StringBuilder(); url.append(plistUrl); - PluginOperateUtils.dealParams(url, category, seller, fee); + PluginOperateUtils.dealParams(url, category, seller, fee, scope); try { HttpClient httpClient = new HttpClient(url.toString()); httpClient.asGet(); @@ -66,7 +75,7 @@ public class GetPluginFromStoreExecutor implements Executor { FRLogger.getLogger().error(e.getMessage()); } } else { - result = PluginConstants.CONNECTION_404; + result = PluginConstants.CONNECTION_404; } } } From 7672bead48dcfbc55164f35281b047f5c00cad35 Mon Sep 17 00:00:00 2001 From: hzzz Date: Wed, 27 Dec 2017 16:45:24 +0800 Subject: [PATCH 11/28] 1227 --- .../com/fr/design/mainframe/JWorkBook.java | 38 ++++++-- designer_base/src/com/fr/.DS_Store | Bin 6148 -> 6148 bytes .../design/actions/file/WebPreviewUtils.java | 30 +++--- .../fr/design/file/MutilTempalteTabPane.java | 12 ++- .../DesignerFrameFileDealerPane.java | 3 +- .../com/fr/design/mainframe/JTemplate.java | 90 +++++++++++------- .../mainframe/toolbar/ToolBarMenuDock.java | 36 +++---- designer_base/src/com/fr/env/RemoteEnv.java | 4 +- 8 files changed, 126 insertions(+), 87 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/JWorkBook.java b/designer/src/com/fr/design/mainframe/JWorkBook.java index 82d796a30d..c7996e84f9 100644 --- a/designer/src/com/fr/design/mainframe/JWorkBook.java +++ b/designer/src/com/fr/design/mainframe/JWorkBook.java @@ -1,12 +1,25 @@ package com.fr.design.mainframe; -import com.fr.base.*; +import com.fr.base.BaseUtils; +import com.fr.base.DynamicUnitList; +import com.fr.base.FRContext; +import com.fr.base.Parameter; +import com.fr.base.ScreenResolution; +import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignModelAdapter; import com.fr.design.ExtraDesignClassManager; import com.fr.design.actions.AllowAuthorityEditAction; import com.fr.design.actions.ExitAuthorityEditAction; import com.fr.design.actions.file.WebPreviewUtils; -import com.fr.design.actions.file.export.*; +import com.fr.design.actions.file.export.CSVExportAction; +import com.fr.design.actions.file.export.EmbeddedExportExportAction; +import com.fr.design.actions.file.export.ExcelExportAction; +import com.fr.design.actions.file.export.PDFExportAction; +import com.fr.design.actions.file.export.PageExcelExportAction; +import com.fr.design.actions.file.export.PageToSheetExcelExportAction; +import com.fr.design.actions.file.export.SVGExportAction; +import com.fr.design.actions.file.export.TextExportAction; +import com.fr.design.actions.file.export.WordExportAction; import com.fr.design.actions.report.ReportExportAttrAction; import com.fr.design.actions.report.ReportMobileAttrAction; import com.fr.design.actions.report.ReportParameterAction; @@ -30,7 +43,11 @@ import com.fr.design.mainframe.cell.QuickEditorRegion; import com.fr.design.mainframe.templateinfo.JWorkBookProcessInfo; import com.fr.design.mainframe.templateinfo.TemplateProcessInfo; import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; -import com.fr.design.menu.*; +import com.fr.design.menu.KeySetUtils; +import com.fr.design.menu.MenuDef; +import com.fr.design.menu.NameSeparator; +import com.fr.design.menu.ShortCut; +import com.fr.design.menu.ToolBarDef; import com.fr.design.module.DesignModuleFactory; import com.fr.design.parameter.ParameterDefinitePane; import com.fr.design.parameter.ParameterInputPane; @@ -62,7 +79,6 @@ import com.fr.poly.PolyDesigner; import com.fr.poly.creator.BlockCreator; import com.fr.privilege.finegrain.WorkSheetPrivilegeControl; import com.fr.report.ReportHelper; -import com.fr.report.elementcase.ElementCase; import com.fr.report.elementcase.TemplateElementCase; import com.fr.report.poly.PolyWorkSheet; import com.fr.report.worksheet.WorkSheet; @@ -73,11 +89,13 @@ import com.fr.stable.module.Module; import com.fr.stable.project.ProjectConstants; import javax.swing.*; -import javax.swing.Icon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileOutputStream; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; /** * JWorkBook used to edit WorkBook. @@ -570,9 +588,11 @@ public class JWorkBook extends JTemplate { * @return 子菜单 */ public ShortCut[] shortcut4FileMenu() { - return (ShortCut[]) ArrayUtils.addAll( - super.shortcut4FileMenu(), - BaseUtils.isAuthorityEditing() || (FRContext.getCurrentEnv() instanceof RemoteEnv) ? new ShortCut[0] : new ShortCut[]{this.createWorkBookExportMenu()} + boolean showWorkBookExportMenu = DesignerMode.isVcsMode() + || BaseUtils.isAuthorityEditing() + || (FRContext.getCurrentEnv() instanceof RemoteEnv); + return (ShortCut[]) ArrayUtils.addAll(super.shortcut4FileMenu(), + showWorkBookExportMenu ? new ShortCut[0] : new ShortCut[]{this.createWorkBookExportMenu()} ); } diff --git a/designer_base/src/com/fr/.DS_Store b/designer_base/src/com/fr/.DS_Store index 5d56e9d7e4999b4eea93fc8e20aa9a7f0581d12d..6e731bbc204812931e09b2a9eb135c362f37e3f0 100644 GIT binary patch delta 346 zcmZoMXfc=|#>B)qu~2NHo}wr-0|Nsi1A_nqLq0=ZQh9MfQcix-#*NDv>p?PX49P(8 zTp&b}1&W_YD#*z!E-^5;&d9{f!pg?Z!3l)C9I?R}`Q^bSi6y1QPKia)AYMRXNk$Ts z9g?4)17{~Dg=MCe#|wx!=jW9qX6B_9fi-8Qqym-1gx6>0rR0}8<(KBA6oU;4hRA>{ z;*1v%udX&R&`~fkFsjv2s5UnTv5n1YYdJZ@RSj)D6LKr7s%vWNW&j-v1dKp0f&o92 zhEX$t3=~h61sCPz&b HVgm~R_`6vL delta 86 zcmZoMXfc=|#>CJzu~2NHo}wrt0|NsP3otOGGvt*87v<&T=cP|9RNu_a{D)<;19Jn@ lW_AvK4xon3hRolYC-aNwa)R_60Ahy8HayasV?>rP0|2E16!icA diff --git a/designer_base/src/com/fr/design/actions/file/WebPreviewUtils.java b/designer_base/src/com/fr/design/actions/file/WebPreviewUtils.java index 0947d4323a..f682f7ddf1 100644 --- a/designer_base/src/com/fr/design/actions/file/WebPreviewUtils.java +++ b/designer_base/src/com/fr/design/actions/file/WebPreviewUtils.java @@ -1,5 +1,6 @@ package com.fr.design.actions.file; +import com.fr.base.vcs.DesignerMode; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JTemplate; import com.fr.design.utils.DesignUtils; @@ -11,6 +12,8 @@ import com.fr.general.web.ParameterConsts; import com.fr.stable.project.ProjectConstants; import javax.swing.*; +import java.util.Collections; +import java.util.HashMap; import java.util.Map; public final class WebPreviewUtils { @@ -28,11 +31,15 @@ public final class WebPreviewUtils { return; } + if (map == null || map == Collections.EMPTY_MAP) { + map = new HashMap<>(); + } + map.put("mode", DesignerMode.getMode().toString()); DesignerContext.getDesignerFrame().refreshToolbar(); jt.stopEditing(); /* - * alex:如果没有保存,先保存到Env + * alex:如果没有保存,先保存到Env * * 如果保存失败,不执行下面的WebPreview */ @@ -68,20 +75,19 @@ public final class WebPreviewUtils { String path = currentTemplate.getPath(); if (path.startsWith(ProjectConstants.REPORTLETS_NAME)) { path = path.substring(ProjectConstants.REPORTLETS_NAME.length() + 1); + } + java.util.List parameterNameList = new java.util.ArrayList(); + java.util.List parameterValueList = new java.util.ArrayList(); - java.util.List parameterNameList = new java.util.ArrayList(); - java.util.List parameterValueList = new java.util.ArrayList(); - - parameterNameList.add(actionType); - parameterValueList.add(path); - if (map != null) { - for (String key : map.keySet()) { - parameterNameList.add(key); - parameterValueList.add(GeneralUtils.objectToString(map.get(key))); - } + parameterNameList.add(actionType); + parameterValueList.add(path); + if (map != null) { + for (String key : map.keySet()) { + parameterNameList.add(key); + parameterValueList.add(GeneralUtils.objectToString(map.get(key))); } - DesignUtils.visitEnvServerByParameters(parameterNameList.toArray(new String[parameterNameList.size()]), parameterValueList.toArray(new String[parameterValueList.size()])); } + DesignUtils.visitEnvServerByParameters(parameterNameList.toArray(new String[parameterNameList.size()]), parameterValueList.toArray(new String[parameterValueList.size()])); } else { int selVal = JOptionPane.showConfirmDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("Web_Preview_Message"), Inter.getLocText("Preview_ToolTips"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); diff --git a/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java b/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java index 4237c182fd..6bdfe711ee 100644 --- a/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java +++ b/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java @@ -3,12 +3,12 @@ package com.fr.design.file; import com.fr.base.BaseUtils; import com.fr.base.GraphHelper; +import com.fr.base.vcs.DesignerMode; import com.fr.design.constants.UIConstants; import com.fr.design.gui.imenu.UIMenuItem; import com.fr.design.gui.imenu.UIScrollPopUpMenu; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JTemplate; -import com.fr.design.mainframe.JVirtualTemplate; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUIPaintUtils; import com.fr.file.FILE; @@ -102,6 +102,8 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M // 模板时,模板B会自动关闭 private JTemplate temTemplate = null; + //版本管理时候不允许切换tab + private boolean isVcsMode = false; private AWTEventListener awt = new AWTEventListener() { public void eventDispatched(AWTEvent event) { @@ -632,6 +634,12 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M * @param e 鼠标事件 */ public void mousePressed(MouseEvent e) { + //如果在版本管理情况下,不允许切换tab + if (DesignerMode.isVcsMode()) { + //TODO hzzz 国际化 + JOptionPane.showMessageDialog(null, "版本管理不允许切换", Inter.getLocText("FR-Designer_Alert"), JOptionPane.WARNING_MESSAGE); + return; + } int evtX = e.getX(); int evtY = e.getY(); @@ -952,6 +960,4 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M } } } - - } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java index 175463b1d4..701f5c85d0 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java @@ -174,7 +174,8 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt /* * Open Report Action */ - private class OpenReportAction extends UpdateAction { + private class + OpenReportAction extends UpdateAction { public OpenReportAction() { this.setName(KeySetUtils.OPEN_TEMPLATE.getMenuKeySetName()); diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index 18f5b88ab0..e9790ab23b 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -1,8 +1,13 @@ package com.fr.design.mainframe; -import com.fr.base.*; +import com.fr.base.BaseUtils; +import com.fr.base.ConfigManager; +import com.fr.base.FRContext; +import com.fr.base.Parameter; +import com.fr.base.ScreenResolution; import com.fr.base.io.IOFile; import com.fr.base.iofileattr.TemplateIdAttrMark; +import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignModelAdapter; import com.fr.design.DesignState; import com.fr.design.DesignerEnvManager; @@ -52,7 +57,6 @@ import com.fr.stable.core.UUID; import com.fr.stable.project.ProjectConstants; import javax.swing.*; -import javax.swing.Icon; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.undo.UndoManager; import java.awt.*; @@ -86,7 +90,8 @@ public abstract class JTemplate> ex private StringBuilder process = new StringBuilder(""); // 制作模板的过程 public int resolution = ScreenResolution.getScreenResolution(); - public JTemplate() {} + public JTemplate() { + } public JTemplate(T t, String defaultFileName) { this(t, new MemFILE(newTemplateNameByIndex(defaultFileName)), true); @@ -128,6 +133,7 @@ public abstract class JTemplate> ex openTime = System.currentTimeMillis(); } } + private void collectInfo() { // 执行收集操作 if (openTime == 0) { // 旧模板,不收集数据 return; @@ -410,7 +416,7 @@ public abstract class JTemplate> ex fireSuperTargetModified(); } - protected boolean accept(Object o){ + protected boolean accept(Object o) { return true; } @@ -520,7 +526,7 @@ public abstract class JTemplate> ex if (!editingFILE.exists()) { return saveAsTemplate(isShowLoc); } - if (!FRContext.getCurrentEnv().hasFileFolderAllow(this.getEditingFILE().getPath()) ) { + if (!FRContext.getCurrentEnv().hasFileFolderAllow(this.getEditingFILE().getPath())) { JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_No-Privilege") + "!", Inter.getLocText("FR-Designer_Message"), JOptionPane.WARNING_MESSAGE); return false; } @@ -528,12 +534,12 @@ public abstract class JTemplate> ex return this.saveFile(); } - private boolean isCancelOperation(int operation){ + private boolean isCancelOperation(int operation) { return operation == FILEChooserPane.CANCEL_OPTION || operation == FILEChooserPane.JOPTIONPANE_CANCEL_OPTION; } - private boolean isOkOperation(int operation){ + private boolean isOkOperation(int operation) { return operation == FILEChooserPane.JOPTIONPANE_OK_OPTION || operation == FILEChooserPane.OK_OPTION; } @@ -555,7 +561,7 @@ public abstract class JTemplate> ex } if (isOkOperation(chooseResult)) { - if (!FRContext.getCurrentEnv().hasFileFolderAllow(fileChooser.getSelectedFILE().getPath()) ) { + if (!FRContext.getCurrentEnv().hasFileFolderAllow(fileChooser.getSelectedFILE().getPath())) { JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_No-Privilege") + "!", Inter.getLocText("FR-Designer_Message"), JOptionPane.WARNING_MESSAGE); return false; } @@ -567,7 +573,7 @@ public abstract class JTemplate> ex return saveNewFile(editingFILE, oldName); } - protected boolean saveNewFile(FILE editingFILE, String oldName){ + protected boolean saveNewFile(FILE editingFILE, String oldName) { // 在保存之前,初始化 templateID initForCollect(); // 如果保存新模板(新建模板直接保存,或者另存为),则添加 templateID @@ -582,7 +588,7 @@ public abstract class JTemplate> ex return result; } - protected void mkNewFile(FILE file){ + protected void mkNewFile(FILE file) { try { file.mkfile(); } catch (Exception e) { @@ -594,16 +600,16 @@ public abstract class JTemplate> ex * 将模板另存为可以分享出去的混淆后内置数据集模板 * * @return 是否另存成功 - * */ - public boolean saveShareFile(){ + public boolean saveShareFile() { return true; } - public Widget getSelectElementCase(){ + + public Widget getSelectElementCase() { return new NoneWidget(); } - protected FILEChooserPane getFILEChooserPane(boolean isShowLoc){ + protected FILEChooserPane getFILEChooserPane(boolean isShowLoc) { return new FILEChooserPane(true, isShowLoc); } @@ -684,6 +690,8 @@ public abstract class JTemplate> ex public ShortCut[] shortcut4FileMenu() { if (BaseUtils.isAuthorityEditing()) { return new ShortCut[]{new SaveTemplateAction(this), new UndoAction(this), new RedoAction(this)}; + } else if (DesignerMode.isVcsMode()) { + return new ShortCut[]{new UndoAction(this), new RedoAction(this)}; } else { return new ShortCut[]{new SaveTemplateAction(this), new SaveAsTemplateAction(this), new UndoAction(this), new RedoAction(this)}; } @@ -803,7 +811,7 @@ public abstract class JTemplate> ex } - private int getVersionCompare(String versionString){ + private int getVersionCompare(String versionString) { if (StringUtils.isBlank(versionString)) { return 0; } @@ -813,7 +821,7 @@ public abstract class JTemplate> ex } - private int getVersionCompareHBB(String versionString){ + private int getVersionCompareHBB(String versionString) { if (StringUtils.isBlank(versionString)) { return 0; } @@ -835,7 +843,8 @@ public abstract class JTemplate> ex /** * 判断是否是新版设计器 - * @return 是返回true + * + * @return 是返回true */ public boolean isNewDesigner() { String xmlDesignerVersion = getTarget().getXMLDesignerVersion(); @@ -897,41 +906,46 @@ public abstract class JTemplate> ex /** * 激活指定的template - * */ public void activeJTemplate(int index, JTemplate jt) { DesignerContext.getDesignerFrame().activateJTemplate(this); - }; + } + + ; /** * 激活已存在的模板 - * */ public void activeOldJTemplate() { DesignerContext.getDesignerFrame().activateJTemplate(this); - }; + } + + ; /** * 激活新的模板 - * */ public void activeNewJTemplate() { DesignerContext.getDesignerFrame().addAndActivateJTemplate(this); - }; + } + + ; /** * 后台关闭template - * */ public void closeOverLineTemplate(int index) { JTemplate overTemplate = HistoryTemplateListPane.getInstance().getHistoryList().get(index); HistoryTemplateListPane.getInstance().closeVirtualSelectedReport(overTemplate); HistoryTemplateListPane.getInstance().getHistoryList().set(index, new JVirtualTemplate(overTemplate.getEditingFILE())); - }; + } + + ; /** * 返回当前支持的超链界面pane + * * @return 超链连接界面 */ public abstract HyperlinkGroupPane getHyperLinkPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider); @@ -939,6 +953,7 @@ public abstract class JTemplate> ex /** * 返回当前支持的超链界面pane * 没有悬浮弹窗,显示为两列 + * * @return 超链连接界面 */ public abstract HyperlinkGroupPane getHyperLinkPaneNoPop(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider); @@ -948,7 +963,7 @@ public abstract class JTemplate> ex * * @return 默认不是 */ - public boolean isChartBook(){ + public boolean isChartBook() { return false; } @@ -1000,11 +1015,9 @@ public abstract class JTemplate> ex * 创建内置sql提交的pane * * @return 内置sql提交的pane - * - * * @date 2014-10-14-下午7:39:27 */ - public DBManipulationPane createDBManipulationPane(){ + public DBManipulationPane createDBManipulationPane() { return new DBManipulationPane(); } @@ -1012,22 +1025,22 @@ public abstract class JTemplate> ex * 创建控件事件里内置sql提交的pane * * @return 内置sql提交的pane - * - * * @date 2014-10-14-下午7:39:27 */ - public DBManipulationPane createDBManipulationPaneInWidget(){ + public DBManipulationPane createDBManipulationPaneInWidget() { return new DBManipulationInWidgetEventPane(); } /** * 取小图标,主要用于多TAB标签栏 + * * @return 图表 */ public abstract Icon getIcon(); /** * 导出菜单项 + * * @return 菜单项 */ public ShortCut[] shortcut4ExportMenu() { @@ -1037,12 +1050,13 @@ public abstract class JTemplate> ex /** * 复制JS代码 */ - public void copyJS(){} + public void copyJS() { + } /** * 系列风格改动 */ - public void styleChange(){ + public void styleChange() { } @@ -1050,14 +1064,14 @@ public abstract class JTemplate> ex * 创建分享模板的按钮, 目前只有jworkbook实现了 * * @return 分享模板按钮 - * */ - public UIButton[] createShareButton(){ + public UIButton[] createShareButton() { return new UIButton[0]; } /** * 略 + * * @param provider 预览模式 */ public void previewMenuActionPerformed(PreviewProvider provider) { @@ -1066,6 +1080,7 @@ public abstract class JTemplate> ex /** * 支持的预览模式 + * * @return 预览模式 */ public PreviewProvider[] supportPreview() { @@ -1074,6 +1089,7 @@ public abstract class JTemplate> ex /** * 预览模式转换 + * * @param typeCode 类型 * @return 预览模式 */ @@ -1097,6 +1113,7 @@ public abstract class JTemplate> ex /** * 加载插件中的按钮 + * * @return 按钮组 */ public UIButton[] createExtraButtons() { @@ -1111,6 +1128,7 @@ public abstract class JTemplate> ex /** * 由于老版本的模板没有模板ID,当勾选使用参数模板时候,就加一个模板ID attr + * * @param isUseParamTemplate 是否使用参数模板 */ public void needAddTemplateIdAttr(boolean isUseParamTemplate) { diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index f43419d47f..4ad6b67fac 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -5,6 +5,7 @@ package com.fr.design.mainframe.toolbar; import com.fr.base.BaseUtils; import com.fr.base.FRContext; +import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignState; import com.fr.design.ExtraDesignClassManager; import com.fr.design.actions.UpdateAction; @@ -58,7 +59,6 @@ import com.fr.plugin.observer.PluginEvent; import com.fr.plugin.observer.PluginEventListener; import com.fr.plugin.observer.PluginEventType; import com.fr.stable.ArrayUtils; -import com.fr.stable.ProductConstants; import com.fr.stable.StringUtils; import javax.swing.*; @@ -315,21 +315,23 @@ public abstract class ToolBarMenuDock { } public MenuDef createFileMenuDef(ToolBarMenuDockPlus plus) { + boolean notVcs = !DesignerMode.isVcsMode(); MenuDef menuDef = new MenuDef(Inter.getLocText("FR-Designer_File"), 'F'); ShortCut[] scs = new ShortCut[0]; - if (!BaseUtils.isAuthorityEditing()) { + if (!BaseUtils.isAuthorityEditing() && notVcs) { scs = createNewFileShortCuts(); } if (!ArrayUtils.isEmpty(scs)) { menuDef.addShortCut(scs); } - menuDef.addShortCut(openTemplateAction()); - - menuDef.addShortCut(new OpenRecentReportMenuDef()); + if (notVcs) { + menuDef.addShortCut(openTemplateAction()); + menuDef.addShortCut(new OpenRecentReportMenuDef()); + addCloseCurrentTemplateAction(menuDef); + } - addCloseCurrentTemplateAction(menuDef); scs = plus.shortcut4FileMenu(); if (!ArrayUtils.isEmpty(scs)) { @@ -340,8 +342,9 @@ public abstract class ToolBarMenuDock { addPreferenceAction(menuDef); - addSwitchExistEnvAction(menuDef); - + if (notVcs) { + addSwitchExistEnvAction(menuDef); + } menuDef.addShortCut(new ExitDesignerAction()); insertMenu(menuDef, MenuHandler.FILE); @@ -573,22 +576,7 @@ public abstract class ToolBarMenuDock { } public NewTemplatePane getNewTemplatePane() { - return new NewTemplatePane() { - @Override - public Icon getNew() { - return BaseUtils.readIcon("/com/fr/design/images/buttonicon/addicon.png"); - } - - @Override - public Icon getMouseOverNew() { - return BaseUtils.readIcon("/com/fr/design/images/buttonicon/add_press.png"); - } - - @Override - public Icon getMousePressNew() { - return BaseUtils.readIcon("/com/fr/design/images/buttonicon/add_press.png"); - } - }; + return ToolBarNewTemplatePane.getInstance(); } protected void insertMenu(MenuDef menuDef, String anchor) { diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 65733b1dfd..05737e7c35 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -1009,8 +1009,8 @@ public class RemoteEnv extends AbstractEnv { } try { HashMap para = new HashMap(); - para.put("op", "fr_remote_design"); - para.put("cmd", "delete_file"); + para.put("op", "fs_remote_vcs"); + para.put("cmd", "hzzz"); para.put("file_path", filePath); HttpClient client = createHttpMethod(para); From 45055ef26e2c87aeb01e2b91aaaa9fe0b0b3d1ba Mon Sep 17 00:00:00 2001 From: hzzz Date: Wed, 27 Dec 2017 16:45:29 +0800 Subject: [PATCH 12/28] 1227 --- designer_base/src/com/fr/common/.DS_Store | Bin 0 -> 6148 bytes .../toolbar/ToolBarNewTemplatePane.java | 36 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 designer_base/src/com/fr/common/.DS_Store create mode 100644 designer_base/src/com/fr/design/mainframe/toolbar/ToolBarNewTemplatePane.java diff --git a/designer_base/src/com/fr/common/.DS_Store b/designer_base/src/com/fr/common/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fdab04a1728168ded7857fc9b8e3b3e52e28b275 GIT binary patch literal 6148 zcmeHKyH3ME5ZomxBGIIzyp}S5U`6H&B6=iS3I&!UL8x89U+`J^p3FXYM5m;rfLUp8 ze7iemdkU{tM0CCHS0YOhS-=hD-Im%cZ(i9|M&>}ZGgg~!9ClURrGRl~@+zG?KW!_1 zW`?nC`~6ENa@c;n-QRw5hOs}B**#XLU3w1Yr~nn90#tws{1*k#v&|OQfn2Eo6`%rN z3fT9dzzv(kDbPP1SbPKk+HbrYu6>pO77GBI#3>LFm Date: Wed, 27 Dec 2017 16:49:16 +0800 Subject: [PATCH 13/28] remove ds_store --- designer_base/src/com/fr/.DS_Store | Bin 6148 -> 0 bytes designer_base/src/com/fr/common/.DS_Store | Bin 6148 -> 0 bytes designer_base/src/com/fr/design/.DS_Store | Bin 6148 -> 0 bytes .../src/com/fr/design/images/.DS_Store | Bin 18436 -> 0 bytes .../src/com/fr/design/images/m_format/.DS_Store | Bin 6148 -> 0 bytes 5 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 designer_base/src/com/fr/.DS_Store delete mode 100644 designer_base/src/com/fr/common/.DS_Store delete mode 100644 designer_base/src/com/fr/design/.DS_Store delete mode 100644 designer_base/src/com/fr/design/images/.DS_Store delete mode 100644 designer_base/src/com/fr/design/images/m_format/.DS_Store diff --git a/designer_base/src/com/fr/.DS_Store b/designer_base/src/com/fr/.DS_Store deleted file mode 100644 index 6e731bbc204812931e09b2a9eb135c362f37e3f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK!A`#z|KsXCiq-q2`bf`P2B` zA4-2En*;xm0eW{uxC03ze3sweyMI3nWx)#81yjZ<|>Q=Ic>>F6vS#CR}auSrB1n$ zrj1(FZqyEDRXc4q$v-@r%}Q2fzkYny9X&p!&$E|TO{~CgP|1$LIlQ5>w8sZ`91UgE z$2ip#A%Gsl5JDfKFJtpL7?}ZPfEidP2F!VBZLQO$crVNVGw>@6(D`7a5;_Jmjq2z? zqgnvO0)~~KPrU@y*ajVgnMNEz5xNvnmkQHj2wjeG+vGV0GmW|&glRs6Sy`A4MX1$r zep{u3a5S=I2AF|m2B`N#DbxLb`g8xUlGrc<%)ojwAPQ}_-NL<@yLDxkbl2LbT~rdv o%QP-Z&{0=0=F(NXhpGhQHaUon!Av7YQ2394qJa%F@TUxX0_YZ47ytkO diff --git a/designer_base/src/com/fr/common/.DS_Store b/designer_base/src/com/fr/common/.DS_Store deleted file mode 100644 index fdab04a1728168ded7857fc9b8e3b3e52e28b275..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKyH3ME5ZomxBGIIzyp}S5U`6H&B6=iS3I&!UL8x89U+`J^p3FXYM5m;rfLUp8 ze7iemdkU{tM0CCHS0YOhS-=hD-Im%cZ(i9|M&>}ZGgg~!9ClURrGRl~@+zG?KW!_1 zW`?nC`~6ENa@c;n-QRw5hOs}B**#XLU3w1Yr~nn90#tws{1*k#v&|OQfn2Eo6`%rN z3fT9dzzv(kDbPP1SbPKk+HbrYu6>pO77GBI#3>LFm#uhMZfOB>xxCqrG2;@fGFn@rdHMc$0}jNL8Gk+Dze$GS1~3ku$=suBad zt+VHanT_I`4=dZ~!kXIE^EF=X7dEeE!)j{tiHi@#o&8idW2__ZB<8@eDkC|HH|F!r z!B$V*+Zrr-YQDYQ@2SoE4;Bjrz01sH1|u`T3@`&1h=H(#Mb|FSJM*hD1I)nrFhJ{rLM2QBwjSNmfejrW zslQ7|f;QbH2vxu&VCxZkP=rrK^r<3TF@#S?zY1|lz}BNr2jND>I$>lHZYaWyj(+9B zK_nizWd@jm(+sTn$C&p2-M`=ePbcvcGr$b|R}6^mPP#M1PYQeM%E!@Ot56S6Nhq%M m_&Ws+w-sY7ZN(d?PSCH&KuiL*9?^rs2LVR|H_X7fGVlxZ=3{37 diff --git a/designer_base/src/com/fr/design/images/.DS_Store b/designer_base/src/com/fr/design/images/.DS_Store deleted file mode 100644 index 1edf73653f6f5c96508d9c51d0c8f3c46556fddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18436 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 From f9b8d5c17942df8fcaefb2def075b5ada813ad1e Mon Sep 17 00:00:00 2001 From: hzzz Date: Wed, 27 Dec 2017 16:57:12 +0800 Subject: [PATCH 14/28] 1227 --- .../fr/design/file/MutilTempalteTabPane.java | 5 +- .../fun/TemplateTreeShortCutProvider.java | 1 + .../AbstractTemplateTreeShortCutProvider.java | 1 + .../com/fr/design/locale/designer.properties | 1 + .../design/locale/designer_en_US.properties | 1 + .../design/locale/designer_ja_JP.properties | 1 + .../design/locale/designer_ko_KR.properties | 1 + .../design/locale/designer_zh_CN.properties | 3 +- .../design/locale/designer_zh_TW.properties | 1 + .../DesignerFrameFileDealerPane.java | 3 +- .../com/fr/design/mainframe/JTemplate.java | 87 ++++++++----------- .../fr/design/mainframe/SiteCenterToken.java | 17 ---- designer_base/src/com/fr/env/RemoteEnv.java | 20 ++--- 13 files changed, 57 insertions(+), 85 deletions(-) delete mode 100644 designer_base/src/com/fr/design/mainframe/SiteCenterToken.java diff --git a/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java b/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java index 6bdfe711ee..f3d62601d9 100644 --- a/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java +++ b/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java @@ -102,8 +102,6 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M // 模板时,模板B会自动关闭 private JTemplate temTemplate = null; - //版本管理时候不允许切换tab - private boolean isVcsMode = false; private AWTEventListener awt = new AWTEventListener() { public void eventDispatched(AWTEvent event) { @@ -636,8 +634,7 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M public void mousePressed(MouseEvent e) { //如果在版本管理情况下,不允许切换tab if (DesignerMode.isVcsMode()) { - //TODO hzzz 国际化 - JOptionPane.showMessageDialog(null, "版本管理不允许切换", Inter.getLocText("FR-Designer_Alert"), JOptionPane.WARNING_MESSAGE); + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Vcs_tab_click"), Inter.getLocText("FR-Designer_Alert"), JOptionPane.WARNING_MESSAGE); return; } diff --git a/designer_base/src/com/fr/design/fun/TemplateTreeShortCutProvider.java b/designer_base/src/com/fr/design/fun/TemplateTreeShortCutProvider.java index 661dad64ce..f5c9e09c6a 100644 --- a/designer_base/src/com/fr/design/fun/TemplateTreeShortCutProvider.java +++ b/designer_base/src/com/fr/design/fun/TemplateTreeShortCutProvider.java @@ -4,6 +4,7 @@ import com.fr.stable.fun.mark.Aftermath; import com.fr.stable.fun.mark.Mutable; /** + * 左上角目录树上边工具条的插件接口 * Created by hzzz on 2017/11/30. */ public interface TemplateTreeShortCutProvider extends Mutable, Aftermath { diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java b/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java index f23f7f8d3f..b8568dd615 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java @@ -5,6 +5,7 @@ import com.fr.design.fun.TemplateTreeShortCutProvider; import com.fr.stable.fun.mark.API; /** + * 左上角目录树上边工具条的插件接口 * Created by hzzz on 2017/11/30. */ @API(level = TemplateTreeShortCutProvider.CURRENT_LEVEL) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index bbed62b646..db4c469eec 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2149,3 +2149,4 @@ FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=If HTTPS is enabled or the HTTPS configuration (certificate path, HTTPS key) is modified, you must restart the designer to take effect. FR-Designer_Format_JavaScript=Format Code +FR-Designer-Vcs_tab_click=Please exit the version management status and then switch the template 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 e5608bf896..4f8e68c121 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 @@ -2148,3 +2148,4 @@ FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=If HTTPS is enabled or the HTTPS configuration (certificate path, HTTPS key) is modified, you must restart the designer to take effect. FR-Designer_Format_JavaScript=Format Code +FR-Designer-Vcs_tab_click=Please exit the version management status and then switch the template 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 bb5cfc1712..4814712b69 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 @@ -2149,3 +2149,4 @@ FR-Designer_Decimal_Places=\u5C0F\u6570\u67A0\u6570: FR-Base-Load_Resource_File=\u8A2D\u5B9A\u30D5\u30A1\u30A4\u30EB\u30ED\u30FC\u30C9 FR-Designer_Env_Des_Https= FR-Designer_Format_JavaScript=Format Code +FR-Designer-Vcs_tab_click= 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 d25124d98e..a159de118c 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 @@ -2149,3 +2149,4 @@ FR-Designer_Export_Background= FR-Designer_Print_Background= FR-Designer_Env_Des_Https= FR-Designer_Format_JavaScript=Format Code +FR-Designer-Vcs_tab_click= 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 f7b8d3a3cd..67a7b7ec5f 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 @@ -2148,4 +2148,5 @@ FR-Designer_Sheet_Label_Page_Display_Position= FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=\u82E5\u542F\u7528https\u6216\u4FEE\u6539https\u914D\u7F6E\uFF08\u8BC1\u4E66\u8DEF\u5F84\u3001https\u79D8\u94A5\uFF09\uFF0C\u5FC5\u987B\u91CD\u542F\u8BBE\u8BA1\u5668\u624D\u80FD\u751F\u6548\u3002 -FR-Designer_Format_JavaScript=\u683C\u5F0F\u5316\u4EE3\u7801 \ No newline at end of file +FR-Designer_Format_JavaScript=\u683C\u5F0F\u5316\u4EE3\u7801 +FR-Designer-Vcs_tab_click=\u8BF7\u5148\u9000\u51FA\u7248\u672C\u7BA1\u7406\u72B6\u6001\u518D\u5207\u6362\u6A21\u677F \ No newline at end of file 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 42817879ea..c83ca01dba 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 @@ -2148,3 +2148,4 @@ FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= FR-Designer_Env_Des_Https=\u82E5\u555F\u7528https\u6216\u4FEE\u6539https\u914D\u7F6E\uFF08\u8B49\u66F8\u8DEF\u5F91\u3001https\u7955\u9470\uFF09\uFF0C\u5FC5\u9808\u91CD\u555F\u8A2D\u8A08\u5668\u624D\u80FD\u751F\u6548\u3002 FR-Designer_Format_JavaScript=Format Code +FR-Designer-Vcs_tab_click= diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java index 701f5c85d0..175463b1d4 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java @@ -174,8 +174,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt /* * Open Report Action */ - private class - OpenReportAction extends UpdateAction { + private class OpenReportAction extends UpdateAction { public OpenReportAction() { this.setName(KeySetUtils.OPEN_TEMPLATE.getMenuKeySetName()); diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index e9790ab23b..9afe6d802e 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -1,10 +1,6 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; -import com.fr.base.ConfigManager; -import com.fr.base.FRContext; -import com.fr.base.Parameter; -import com.fr.base.ScreenResolution; +import com.fr.base.*; import com.fr.base.io.IOFile; import com.fr.base.iofileattr.TemplateIdAttrMark; import com.fr.base.vcs.DesignerMode; @@ -57,6 +53,7 @@ import com.fr.stable.core.UUID; import com.fr.stable.project.ProjectConstants; import javax.swing.*; +import javax.swing.Icon; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.undo.UndoManager; import java.awt.*; @@ -90,8 +87,7 @@ public abstract class JTemplate> ex private StringBuilder process = new StringBuilder(""); // 制作模板的过程 public int resolution = ScreenResolution.getScreenResolution(); - public JTemplate() { - } + public JTemplate() {} public JTemplate(T t, String defaultFileName) { this(t, new MemFILE(newTemplateNameByIndex(defaultFileName)), true); @@ -133,7 +129,6 @@ public abstract class JTemplate> ex openTime = System.currentTimeMillis(); } } - private void collectInfo() { // 执行收集操作 if (openTime == 0) { // 旧模板,不收集数据 return; @@ -416,7 +411,7 @@ public abstract class JTemplate> ex fireSuperTargetModified(); } - protected boolean accept(Object o) { + protected boolean accept(Object o){ return true; } @@ -526,7 +521,7 @@ public abstract class JTemplate> ex if (!editingFILE.exists()) { return saveAsTemplate(isShowLoc); } - if (!FRContext.getCurrentEnv().hasFileFolderAllow(this.getEditingFILE().getPath())) { + if (!FRContext.getCurrentEnv().hasFileFolderAllow(this.getEditingFILE().getPath()) ) { JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_No-Privilege") + "!", Inter.getLocText("FR-Designer_Message"), JOptionPane.WARNING_MESSAGE); return false; } @@ -534,12 +529,12 @@ public abstract class JTemplate> ex return this.saveFile(); } - private boolean isCancelOperation(int operation) { + private boolean isCancelOperation(int operation){ return operation == FILEChooserPane.CANCEL_OPTION || operation == FILEChooserPane.JOPTIONPANE_CANCEL_OPTION; } - private boolean isOkOperation(int operation) { + private boolean isOkOperation(int operation){ return operation == FILEChooserPane.JOPTIONPANE_OK_OPTION || operation == FILEChooserPane.OK_OPTION; } @@ -561,7 +556,7 @@ public abstract class JTemplate> ex } if (isOkOperation(chooseResult)) { - if (!FRContext.getCurrentEnv().hasFileFolderAllow(fileChooser.getSelectedFILE().getPath())) { + if (!FRContext.getCurrentEnv().hasFileFolderAllow(fileChooser.getSelectedFILE().getPath()) ) { JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_No-Privilege") + "!", Inter.getLocText("FR-Designer_Message"), JOptionPane.WARNING_MESSAGE); return false; } @@ -573,7 +568,7 @@ public abstract class JTemplate> ex return saveNewFile(editingFILE, oldName); } - protected boolean saveNewFile(FILE editingFILE, String oldName) { + protected boolean saveNewFile(FILE editingFILE, String oldName){ // 在保存之前,初始化 templateID initForCollect(); // 如果保存新模板(新建模板直接保存,或者另存为),则添加 templateID @@ -588,7 +583,7 @@ public abstract class JTemplate> ex return result; } - protected void mkNewFile(FILE file) { + protected void mkNewFile(FILE file){ try { file.mkfile(); } catch (Exception e) { @@ -600,16 +595,16 @@ public abstract class JTemplate> ex * 将模板另存为可以分享出去的混淆后内置数据集模板 * * @return 是否另存成功 + * */ - public boolean saveShareFile() { + public boolean saveShareFile(){ return true; } - - public Widget getSelectElementCase() { + public Widget getSelectElementCase(){ return new NoneWidget(); } - protected FILEChooserPane getFILEChooserPane(boolean isShowLoc) { + protected FILEChooserPane getFILEChooserPane(boolean isShowLoc){ return new FILEChooserPane(true, isShowLoc); } @@ -811,7 +806,7 @@ public abstract class JTemplate> ex } - private int getVersionCompare(String versionString) { + private int getVersionCompare(String versionString){ if (StringUtils.isBlank(versionString)) { return 0; } @@ -821,7 +816,7 @@ public abstract class JTemplate> ex } - private int getVersionCompareHBB(String versionString) { + private int getVersionCompareHBB(String versionString){ if (StringUtils.isBlank(versionString)) { return 0; } @@ -843,8 +838,7 @@ public abstract class JTemplate> ex /** * 判断是否是新版设计器 - * - * @return 是返回true + * @return 是返回true */ public boolean isNewDesigner() { String xmlDesignerVersion = getTarget().getXMLDesignerVersion(); @@ -906,46 +900,41 @@ public abstract class JTemplate> ex /** * 激活指定的template + * */ public void activeJTemplate(int index, JTemplate jt) { DesignerContext.getDesignerFrame().activateJTemplate(this); - } - - ; + }; /** * 激活已存在的模板 + * */ public void activeOldJTemplate() { DesignerContext.getDesignerFrame().activateJTemplate(this); - } - - ; + }; /** * 激活新的模板 + * */ public void activeNewJTemplate() { DesignerContext.getDesignerFrame().addAndActivateJTemplate(this); - } - - ; + }; /** * 后台关闭template + * */ public void closeOverLineTemplate(int index) { JTemplate overTemplate = HistoryTemplateListPane.getInstance().getHistoryList().get(index); HistoryTemplateListPane.getInstance().closeVirtualSelectedReport(overTemplate); HistoryTemplateListPane.getInstance().getHistoryList().set(index, new JVirtualTemplate(overTemplate.getEditingFILE())); - } - - ; + }; /** * 返回当前支持的超链界面pane - * * @return 超链连接界面 */ public abstract HyperlinkGroupPane getHyperLinkPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider); @@ -953,7 +942,6 @@ public abstract class JTemplate> ex /** * 返回当前支持的超链界面pane * 没有悬浮弹窗,显示为两列 - * * @return 超链连接界面 */ public abstract HyperlinkGroupPane getHyperLinkPaneNoPop(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider); @@ -963,7 +951,7 @@ public abstract class JTemplate> ex * * @return 默认不是 */ - public boolean isChartBook() { + public boolean isChartBook(){ return false; } @@ -1015,9 +1003,11 @@ public abstract class JTemplate> ex * 创建内置sql提交的pane * * @return 内置sql提交的pane + * + * * @date 2014-10-14-下午7:39:27 */ - public DBManipulationPane createDBManipulationPane() { + public DBManipulationPane createDBManipulationPane(){ return new DBManipulationPane(); } @@ -1025,22 +1015,22 @@ public abstract class JTemplate> ex * 创建控件事件里内置sql提交的pane * * @return 内置sql提交的pane + * + * * @date 2014-10-14-下午7:39:27 */ - public DBManipulationPane createDBManipulationPaneInWidget() { + public DBManipulationPane createDBManipulationPaneInWidget(){ return new DBManipulationInWidgetEventPane(); } /** * 取小图标,主要用于多TAB标签栏 - * * @return 图表 */ public abstract Icon getIcon(); /** * 导出菜单项 - * * @return 菜单项 */ public ShortCut[] shortcut4ExportMenu() { @@ -1050,13 +1040,12 @@ public abstract class JTemplate> ex /** * 复制JS代码 */ - public void copyJS() { - } + public void copyJS(){} /** * 系列风格改动 */ - public void styleChange() { + public void styleChange(){ } @@ -1064,14 +1053,14 @@ public abstract class JTemplate> ex * 创建分享模板的按钮, 目前只有jworkbook实现了 * * @return 分享模板按钮 + * */ - public UIButton[] createShareButton() { + public UIButton[] createShareButton(){ return new UIButton[0]; } /** * 略 - * * @param provider 预览模式 */ public void previewMenuActionPerformed(PreviewProvider provider) { @@ -1080,7 +1069,6 @@ public abstract class JTemplate> ex /** * 支持的预览模式 - * * @return 预览模式 */ public PreviewProvider[] supportPreview() { @@ -1089,7 +1077,6 @@ public abstract class JTemplate> ex /** * 预览模式转换 - * * @param typeCode 类型 * @return 预览模式 */ @@ -1113,7 +1100,6 @@ public abstract class JTemplate> ex /** * 加载插件中的按钮 - * * @return 按钮组 */ public UIButton[] createExtraButtons() { @@ -1128,7 +1114,6 @@ public abstract class JTemplate> ex /** * 由于老版本的模板没有模板ID,当勾选使用参数模板时候,就加一个模板ID attr - * * @param isUseParamTemplate 是否使用参数模板 */ public void needAddTemplateIdAttr(boolean isUseParamTemplate) { diff --git a/designer_base/src/com/fr/design/mainframe/SiteCenterToken.java b/designer_base/src/com/fr/design/mainframe/SiteCenterToken.java deleted file mode 100644 index 16af4c3654..0000000000 --- a/designer_base/src/com/fr/design/mainframe/SiteCenterToken.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.fr.design.mainframe; - -import com.fr.stable.CodeUtils; - -import java.text.SimpleDateFormat; -import java.util.Calendar; - -/** - * Created by hzzz on 2017/12/4. - */ -public class SiteCenterToken { - - public static String generateToken() { - String date = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()); - return CodeUtils.md5Encode(date, "", "MD5"); - } -} diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 05737e7c35..84ebdcec85 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -1009,8 +1009,8 @@ public class RemoteEnv extends AbstractEnv { } try { HashMap para = new HashMap(); - para.put("op", "fs_remote_vcs"); - para.put("cmd", "hzzz"); + para.put("op", "fr_remote_design"); + para.put("cmd", "delete_file"); para.put("file_path", filePath); HttpClient client = createHttpMethod(para); @@ -2075,8 +2075,8 @@ public class RemoteEnv extends AbstractEnv { info.parseJSON(jo); return info; } - - + + @Override public String pluginServiceAction(String serviceID, String req) throws Exception { @@ -2216,29 +2216,29 @@ public class RemoteEnv extends AbstractEnv { public void doWhenServerShutDown() { } - + @Override public boolean isLocalEnv() { - + return false; } - + @Override public boolean hasPluginServiceStarted(String key) { return true; } - + @Override public JSONArray getPluginStatus() { - + try { HashMap para = new HashMap(); para.put("op", "plugin"); para.put("cmd", "get_status"); para.put("current_uid", this.createUserID()); para.put("currentUsername", this.getUser()); - + HttpClient client = createHttpMethod(para); InputStream input = execute4InputStream(client); return new JSONArray(stream2String(input)); From aef3d06f1f5ee70fadfd6d57667ec1d303f820d9 Mon Sep 17 00:00:00 2001 From: hzzz Date: Wed, 27 Dec 2017 17:23:41 +0800 Subject: [PATCH 15/28] conflict --- .../fr/design/mainframe/SiteCenterToken.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 designer_base/src/com/fr/design/mainframe/SiteCenterToken.java diff --git a/designer_base/src/com/fr/design/mainframe/SiteCenterToken.java b/designer_base/src/com/fr/design/mainframe/SiteCenterToken.java new file mode 100644 index 0000000000..16af4c3654 --- /dev/null +++ b/designer_base/src/com/fr/design/mainframe/SiteCenterToken.java @@ -0,0 +1,17 @@ +package com.fr.design.mainframe; + +import com.fr.stable.CodeUtils; + +import java.text.SimpleDateFormat; +import java.util.Calendar; + +/** + * Created by hzzz on 2017/12/4. + */ +public class SiteCenterToken { + + public static String generateToken() { + String date = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()); + return CodeUtils.md5Encode(date, "", "MD5"); + } +} From 96c76437545b5ae54e386805bc9df90d6a349c1b Mon Sep 17 00:00:00 2001 From: hzzz Date: Thu, 28 Dec 2017 11:15:32 +0800 Subject: [PATCH 16/28] refactor --- .../mainframe/toolbar/ToolBarMenuDock.java | 42 +++++++++++++------ .../fr/design/mainframe/toolbar/VcsScene.java | 39 +++++++++++++++++ 2 files changed, 69 insertions(+), 12 deletions(-) create mode 100644 designer_base/src/com/fr/design/mainframe/toolbar/VcsScene.java diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 4aee3a024e..dbfe4f441d 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -59,6 +59,7 @@ import com.fr.plugin.observer.PluginEvent; import com.fr.plugin.observer.PluginEventListener; import com.fr.plugin.observer.PluginEventType; import com.fr.stable.ArrayUtils; +import com.fr.stable.ProductConstants; import com.fr.stable.StringUtils; import javax.swing.*; @@ -316,23 +317,26 @@ public abstract class ToolBarMenuDock { } public MenuDef createFileMenuDef(ToolBarMenuDockPlus plus) { - boolean notVcs = !DesignerMode.isVcsMode(); - MenuDef menuDef = new MenuDef(Inter.getLocText("FR-Designer_File"), 'F'); + if (DesignerMode.isVcsMode()) { + MenuDef menuDef = VcsScene.createFileMenuDef(plus); + insertMenu(menuDef, MenuHandler.FILE); + return menuDef; + } + MenuDef menuDef = new MenuDef(Inter.getLocText("FR-Designer_File"), 'F'); ShortCut[] scs = new ShortCut[0]; - if (!BaseUtils.isAuthorityEditing() && notVcs) { + if (!BaseUtils.isAuthorityEditing()) { scs = createNewFileShortCuts(); } if (!ArrayUtils.isEmpty(scs)) { menuDef.addShortCut(scs); } - if (notVcs) { - menuDef.addShortCut(openTemplateAction()); - menuDef.addShortCut(new OpenRecentReportMenuDef()); - addCloseCurrentTemplateAction(menuDef); - } + menuDef.addShortCut(openTemplateAction()); + menuDef.addShortCut(new OpenRecentReportMenuDef()); + + addCloseCurrentTemplateAction(menuDef); scs = plus.shortcut4FileMenu(); if (!ArrayUtils.isEmpty(scs)) { @@ -343,9 +347,8 @@ public abstract class ToolBarMenuDock { addPreferenceAction(menuDef); - if (notVcs) { - addSwitchExistEnvAction(menuDef); - } + addSwitchExistEnvAction(menuDef); + menuDef.addShortCut(new ExitDesignerAction()); insertMenu(menuDef, MenuHandler.FILE); @@ -577,7 +580,22 @@ public abstract class ToolBarMenuDock { } public NewTemplatePane getNewTemplatePane() { - return ToolBarNewTemplatePane.getInstance(); + return new NewTemplatePane() { + @Override + public Icon getNew() { + return BaseUtils.readIcon("/com/fr/design/images/buttonicon/addicon.png"); + } + + @Override + public Icon getMouseOverNew() { + return BaseUtils.readIcon("/com/fr/design/images/buttonicon/add_press.png"); + } + + @Override + public Icon getMousePressNew() { + return BaseUtils.readIcon("/com/fr/design/images/buttonicon/add_press.png"); + } + }; } protected void insertMenu(MenuDef menuDef, String anchor) { diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/VcsScene.java b/designer_base/src/com/fr/design/mainframe/toolbar/VcsScene.java new file mode 100644 index 0000000000..6da207b9ea --- /dev/null +++ b/designer_base/src/com/fr/design/mainframe/toolbar/VcsScene.java @@ -0,0 +1,39 @@ +package com.fr.design.mainframe.toolbar; + +import com.fr.base.BaseUtils; +import com.fr.design.actions.file.ExitDesignerAction; +import com.fr.design.actions.file.PreferenceAction; +import com.fr.design.menu.MenuDef; +import com.fr.design.menu.SeparatorDef; +import com.fr.design.menu.ShortCut; +import com.fr.general.Inter; +import com.fr.stable.ArrayUtils; + +/** + * Created by hzzz on 2017/12/28. + */ +public class VcsScene { + + public static MenuDef createFileMenuDef(ToolBarMenuDockPlus plus) { + MenuDef menuDef = new MenuDef(Inter.getLocText("FR-Designer_File"), 'F'); + + ShortCut[] scs = new ShortCut[0]; + if (!ArrayUtils.isEmpty(scs)) { + menuDef.addShortCut(scs); + } + + scs = plus.shortcut4FileMenu(); + if (!ArrayUtils.isEmpty(scs)) { + menuDef.addShortCut(SeparatorDef.DEFAULT); + menuDef.addShortCut(scs); + menuDef.addShortCut(SeparatorDef.DEFAULT); + } + + if (!BaseUtils.isAuthorityEditing()) { + menuDef.addShortCut(new PreferenceAction()); + } + + menuDef.addShortCut(new ExitDesignerAction()); + return menuDef; + } +} From 6de3e5810fbd2e0b627970f1fcd2d2f7e4ae1e63 Mon Sep 17 00:00:00 2001 From: hzzz Date: Thu, 28 Dec 2017 11:17:10 +0800 Subject: [PATCH 17/28] refactor --- designer_base/src/com/fr/design/mainframe/JTemplate.java | 7 ++++--- .../src/com/fr/design/mainframe/toolbar/VcsScene.java | 7 +++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index 9afe6d802e..1da72d5f79 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -30,6 +30,7 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.templateinfo.TemplateInfoCollector; import com.fr.design.mainframe.templateinfo.TemplateProcessInfo; import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; +import com.fr.design.mainframe.toolbar.VcsScene; import com.fr.design.menu.MenuDef; import com.fr.design.menu.NameSeparator; import com.fr.design.menu.ShortCut; @@ -683,10 +684,10 @@ public abstract class JTemplate> ex * @return 返回菜单 */ public ShortCut[] shortcut4FileMenu() { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isVcsMode()) { + return VcsScene.shortcut4FileMenu(this); + } else if (BaseUtils.isAuthorityEditing()) { return new ShortCut[]{new SaveTemplateAction(this), new UndoAction(this), new RedoAction(this)}; - } else if (DesignerMode.isVcsMode()) { - return new ShortCut[]{new UndoAction(this), new RedoAction(this)}; } else { return new ShortCut[]{new SaveTemplateAction(this), new SaveAsTemplateAction(this), new UndoAction(this), new RedoAction(this)}; } diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/VcsScene.java b/designer_base/src/com/fr/design/mainframe/toolbar/VcsScene.java index 6da207b9ea..1e7d9e88b3 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/VcsScene.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/VcsScene.java @@ -1,8 +1,11 @@ package com.fr.design.mainframe.toolbar; import com.fr.base.BaseUtils; +import com.fr.design.actions.edit.RedoAction; +import com.fr.design.actions.edit.UndoAction; import com.fr.design.actions.file.ExitDesignerAction; import com.fr.design.actions.file.PreferenceAction; +import com.fr.design.mainframe.JTemplate; import com.fr.design.menu.MenuDef; import com.fr.design.menu.SeparatorDef; import com.fr.design.menu.ShortCut; @@ -36,4 +39,8 @@ public class VcsScene { menuDef.addShortCut(new ExitDesignerAction()); return menuDef; } + + public static ShortCut[] shortcut4FileMenu(JTemplate jTemplate) { + return new ShortCut[]{new UndoAction(jTemplate), new RedoAction(jTemplate)}; + } } From 84cdbd3da281b27076eebaec17cc56694435e0aa Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Thu, 28 Dec 2017 11:52:17 +0800 Subject: [PATCH 18/28] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=85=AC=E5=85=B1?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E6=8B=B7=E8=B4=9D=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/extra/WebViewDlgHelper.java | 28 ++++++------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java b/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java index 1859b46716..59fb612765 100644 --- a/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java +++ b/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java @@ -5,6 +5,7 @@ import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.UIDialog; import com.fr.design.gui.frpane.UITabbedPane; import com.fr.design.mainframe.DesignerContext; +import com.fr.general.CommonIOUtils; import com.fr.general.ComparatorUtils; import com.fr.general.GeneralContext; import com.fr.general.IOUtils; @@ -22,9 +23,7 @@ import javax.swing.SwingWorker; import java.awt.BorderLayout; import java.awt.Component; import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.InputStream; +import java.io.IOException; import java.lang.reflect.Constructor; import java.net.HttpURLConnection; import java.util.concurrent.ExecutionException; @@ -94,29 +93,17 @@ public class WebViewDlgHelper { public static void checkAndCopyMainFile(String indexPath, String mainJsPath) { File file = new File(indexPath); if (!file.exists()) { - copyMainFile(indexPath, mainJsPath); + copyMainFile(mainJsPath); } } /** * 將script文件夹中的plugin.html文件复制到webreport下 */ - public static void copyMainFile(String indexPath, String mainJsPath) { + private static void copyMainFile(String mainJsPath) { try { - File mainJsFile = new File(mainJsPath); - int byteread = 0; - if (mainJsFile.exists()) { - InputStream inStream = new FileInputStream(mainJsPath); - FileOutputStream fs = new FileOutputStream(indexPath); - byte[] buffer = new byte[BYTES_NUM]; - while ((byteread = inStream.read(buffer)) != -1) { - fs.write(buffer, 0, byteread); - } - fs.flush(); - fs.close(); - inStream.close(); - } - } catch (Exception e) { + CommonIOUtils.copy(new File(mainJsPath), new File(installHome)); + } catch (IOException e) { FRContext.getLogger().error(e.getMessage()); } } @@ -133,6 +120,7 @@ public class WebViewDlgHelper { /** * 以关键词打开设计器商店显示搜索结果 + * * @param keyword * @param data */ @@ -242,7 +230,7 @@ public class WebViewDlgHelper { if (get()) { String relativePath = "/scripts/plugin.html"; IOUtils.unzip(new File(StableUtils.pathJoin(PluginConstants.DOWNLOAD_PATH, PluginConstants.TEMP_FILE)), installHome); - copyMainFile(StableUtils.pathJoin(installHome, "plugin.html"), StableUtils.pathJoin(installHome, relativePath)); + copyMainFile(StableUtils.pathJoin(installHome, relativePath)); // TODO: 2017/4/17 删除之前存放在安装目录下的script PluginStoreConstants.refreshProps(); // 下载完刷新一下版本号等 JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Shop_Installed"), Inter.getLocText("FR-Designer_Tooltips"), JOptionPane.INFORMATION_MESSAGE); From 72b5b8e035278a4af345b6666cddaa5a3466f17c Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Fri, 29 Dec 2017 01:41:25 +0800 Subject: [PATCH 19/28] =?UTF-8?q?REPORT-6296=20REPORT-6303=20AF=E6=94=B9?= =?UTF-8?q?=E8=89=AFbugfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/component/AlphaFineDialog.java | 29 ++++++++++++++++--- .../manager/impl/FileSearchManager.java | 20 +++++++++++-- .../manager/impl/PluginSearchManager.java | 12 +++++++- 3 files changed, 53 insertions(+), 8 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index fe7b66aeca..a5c1dcd75e 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -795,13 +795,34 @@ public class AlphaFineDialog extends UIDialog { * @param selectedValue */ private void rebuildShowMoreList(int index, MoreModel selectedValue) { - SearchResult moreResult = getMoreResult(selectedValue); if ((selectedValue).getContent().equals(Inter.getLocText("FR-Designer_AlphaFine_ShowLess"))) { - for (int i = 0; i < moreResult.size(); i++) { - this.searchListModel.add(index + AlphaFineConstants.SHOW_SIZE + 1 + i, moreResult.get(i)); + splitLabel.setIcon(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/bigloading.gif"))); + refreshContainer(); + if (this.searchWorker != null && !this.searchWorker.isDone()) { + this.searchWorker.cancel(true); + this.searchWorker = null; } + this.searchWorker = new SwingWorker() { + @Override + protected Object doInBackground() throws Exception { + splitLabel.setIcon(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/bigloading.gif"))); + for (int i = 0; i < getMoreResult(selectedValue).size(); i++) { + searchListModel.add(index + AlphaFineConstants.SHOW_SIZE + 1 + i, getMoreResult(selectedValue).get(i)); + } + return null; + } + + @Override + protected void done() { + if (!isCancelled()) { + splitLabel.setIcon(null); + } + } + }; + this.searchWorker.execute(); + } else { - for (int i = 0; i < moreResult.size(); i++) { + for (int i = 0; i < getMoreResult(selectedValue).size(); i++) { this.searchListModel.remove(index + AlphaFineConstants.SHOW_SIZE + 1); } diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java index 22f4424c9f..8da604ab13 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java @@ -39,6 +39,7 @@ public class FileSearchManager implements AlphaFineSearchProvider { private static FileSearchManager fileSearchManager = null; private SearchResult filterModelList; private SearchResult lessModelList; + private SearchResult moreModelList; private List fileNodes = null; //停止搜索 private boolean stopSearch = false; @@ -73,6 +74,7 @@ public class FileSearchManager implements AlphaFineSearchProvider { public synchronized SearchResult getLessSearchResult(String searchText) { this.filterModelList = new SearchResult(); this.lessModelList = new SearchResult(); + this.moreModelList = new SearchResult(); searchText = dealWithSearchText(searchText); if (StringUtils.isBlank(searchText) || ComparatorUtils.equals(searchText, DS_NAME)) { lessModelList.add(new MoreModel(Inter.getLocText("FR-Designer_Templates"))); @@ -101,16 +103,20 @@ public class FileSearchManager implements AlphaFineSearchProvider { @Override public SearchResult getMoreSearchResult(String searchText) { + if (moreModelList != null && !moreModelList.isEmpty()) { + return moreModelList; + } this.filterModelList = new SearchResult(); this.lessModelList = new SearchResult(); + this.moreModelList = new SearchResult(); searchText = dealWithSearchText(searchText); Env env = FRContext.getCurrentEnv(); AlphaFineHelper.checkCancel(); isContainCpt = true; isContainFrm = true; doSearch(searchText, false, env); - lessModelList.addAll(filterModelList.subList(AlphaFineConstants.SHOW_SIZE, filterModelList.size())); - return lessModelList; + moreModelList.addAll(filterModelList.subList(AlphaFineConstants.SHOW_SIZE, filterModelList.size())); + return moreModelList; } private void doSearch(String searchText, boolean needMore, Env env) { @@ -193,7 +199,7 @@ public class FileSearchManager implements AlphaFineSearchProvider { if (!AlphaFineHelper.getFilterResult().contains(model)) { filterModelList.add(model); } - if (filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { + if(filterModelList.size() > AlphaFineConstants.SHOW_SIZE && needMore) { stopSearch = true; } isAlreadyContain = true; @@ -272,4 +278,12 @@ public class FileSearchManager implements AlphaFineSearchProvider { public void setContainFrm(boolean containFrm) { isContainFrm = containFrm; } + + public SearchResult getMoreModelList() { + return moreModelList; + } + + public void setMoreModelList(SearchResult moreModelList) { + this.moreModelList = moreModelList; + } } \ No newline at end of file diff --git a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java index 2978eee40e..17cd01f584 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java +++ b/designer/src/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java @@ -15,6 +15,8 @@ import com.fr.general.http.HttpClient; import com.fr.json.JSONArray; import com.fr.json.JSONException; import com.fr.json.JSONObject; +import com.fr.plugin.basic.version.Version; +import com.fr.plugin.basic.version.VersionIntervalFactory; import com.fr.stable.StringUtils; import java.io.UnsupportedEncodingException; @@ -37,10 +39,18 @@ public class PluginSearchManager implements AlphaFineSearchProvider { } + private static boolean isCompatibleCurrentEnv(String envVersion){ + return VersionIntervalFactory.create(envVersion).contain(Version.currentEnvVersion()); + } + private static PluginModel getPluginModel(JSONObject object, boolean isFromCloud) { String name = object.optString("name"); String content = object.optString("description"); String pluginId = object.optString("pluginid"); + String envVersion = object.optString("envversion"); + if (!isCompatibleCurrentEnv(envVersion)) { + return null; + } int id = object.optInt("id"); int searchCount = object.optInt("searchCount"); String imageUrl = null; @@ -107,7 +117,7 @@ public class PluginSearchManager implements AlphaFineSearchProvider { for (int i = 0; i < jsonArray.length(); i++) { AlphaFineHelper.checkCancel(); PluginModel cellModel = getPluginModel(jsonArray.optJSONObject(i), false); - if (!AlphaFineHelper.getFilterResult().contains(cellModel)) { + if (cellModel != null && !AlphaFineHelper.getFilterResult().contains(cellModel)) { searchResult.add(cellModel); } } From b7af29a8388f0b77b8900bcf87bd66be54d983ab Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Fri, 29 Dec 2017 09:10:24 +0800 Subject: [PATCH 20/28] rt --- .../mainframe/alphafine/component/AlphaFineDialog.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index a5c1dcd75e..ea50d88268 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -390,7 +390,6 @@ public class AlphaFineDialog extends UIDialog { */ private void rebuildList(String searchText) { resetContainer(); - if (searchText.startsWith(ADVANCED_SEARCH_MARK)) { if (searchText.startsWith(ACTION_MARK_SHORT) || searchText.startsWith(ACTION_MARK)) { storeText = searchText.substring(searchText.indexOf(StringUtils.BLANK) + 1, searchText.length()); @@ -624,6 +623,7 @@ public class AlphaFineDialog extends UIDialog { private void dealWithMoreOrLessResult(int index, MoreModel selectedValue) { if (ComparatorUtils.equals(Inter.getLocText("FR-Designer_AlphaFine_ShowAll"), selectedValue.getContent())) { selectedValue.setContent(Inter.getLocText("FR-Designer_AlphaFine_ShowLess")); + rebuildShowMoreList(index, selectedValue); } else { selectedValue.setContent(Inter.getLocText("FR-Designer_AlphaFine_ShowAll")); @@ -796,8 +796,7 @@ public class AlphaFineDialog extends UIDialog { */ private void rebuildShowMoreList(int index, MoreModel selectedValue) { if ((selectedValue).getContent().equals(Inter.getLocText("FR-Designer_AlphaFine_ShowLess"))) { - splitLabel.setIcon(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/bigloading.gif"))); - refreshContainer(); + splitLabel.setIcon(new ImageIcon(getClass().getResource(AlphaFineConstants.IMAGE_URL + "bigloading.gif"))); if (this.searchWorker != null && !this.searchWorker.isDone()) { this.searchWorker.cancel(true); this.searchWorker = null; @@ -805,7 +804,6 @@ public class AlphaFineDialog extends UIDialog { this.searchWorker = new SwingWorker() { @Override protected Object doInBackground() throws Exception { - splitLabel.setIcon(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/bigloading.gif"))); for (int i = 0; i < getMoreResult(selectedValue).size(); i++) { searchListModel.add(index + AlphaFineConstants.SHOW_SIZE + 1 + i, getMoreResult(selectedValue).get(i)); } From 361455e4c681bcec9e751629987e8f15fa4d8d74 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Fri, 29 Dec 2017 10:41:31 +0800 Subject: [PATCH 21/28] =?UTF-8?q?=E5=8E=BB=E6=8E=89import=20*?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer/src/com/fr/start/Designer.java | 8 ++++++-- .../src/com/fr/design/actions/core/ActionFactory.java | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/designer/src/com/fr/start/Designer.java b/designer/src/com/fr/start/Designer.java index 17c01527e7..e52530c8e6 100644 --- a/designer/src/com/fr/start/Designer.java +++ b/designer/src/com/fr/start/Designer.java @@ -45,9 +45,13 @@ import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import com.fr.stable.xml.XMLTools; -import javax.swing.*; +import javax.swing.JComponent; +import javax.swing.JPanel; import javax.swing.border.MatteBorder; -import java.awt.*; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; diff --git a/designer_base/src/com/fr/design/actions/core/ActionFactory.java b/designer_base/src/com/fr/design/actions/core/ActionFactory.java index ecce774da7..f89e9ed843 100644 --- a/designer_base/src/com/fr/design/actions/core/ActionFactory.java +++ b/designer_base/src/com/fr/design/actions/core/ActionFactory.java @@ -9,7 +9,8 @@ import com.fr.design.menu.MenuKeySet; import com.fr.design.selection.QuickEditor; import com.fr.general.FRLogger; -import javax.swing.*; +import javax.swing.Action; +import javax.swing.KeyStroke; import java.awt.event.KeyEvent; import java.lang.reflect.Constructor; import java.util.ArrayList; From ab93803d25684fdda431d084b6b3921878e5f217 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Fri, 29 Dec 2017 11:07:27 +0800 Subject: [PATCH 22/28] =?UTF-8?q?CHART-1882=20=20=20=E5=A0=86=E7=A7=AF?= =?UTF-8?q?=E5=92=8C=E5=9D=90=E6=A0=87=E8=BD=B4=E7=95=8C=E9=9D=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/module/ChartEmptyDataStylePane.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java b/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java index 65a61e7bff..42de5bacdf 100644 --- a/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java +++ b/designer_chart/src/com/fr/design/module/ChartEmptyDataStylePane.java @@ -21,11 +21,20 @@ import com.fr.general.Inter; import com.fr.stable.CoreGraphHelper; import com.fr.stable.StringUtils; -import javax.swing.*; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; +import javax.swing.BorderFactory; +import javax.swing.JFileChooser; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.ButtonGroup; +import java.awt.Image; +import java.awt.Dimension; +import java.awt.Component; +import java.awt.GridLayout; /** * Created by mengao on 2017/11/23. From 7506394b67f308fa1d3da27e8e8dfa72aa8007f1 Mon Sep 17 00:00:00 2001 From: hzzz Date: Fri, 29 Dec 2017 12:23:46 +0800 Subject: [PATCH 23/28] =?UTF-8?q?=E5=8A=A0RemoteEnv=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/env/RemoteEnv.java | 24 +++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 84ebdcec85..da703c48f1 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -29,7 +29,12 @@ import com.fr.file.CacheManager; import com.fr.file.DatasourceManager; import com.fr.file.DatasourceManagerProvider; import com.fr.file.filetree.FileNode; -import com.fr.general.*; +import com.fr.general.ComparatorUtils; +import com.fr.general.FRLogger; +import com.fr.general.IOUtils; +import com.fr.general.Inter; +import com.fr.general.LogRecordTime; +import com.fr.general.LogUtils; import com.fr.general.http.HttpClient; import com.fr.json.JSONArray; import com.fr.json.JSONException; @@ -549,7 +554,7 @@ public class RemoteEnv extends AbstractEnv { } private void stopLogTimer() { - if(logTimer != null) { + if (logTimer != null) { logTimer.cancel(); logTimer = null; } @@ -2077,7 +2082,6 @@ public class RemoteEnv extends AbstractEnv { } - @Override public String pluginServiceAction(String serviceID, String req) throws Exception { HashMap para = new HashMap(); @@ -2092,11 +2096,13 @@ public class RemoteEnv extends AbstractEnv { /** * 远程不启动,使用虚拟服务 + * * @param serviceID */ @Override - public void pluginServiceStart(String serviceID){ + public void pluginServiceStart(String serviceID) { } + @Override public File[] loadREUFile() throws Exception { File target = new File(CacheManager.getProviderInstance().getCacheDirectory(), @@ -2246,4 +2252,14 @@ public class RemoteEnv extends AbstractEnv { return JSONArray.create(); } } + + public String post(HashMap para, boolean isSignIn) { + try { + HttpClient client = createHttpMethod(para, isSignIn); + return stream2String(execute4InputStream(client)); + } catch (Exception e) { + FRContext.getLogger().error(e.getMessage()); + return StringUtils.EMPTY; + } + } } \ No newline at end of file From 8a989b4977d1a169b68209aa5c4044ff56524aa9 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 2 Jan 2018 10:53:28 +0800 Subject: [PATCH 24/28] =?UTF-8?q?=E6=89=93=E5=8C=85=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/component/AlphaFineDialog.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index ea50d88268..d6c216ff4e 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -664,7 +664,9 @@ public class AlphaFineDialog extends UIDialog { searchResultList.setSelectedIndex(searchResultList.getSelectedIndex() + 1); } else if (e.getKeyCode() == KeyEvent.VK_UP) { searchResultList.setSelectedIndex(searchResultList.getSelectedIndex() - 1); - } else escAlphaFineDialog(e); + } else { + escAlphaFineDialog(e); + } } }); @@ -794,7 +796,7 @@ public class AlphaFineDialog extends UIDialog { * @param index * @param selectedValue */ - private void rebuildShowMoreList(int index, MoreModel selectedValue) { + private void rebuildShowMoreList(int index, final MoreModel selectedValue) { if ((selectedValue).getContent().equals(Inter.getLocText("FR-Designer_AlphaFine_ShowLess"))) { splitLabel.setIcon(new ImageIcon(getClass().getResource(AlphaFineConstants.IMAGE_URL + "bigloading.gif"))); if (this.searchWorker != null && !this.searchWorker.isDone()) { @@ -804,8 +806,9 @@ public class AlphaFineDialog extends UIDialog { this.searchWorker = new SwingWorker() { @Override protected Object doInBackground() throws Exception { - for (int i = 0; i < getMoreResult(selectedValue).size(); i++) { - searchListModel.add(index + AlphaFineConstants.SHOW_SIZE + 1 + i, getMoreResult(selectedValue).get(i)); + SearchResult moreResults = getMoreResult(selectedValue); + for (int i = 0; i < moreResults.size(); i++) { + searchListModel.add(index + AlphaFineConstants.SHOW_SIZE + 1 + i, moreResults.get(i)); } return null; } From 4bc17a83f2e021b064bb0e3845bf8d276ef6fabe Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 2 Jan 2018 11:11:32 +0800 Subject: [PATCH 25/28] rt --- .../design/mainframe/alphafine/component/AlphaFineDialog.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index d6c216ff4e..633ff432a8 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -776,7 +776,7 @@ public class AlphaFineDialog extends UIDialog { } catch (JSONException e) { FRLogger.getLogger().error(e.getMessage()); } - final HashMap para = new HashMap<>(); + final HashMap para = new HashMap(); String date = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()); para.put("token", CodeUtils.md5Encode(date, StringUtils.EMPTY, "MD5")); para.put("content", object.toString()); @@ -796,7 +796,7 @@ public class AlphaFineDialog extends UIDialog { * @param index * @param selectedValue */ - private void rebuildShowMoreList(int index, final MoreModel selectedValue) { + private void rebuildShowMoreList(final int index, final MoreModel selectedValue) { if ((selectedValue).getContent().equals(Inter.getLocText("FR-Designer_AlphaFine_ShowLess"))) { splitLabel.setIcon(new ImageIcon(getClass().getResource(AlphaFineConstants.IMAGE_URL + "bigloading.gif"))); if (this.searchWorker != null && !this.searchWorker.isDone()) { From 7cc051b6e1f131b6fe46041cc1ef0edcd7b53493 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 2 Jan 2018 11:15:09 +0800 Subject: [PATCH 26/28] rt --- .../design/mainframe/alphafine/component/AlphaFineDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index 633ff432a8..4b288cec28 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -776,7 +776,7 @@ public class AlphaFineDialog extends UIDialog { } catch (JSONException e) { FRLogger.getLogger().error(e.getMessage()); } - final HashMap para = new HashMap(); + final HashMap para = new HashMap<>(); String date = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()); para.put("token", CodeUtils.md5Encode(date, StringUtils.EMPTY, "MD5")); para.put("content", object.toString()); From e569f7ee4ca4b9d8af77b70eec3737c7d2787c43 Mon Sep 17 00:00:00 2001 From: hzzz Date: Tue, 2 Jan 2018 11:39:08 +0800 Subject: [PATCH 27/28] 0102 --- .../AbstractTemplateTreeShortCutProvider.java | 5 --- .../DesignerFrameFileDealerPane.java | 31 +++++++++++++++---- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java b/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java index b8568dd615..22fe8aa767 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java @@ -11,11 +11,6 @@ import com.fr.stable.fun.mark.API; @API(level = TemplateTreeShortCutProvider.CURRENT_LEVEL) public abstract class AbstractTemplateTreeShortCutProvider extends UpdateAction implements TemplateTreeShortCutProvider { - @Override - public int currentAPILevel() { - return 1; - } - @Override public String mark4Provider() { return getClass().getName(); diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java index 175463b1d4..e8aab50e57 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java @@ -10,7 +10,11 @@ import com.fr.design.constants.UIConstants; import com.fr.design.data.DesignTableDataManager; import com.fr.design.data.datapane.TableDataTreePane; import com.fr.design.data.tabledata.ResponseDataSourceChange; -import com.fr.design.file.*; +import com.fr.design.file.FileOperations; +import com.fr.design.file.FileToolbarStateChangeListener; +import com.fr.design.file.HistoryTemplateListPane; +import com.fr.design.file.MutilTempalteTabPane; +import com.fr.design.file.TemplateTreePane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.imenu.UIMenuHighLight; @@ -41,6 +45,7 @@ import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; +import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -51,6 +56,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt private CardLayout card; private JPanel cardPane; + private java.util.List otherToobarStateChangeListeners= new ArrayList<>(); public FileOperations getSelectedOperation() { return selectedOperation; @@ -137,7 +143,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt } toolbarDef.addShortCut(delFileAction); Set extraShortCuts = ExtraDesignClassManager.getInstance().getExtraShortCuts(); - for (ShortCut shortCut : extraShortCuts){ + for (ShortCut shortCut : extraShortCuts) { toolbarDef.addShortCut(shortCut); } @@ -163,8 +169,9 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt } /** - * 响应数据集改变 - * @param map 改变名字的数据集 + * 响应数据集改变 + * + * @param map 改变名字的数据集 */ public void fireDSChanged(Map map) { DesignTableDataManager.fireDSChanged(map); @@ -215,6 +222,17 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt public void actionPerformed(ActionEvent evt) { selectedOperation.refresh(); stateChange(); + + } + } + + public void addToobarStateChangeListener(FileToolbarStateChangeListener toobarStateChangeListener) { + this.otherToobarStateChangeListeners.add(toobarStateChangeListener); + } + + private void otherStateChange() { + for (FileToolbarStateChangeListener toobarStateChangeListener : otherToobarStateChangeListeners) { + toobarStateChangeListener.stateChange(); } } @@ -298,8 +316,8 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt openReportAction.setEnabled(false); } FileNode node = TemplateTreePane.getInstance().getTemplateFileTree().getSelectedFileNode(); - if (selectedOperation.getSelectedTemplatePath() != null){ - if (node.getLock() != null && !ComparatorUtils.equals(node.getUserID(),node.getLock())){ + if (selectedOperation.getSelectedTemplatePath() != null) { + if (node.getLock() != null && !ComparatorUtils.equals(node.getUserID(), node.getLock())) { delFileAction.setEnabled(false); } else { delFileAction.setEnabled(true); @@ -332,6 +350,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt delFileAction.setEnabled(true); } + otherStateChange(); } /** From 8437db6a4b1ca1c3dac7a7e213c85ef9508193e0 Mon Sep 17 00:00:00 2001 From: hzzz Date: Tue, 2 Jan 2018 11:42:29 +0800 Subject: [PATCH 28/28] 0102 --- .../com/fr/design/mainframe/DesignerFrameFileDealerPane.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java index e8aab50e57..c8a4b231de 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java @@ -230,6 +230,10 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt this.otherToobarStateChangeListeners.add(toobarStateChangeListener); } + public void removeToobarStateChangeListener(FileToolbarStateChangeListener toobarStateChangeListener) { + this.otherToobarStateChangeListeners.remove(toobarStateChangeListener); + } + private void otherStateChange() { for (FileToolbarStateChangeListener toobarStateChangeListener : otherToobarStateChangeListeners) { toobarStateChangeListener.stateChange();