From fe470dd49138ef5002c78dd3f125fa17cad59353 Mon Sep 17 00:00:00 2001 From: neil <459208047@qq.com> Date: Tue, 14 May 2019 16:43:33 +0800 Subject: [PATCH 01/15] =?UTF-8?q?REPORT-16997=20FileExtension=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=8E=A5=E5=8F=A3=E6=89=A9=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gui/itree/filetree/TemplateFileTree.java | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/TemplateFileTree.java b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/TemplateFileTree.java index ebbb78470..a76b353ab 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/TemplateFileTree.java +++ b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/TemplateFileTree.java @@ -1,6 +1,7 @@ package com.fr.design.gui.itree.filetree; import com.fr.base.FRContext; +import com.fr.base.FileExtensionProvider; import com.fr.base.extension.FileExtension; import com.fr.design.ExtraDesignClassManager; import com.fr.design.file.NodeAuthProcessor; @@ -16,7 +17,6 @@ import javax.swing.text.Position; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -129,15 +129,15 @@ public class TemplateFileTree extends EnvFileTree { public FileNode[] listFile(String path) { // 支持插件扩展, 先从env的filter拿, 再从插件拿 - Set supportTypes = createFileExtensionFilter(); + Set supportTypes = createFileExtensionFilter(); return FRContext.getFileNodes().list( path, - supportTypes.toArray(new FileExtension[supportTypes.size()]) + supportTypes.toArray(new FileExtensionProvider[supportTypes.size()]) ); } - private Set createFileExtensionFilter() { - Set supportTypes = new HashSet(); + private Set createFileExtensionFilter() { + Set supportTypes = new HashSet(); if (filter != null) { for (String temp : filter.getSupportedTypes()) { supportTypes.add(FileExtension.parse(temp)); @@ -228,17 +228,6 @@ public class TemplateFileTree extends EnvFileTree { if (fileNodes == null) { fileNodes = new FileNode[0]; } - // FileNodeFilter过滤 - if (filter != null) { - List list = new ArrayList(); - for (FileNode fileNode : fileNodes) { - if (filter.accept(fileNode)) { - list.add(fileNode); - } - } - fileNodes = list.toArray(new FileNode[list.size()]); - } - Arrays.sort(fileNodes, new FileNodeComparator(FRContext.getFileNodes().getSupportedTypes())); return fileNodes; } From f50ea66fa0691efa8f27f1130b098f42e5cbe4ce Mon Sep 17 00:00:00 2001 From: neil <459208047@qq.com> Date: Tue, 14 May 2019 17:37:31 +0800 Subject: [PATCH 02/15] =?UTF-8?q?=E8=AF=AF=E5=88=A0=E4=BA=86sort?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/gui/itree/filetree/TemplateFileTree.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/TemplateFileTree.java b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/TemplateFileTree.java index a76b353ab..a52e33440 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/TemplateFileTree.java +++ b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/TemplateFileTree.java @@ -17,6 +17,7 @@ import javax.swing.text.Position; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -228,6 +229,7 @@ public class TemplateFileTree extends EnvFileTree { if (fileNodes == null) { fileNodes = new FileNode[0]; } + Arrays.sort(fileNodes, new FileNodeComparator(FRContext.getFileNodes().getSupportedTypes())); return fileNodes; } From a369005330f469dbb72521d4e05bfce2e52c9379 Mon Sep 17 00:00:00 2001 From: neil <459208047@qq.com> Date: Tue, 14 May 2019 18:20:33 +0800 Subject: [PATCH 03/15] =?UTF-8?q?=E4=BE=9D=E7=84=B6=E4=BD=BF=E7=94=A8FileE?= =?UTF-8?q?xtension?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/gui/itree/filetree/TemplateFileTree.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/TemplateFileTree.java b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/TemplateFileTree.java index a52e33440..51af636aa 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/TemplateFileTree.java +++ b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/TemplateFileTree.java @@ -1,7 +1,6 @@ package com.fr.design.gui.itree.filetree; import com.fr.base.FRContext; -import com.fr.base.FileExtensionProvider; import com.fr.base.extension.FileExtension; import com.fr.design.ExtraDesignClassManager; import com.fr.design.file.NodeAuthProcessor; @@ -130,15 +129,15 @@ public class TemplateFileTree extends EnvFileTree { public FileNode[] listFile(String path) { // 支持插件扩展, 先从env的filter拿, 再从插件拿 - Set supportTypes = createFileExtensionFilter(); + Set supportTypes = createFileExtensionFilter(); return FRContext.getFileNodes().list( path, - supportTypes.toArray(new FileExtensionProvider[supportTypes.size()]) + supportTypes.toArray(new FileExtension[supportTypes.size()]) ); } - private Set createFileExtensionFilter() { - Set supportTypes = new HashSet(); + private Set createFileExtensionFilter() { + Set supportTypes = new HashSet(); if (filter != null) { for (String temp : filter.getSupportedTypes()) { supportTypes.add(FileExtension.parse(temp)); From 2a11a0f3d621d96021c8af0eab750d0106828f6a Mon Sep 17 00:00:00 2001 From: Hades Date: Wed, 15 May 2019 09:41:15 +0800 Subject: [PATCH 04/15] =?UTF-8?q?REPORT-16029=20=E7=B9=81=E4=BD=93?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=90=AF=E5=8A=A8=E7=94=BB=E9=9D=A2=E6=94=B9?= =?UTF-8?q?=E6=88=90=E8=8B=B1=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer-realize/src/main/java/com/fr/start/SplashContext.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-realize/src/main/java/com/fr/start/SplashContext.java b/designer-realize/src/main/java/com/fr/start/SplashContext.java index cea537592..17eff62ba 100644 --- a/designer-realize/src/main/java/com/fr/start/SplashContext.java +++ b/designer-realize/src/main/java/com/fr/start/SplashContext.java @@ -167,7 +167,7 @@ public class SplashContext { private static String getSplashPath() { Locale locale = DesignerEnvManager.getEnvManager().getLanguage(); - if (Locale.US.equals(locale) || Locale.KOREA.equals(locale)) { + if (Locale.US.equals(locale) || Locale.KOREA.equals(locale) || Locale.TAIWAN.equals(locale)) { return "/com/fr/design/images/splash_10_en.gif"; } else if (Locale.JAPAN.equals(locale)) { return "/com/fr/design/images/splash_10_jp.gif"; From ee69c71bb9603cd00a2e03399a3754567f31ed88 Mon Sep 17 00:00:00 2001 From: Hades Date: Wed, 15 May 2019 11:06:54 +0800 Subject: [PATCH 05/15] =?UTF-8?q?REPORT-16567=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E7=A4=BE=E5=8C=BA=E8=8F=9C=E5=8D=95=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0=E6=96=B0=E5=AD=90=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/community/FacebookFansAction.java | 41 ++++++++++++++++++ .../mainframe/toolbar/ToolBarMenuDock.java | 5 ++- .../com/fr/design/images/bbs/facebook.png | Bin 0 -> 484 bytes 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 designer-base/src/main/java/com/fr/design/actions/community/FacebookFansAction.java create mode 100644 designer-base/src/main/resources/com/fr/design/images/bbs/facebook.png diff --git a/designer-base/src/main/java/com/fr/design/actions/community/FacebookFansAction.java b/designer-base/src/main/java/com/fr/design/actions/community/FacebookFansAction.java new file mode 100644 index 000000000..9ab799bcc --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/actions/community/FacebookFansAction.java @@ -0,0 +1,41 @@ +package com.fr.design.actions.community; + +import com.fr.design.menu.MenuKeySet; +import com.fr.design.utils.BrowseUtils; +import com.fr.general.CloudCenter; +import com.fr.general.IOUtils; + +import javax.swing.KeyStroke; +import java.awt.event.ActionEvent; + +public class FacebookFansAction extends UpAction { + + public FacebookFansAction() { + this.setMenuKeySet(FACEBOOKFANS); + this.setName(getMenuKeySet().getMenuName()); + this.setMnemonic(getMenuKeySet().getMnemonic()); + this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/bbs/facebook.png")); + } + + @Override + public void actionPerformed(ActionEvent arg0) { + BrowseUtils.browser(CloudCenter.getInstance().acquireUrlByKind("facebook.fans.tw")); + } + + public static final MenuKeySet FACEBOOKFANS = new MenuKeySet() { + @Override + public char getMnemonic() { + return 'F'; + } + + @Override + public String getMenuName() { + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Community_FaceBook_Fans"); + } + + @Override + public KeyStroke getKeyStroke() { + return null; + } + }; +} diff --git a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index c26dce9a0..7e0d6b359 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -13,6 +13,7 @@ import com.fr.design.actions.community.BBSAction; import com.fr.design.actions.community.BugAction; import com.fr.design.actions.community.CenterAction; import com.fr.design.actions.community.CusDemandAction; +import com.fr.design.actions.community.FacebookFansAction; import com.fr.design.actions.community.NeedAction; import com.fr.design.actions.community.QuestionAction; import com.fr.design.actions.community.SignAction; @@ -151,7 +152,6 @@ public abstract class ToolBarMenuDock { } }; - private static final String FINEREPORT = "FineReport"; private static final int MENUBAR_HEIGHT = 22; private static final List PLUGIN_LISTENERS = new ArrayList<>(); @@ -543,6 +543,9 @@ public abstract class ToolBarMenuDock { shortCuts.add(new CusDemandAction()); shortCuts.add(new CenterAction()); shortCuts.add(new SignAction()); + if (Locale.TAIWAN.equals(GeneralContext.getLocale())) { + shortCuts.add(new FacebookFansAction()); + } return shortCuts.toArray(new ShortCut[shortCuts.size()]); } diff --git a/designer-base/src/main/resources/com/fr/design/images/bbs/facebook.png b/designer-base/src/main/resources/com/fr/design/images/bbs/facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..9e5dc8af2c50e3b75eff0af050bb794e5455dc32 GIT binary patch literal 484 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{XiaP zfk$L90|Vb-5N14{zaj-F$X?><>&pI^m7hsl_ExE62~g;|r;B5V#`)ZfhThDM0;~`6 z`CWCLtaOz%SPsrlNK8#m&em_5n(H9&M|{$y_yqBTW~El%8!zm>*5P{K#ah>QS8jjy z{rYV0+{)7zj7>zNL#xa#Bxd~U-?PGe`N5EIVflM!*S_L%i&|fl{;SIGjLTzHO}BNd zv#*J5$vxqEJ1;k~QD>sM+Kipw74)LcvWPpS?hWcX_Ohk6I->mDf^Ez8?>MqUO_QmvAUQh^kMk%6J5u7Rnpp=pSLk(G(Dm64^kfq|8Q k!S9Tnz)(igkei>9nO2EgLzgL|1yBQnr>mdKI;Vst093lG5&!@I literal 0 HcmV?d00001 From 14d0e324a2475310989540d28b767c9794ce6861 Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 15 May 2019 11:10:46 +0800 Subject: [PATCH 06/15] =?UTF-8?q?REPORT-16985=20=E5=85=88=E5=B1=8F?= =?UTF-8?q?=E8=94=BD=E5=BC=80=E5=8F=91=E8=80=85=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/actions/file/PreferencePane.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java index 4aee1941b..7afc21d31 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java @@ -186,11 +186,11 @@ public class PreferencePane extends BasicPane { JPanel oraclePane = FRGUIPaneFactory.createTitledBorderPane("Oracle" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Oracle_All_Tables")); oracleSpace = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Show_All_Oracle_Tables")); oraclePane.add(oracleSpace); - - JPanel debuggerPane = FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Basic_Develop_Tools")); - openDebugComboBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Open_Debug_Window")); - debuggerPane.add(openDebugComboBox, BorderLayout.CENTER); - advancePane.add(debuggerPane); +// +// JPanel debuggerPane = FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Basic_Develop_Tools")); +// openDebugComboBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Open_Debug_Window")); +// debuggerPane.add(openDebugComboBox, BorderLayout.CENTER); +// advancePane.add(debuggerPane); JPanel upmSelectorPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Update_Plugin_Manager")); useOptimizedUPMCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Use_New_Update_Plugin_Manager")); @@ -636,7 +636,7 @@ public class PreferencePane extends BasicPane { this.portEditor.setValue(new Integer(designerEnvManager.getEmbedServerPort())); - openDebugComboBox.setSelected(designerEnvManager.isOpenDebug()); +// openDebugComboBox.setSelected(designerEnvManager.isOpenDebug()); useOptimizedUPMCheckbox.setSelected(ServerPreferenceConfig.getInstance().isUseOptimizedUPM()); this.oracleSpace.setSelected(designerEnvManager.isOracleSystemSpace()); @@ -702,7 +702,7 @@ public class PreferencePane extends BasicPane { designerEnvManager.setJettyServerPort(portEditor.getValue().intValue()); - designerEnvManager.setOpenDebug(openDebugComboBox.isSelected()); +// designerEnvManager.setOpenDebug(openDebugComboBox.isSelected()); designerEnvManager.setOracleSystemSpace(this.oracleSpace.isSelected()); designerEnvManager.setCachingTemplateLimit((int) this.cachingTemplateSpinner.getValue()); From 0fdc1233d99cde0538567a6776ab1565661bbaec Mon Sep 17 00:00:00 2001 From: Hades Date: Wed, 15 May 2019 11:44:03 +0800 Subject: [PATCH 07/15] =?UTF-8?q?REPORT-17096=20=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=88=B010.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/gui/style/AlignmentPane.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/style/AlignmentPane.java b/designer-base/src/main/java/com/fr/design/gui/style/AlignmentPane.java index 11fbaf8c8..9bbca6d2b 100644 --- a/designer-base/src/main/java/com/fr/design/gui/style/AlignmentPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/style/AlignmentPane.java @@ -20,8 +20,10 @@ import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.utils.gui.UIComponentUtils; import com.fr.event.EventDispatcher; import com.fr.general.ComparatorUtils; +import com.fr.general.IOUtils; import com.fr.plugin.ExtraClassManager; import com.fr.plugin.context.PluginContext; import com.fr.plugin.manage.PluginFilter; @@ -94,11 +96,11 @@ public class AlignmentPane extends AbstractBasicStylePane implements GlobalNameO imageLayoutComboBox = new UIComboBox(LAYOUT); initTextRotationCombox(); - Icon[][] hAlignmentIconArray = {{BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left_normal_white.png")}, - {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center_normal_white.png")}, - {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_right_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_right_normal_white.png")}, - {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_s_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_s_normal_white.png")}, - {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/defaultAlignment.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/defaultAlignment_white.png")}}; + Icon[][] hAlignmentIconArray = {{IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left_normal.png"), IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left_normal_white.png")}, + {IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center_normal.png"), IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center_normal_white.png")}, + {IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_right_normal.png"), IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_right_normal_white.png")}, + {IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_s_normal.png"), IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_s_normal_white.png")}, + {IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/defaultAlignment.png"), IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/defaultAlignment_white.png")}}; Integer[] hAlignment = new Integer[]{Constants.LEFT, Constants.CENTER, Constants.RIGHT, Integer.valueOf(Constants.DISTRIBUTED), Constants.NULL}; hAlignmentPane = new UIButtonGroup(hAlignmentIconArray, hAlignment); hAlignmentPane.setAllToolTips(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Alignment_Tooltips_Left"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Alignment_Tooltips_Center"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Alignment_Tooltips_Right"), @@ -106,9 +108,9 @@ public class AlignmentPane extends AbstractBasicStylePane implements GlobalNameO hPaneContainer = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); vPaneContainer = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); - Icon[][] vAlignmentIconArray = {{BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/v_top_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/v_top_normal_white.png")}, - {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/v_center_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/v_center_normal_white.png")}, - {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/v_down_normal.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/v_down_normal_white.png")}}; + Icon[][] vAlignmentIconArray = {{IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/v_top_normal.png"), IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/v_top_normal_white.png")}, + {IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/v_center_normal.png"), IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/v_center_normal_white.png")}, + {IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/v_down_normal.png"), IOUtils.readIcon("/com/fr/design/images/m_format/cellstyle/v_down_normal_white.png")}}; Integer[] vAlignment = new Integer[]{Constants.TOP, Constants.CENTER, Constants.BOTTOM}; vAlignmentPane = new UIButtonGroup(vAlignmentIconArray, vAlignment); vAlignmentPane.setAllToolTips(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Alignment_Tooltips_Top"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Alignment_Tooltips_Center"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Alignment_Tooltips_Bottom")}); @@ -210,9 +212,11 @@ public class AlignmentPane extends AbstractBasicStylePane implements GlobalNameO private JPanel basicPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; + UILabel horizontalLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Alignment_Pane_Horizontal") + " ", SwingConstants.LEFT); + UIComponentUtils.setLineWrap(horizontalLabel); Component[][] components = new Component[][]{ new Component[]{null, null}, - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Alignment_Pane_Horizontal") + " ", SwingConstants.LEFT), hPaneContainer}, + new Component[]{horizontalLabel, hPaneContainer}, new Component[]{null, null}, new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Style_Alignment_Pane_Vertical") + " ", SwingConstants.RIGHT), vPaneContainer}, new Component[]{null, null} @@ -304,6 +308,7 @@ public class AlignmentPane extends AbstractBasicStylePane implements GlobalNameO * * @param style the new style. */ + @Override public void populateBean(Style style) { hAlignmentPane.setSelectedItem(BaseUtils.getAlignment4Horizontal(style)); vAlignmentPane.setSelectedItem(style.getVerticalAlignment()); From e83ea53ce116a7df078d0a1ae15e3c47a1b608b1 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 15 May 2019 15:13:03 +0800 Subject: [PATCH 08/15] =?UTF-8?q?REPORT-14835=20=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E8=87=AA=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gui/date/SingleObjectComboBoxModel.java | 4 +- .../com/fr/design/gui/date/UIDatePicker.java | 16 +++- .../design/mainframe/vcs/ui/ActionLabel.java | 79 +++++++++++++++++++ 3 files changed, 94 insertions(+), 5 deletions(-) create mode 100755 designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ActionLabel.java diff --git a/designer-base/src/main/java/com/fr/design/gui/date/SingleObjectComboBoxModel.java b/designer-base/src/main/java/com/fr/design/gui/date/SingleObjectComboBoxModel.java index 788d1104e..62cf79347 100644 --- a/designer-base/src/main/java/com/fr/design/gui/date/SingleObjectComboBoxModel.java +++ b/designer-base/src/main/java/com/fr/design/gui/date/SingleObjectComboBoxModel.java @@ -1,6 +1,7 @@ package com.fr.design.gui.date; import com.fr.log.FineLoggerFactory; +import com.fr.stable.StringUtils; import javax.swing.AbstractListModel; import javax.swing.ComboBoxModel; @@ -9,7 +10,7 @@ import java.util.Date; public class SingleObjectComboBoxModel extends AbstractListModel implements ComboBoxModel { private SimpleDateFormat dateFormat; - private String selectedDate = ""; + private String selectedDate = StringUtils.EMPTY; public SingleObjectComboBoxModel() { } @@ -28,6 +29,7 @@ public class SingleObjectComboBoxModel extends AbstractListModel implements Comb public void setSelectedItem(Object anItem) { if (anItem == null) { + selectedDate = StringUtils.EMPTY; return; } if (anItem instanceof Date) { diff --git a/designer-base/src/main/java/com/fr/design/gui/date/UIDatePicker.java b/designer-base/src/main/java/com/fr/design/gui/date/UIDatePicker.java index aa9cabd49..a48f5a59d 100644 --- a/designer-base/src/main/java/com/fr/design/gui/date/UIDatePicker.java +++ b/designer-base/src/main/java/com/fr/design/gui/date/UIDatePicker.java @@ -6,6 +6,7 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.ComparatorUtils; import com.fr.log.FineLoggerFactory; +import com.fr.stable.StringUtils; import javax.swing.BorderFactory; import javax.swing.JComboBox; @@ -156,8 +157,12 @@ public class UIDatePicker extends UIComboBox implements Serializable { /** * 设置当前选择的日期 */ - public void setSelectedDate(Date date) throws ParseException { - this.setSelectedItem(dateFormat.format(date)); + public void setSelectedDate(Date date) { + if (date == null) { + this.setSelectedItem(null); + } else { + this.setSelectedItem(dateFormat.format(date)); + } } public void setSelectedItem(Object anObject) { @@ -215,8 +220,11 @@ public class UIDatePicker extends UIComboBox implements Serializable { try { String strDate = comboBox.getSelectedItem().toString(); synchronized (this) { - Date selectionDate = dateFormat.parse(strDate); - calendarPanel.setSelectedDate(selectionDate); + Date selectionDate = new Date(); + if (StringUtils.isNotBlank(strDate)) { + selectionDate = dateFormat.parse(strDate); + } + calendarPanel.setSelectedDate(selectionDate); calendarPanel.updateHMS(); } } catch (Exception e) { diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ActionLabel.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ActionLabel.java new file mode 100755 index 000000000..973846bc5 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ActionLabel.java @@ -0,0 +1,79 @@ +package com.fr.design.mainframe.vcs.ui; + +import com.fr.design.gui.ilable.UILabel; + +import javax.swing.event.MouseInputAdapter; +import java.awt.Color; +import java.awt.Cursor; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseEvent; + +/** + * Action label + */ +public class ActionLabel extends UILabel { + private ActionListener actionListener; + private Color color; + + private MouseInputAdapter mouseInputAdapter = new MouseInputAdapter() { + public void mouseClicked(MouseEvent e) { + } + + public void mousePressed(MouseEvent e) { + } + + public void mouseReleased(MouseEvent evt) { + Object source = evt.getSource(); + + if (source instanceof UILabel) { + //Action. + if (actionListener != null) { + ActionEvent actionEvent = new ActionEvent(source, 99, ""); + actionListener.actionPerformed(actionEvent); + } + } + } + + public void mouseEntered(MouseEvent evt) { + Object source = evt.getSource(); + + if (source instanceof UILabel) { + ((UILabel) source).setCursor(new Cursor(Cursor.HAND_CURSOR)); + } + } + + public void mouseExited(MouseEvent evt) { + Object source = evt.getSource(); + + if (source instanceof UILabel) { + ((UILabel) source).setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); + } + } + + public void mouseDragged(MouseEvent e) { + } + + public void mouseMoved(MouseEvent evt) { + Object source = evt.getSource(); + + if (source instanceof UILabel) { + ((UILabel) source).setCursor(new Cursor(Cursor.HAND_CURSOR)); + } + } + }; + + public ActionLabel(String text, Color color) { + super(text); + + this.color = color; + this.setForeground(color); + this.addMouseListener(mouseInputAdapter); + this.addMouseMotionListener(mouseInputAdapter); + } + + public void addActionListener(ActionListener actionListener) { + this.actionListener = actionListener; + } + +} \ No newline at end of file From 095c0745f1bad9a1bf8496ae7b14e00eab01c9d1 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 15 May 2019 15:14:31 +0800 Subject: [PATCH 09/15] rt --- .../src/main/java/com/fr/design/gui/date/UIDatePicker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/date/UIDatePicker.java b/designer-base/src/main/java/com/fr/design/gui/date/UIDatePicker.java index a48f5a59d..fb44f618f 100644 --- a/designer-base/src/main/java/com/fr/design/gui/date/UIDatePicker.java +++ b/designer-base/src/main/java/com/fr/design/gui/date/UIDatePicker.java @@ -157,7 +157,7 @@ public class UIDatePicker extends UIComboBox implements Serializable { /** * 设置当前选择的日期 */ - public void setSelectedDate(Date date) { + public void setSelectedDate(Date date) throws ParseException { if (date == null) { this.setSelectedItem(null); } else { From 46f5da34b9e6e47c4587cbce3d4998f445894b27 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 15 May 2019 15:19:50 +0800 Subject: [PATCH 10/15] =?UTF-8?q?=E4=BF=AE=E6=94=B9editor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/editor/editor/DateEditor.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/designer-base/src/main/java/com/fr/design/editor/editor/DateEditor.java b/designer-base/src/main/java/com/fr/design/editor/editor/DateEditor.java index 3b1abe6f0..c40161ba6 100644 --- a/designer-base/src/main/java/com/fr/design/editor/editor/DateEditor.java +++ b/designer-base/src/main/java/com/fr/design/editor/editor/DateEditor.java @@ -153,6 +153,10 @@ public class DateEditor extends Editor { this.uiDatePicker.setSelectedItem(new Date()); } + public UIDatePicker getUiDatePicker() { + return uiDatePicker; + } + /** * Request focus */ From 59cb8283b705161e915df771e6475c246c5e69cc Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 15 May 2019 15:36:27 +0800 Subject: [PATCH 11/15] =?UTF-8?q?REPORT-14835=20=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/vcs/ui/FileVersionDialog.java | 31 ++++++++++++---- .../mainframe/vcs/ui/VcsDateEditor.java | 37 +++++++++++++++++++ 2 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsDateEditor.java diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/FileVersionDialog.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/FileVersionDialog.java index 33076a07f..96232b7bc 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/FileVersionDialog.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/FileVersionDialog.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.vcs.ui; +import com.fr.analysis.cloud.DateUtils; import com.fr.design.dialog.UIDialog; import com.fr.design.editor.editor.DateEditor; import com.fr.design.gui.date.UIDatePicker; @@ -14,6 +15,7 @@ import com.fr.workspace.WorkContext; import com.fr.workspace.server.vcs.VcsOperator; import javax.swing.AbstractAction; +import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.JPanel; import java.awt.BorderLayout; @@ -45,7 +47,7 @@ public class FileVersionDialog extends UIDialog { upBox.setBorder(VcsHelper.EMPTY_BORDER); upBox.add(new UILabel(Toolkit.i18nText("Fine-Design_Vcs_buildTime") + " ")); upBox.add(Box.createHorizontalGlue()); - dateEditor = new DateEditor(new Date(), true, StringUtils.EMPTY, UIDatePicker.STYLE_CN_DATE1); + dateEditor = new VcsDateEditor(new Date(), true, StringUtils.EMPTY, UIDatePicker.STYLE_CN_DATE1); upBox.add(dateEditor); Box downBox = Box.createHorizontalBox(); downBox.setBorder(VcsHelper.EMPTY_BORDER); @@ -62,8 +64,10 @@ public class FileVersionDialog extends UIDialog { @Override public void actionPerformed(ActionEvent e) { FileVersionDialog.this.setVisible(false); - Date date = dateEditor.getValue(); - List vcsEntities = WorkContext.getCurrent().get(VcsOperator.class).getFilterVersions(fileName, date, new Date(date.getTime() + DELAY), textField.getText()); + Date editorDate = dateEditor.getValue(); + Date start = editorDate == null ? new Date(0) : editorDate; + Date end = editorDate == null ? DateUtils.getLastHour() : new Date(start.getTime() + DELAY); + List vcsEntities = WorkContext.getCurrent().get(VcsOperator.class).getFilterVersions(fileName, start, end, textField.getText()); FileVersionTable.getInstance().updateModel(1, vcsEntities); } @@ -74,16 +78,29 @@ public class FileVersionDialog extends UIDialog { FileVersionDialog.this.setVisible(false); } }); + ActionLabel resetLabel = new ActionLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Vcs_resetValue"), VcsHelper.COPY_VERSION_BTN_COLOR); + resetLabel.setBorder(BorderFactory.createEmptyBorder(10, 160, 0, 10)); + resetLabel.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + dateEditor.setValue(null); + textField.setText(null); + FileVersionDialog.this.repaint(); + } + }); panel.add(upBox, BorderLayout.NORTH); panel.add(downBox, BorderLayout.CENTER); panel.add(buttonPane, BorderLayout.SOUTH); - add(panel); - setSize(new Dimension(230, 105)); - centerWindow(this); + JPanel filterPane = new JPanel(new BorderLayout()); + filterPane.add(resetLabel, BorderLayout.NORTH); + filterPane.add(panel, BorderLayout.CENTER); + add(filterPane); + setSize(new Dimension(230, 125)); + centerWindow(frame); } private void centerWindow(Window window) { - window.setLocation(0, 95); + this.setLocation(window.getX(), 95); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsDateEditor.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsDateEditor.java new file mode 100644 index 000000000..74b65ecfe --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsDateEditor.java @@ -0,0 +1,37 @@ +package com.fr.design.mainframe.vcs.ui; + +import com.fr.design.editor.editor.DateEditor; +import com.fr.log.FineLoggerFactory; + +import java.text.ParseException; +import java.util.Date; + +/** + * Created by XiaXiang on 2019/5/14. + */ +public class VcsDateEditor extends DateEditor { + private Date tempValue; + + public VcsDateEditor(Date value, boolean format, String name, int dateFormat) { + super(value, format, name, dateFormat); + this.tempValue = value; + } + + @Override + public Date getValue() { + if (tempValue == null) { + return null; + } + return super.getValue(); + } + + @Override + public void setValue(Date value) { + this.tempValue = value; + try { + getUiDatePicker().setSelectedDate(value); + } catch (ParseException parseException) { + FineLoggerFactory.getLogger().error(parseException.getMessage(), parseException); + } + } +} From e20989d81d11a4cca4122d41670f55ed4a57d769 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 15 May 2019 15:38:44 +0800 Subject: [PATCH 12/15] rt --- .../java/com/fr/design/mainframe/vcs/ui/ActionLabel.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ActionLabel.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ActionLabel.java index 973846bc5..eb9f2ddba 100755 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ActionLabel.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ActionLabel.java @@ -10,7 +10,7 @@ import java.awt.event.ActionListener; import java.awt.event.MouseEvent; /** - * Action label + * Created by XiaXiang on 2019/5/15. */ public class ActionLabel extends UILabel { private ActionListener actionListener; @@ -76,4 +76,11 @@ public class ActionLabel extends UILabel { this.actionListener = actionListener; } + public Color getColor() { + return color; + } + + public void setColor(Color color) { + this.color = color; + } } \ No newline at end of file From bfb5abfc0db3684895511452123d9c991a8ae0e4 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 15 May 2019 16:01:13 +0800 Subject: [PATCH 13/15] =?UTF-8?q?=E6=94=B9=E4=B8=80=E4=B8=8Blabel=20?= =?UTF-8?q?=E7=BB=A7=E6=89=BF=20=E4=B8=8Bactionlabel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/vcs/ui/ActionLabel.java | 86 ------------------- .../mainframe/vcs/ui/FileVersionDialog.java | 2 +- .../fr/design/mainframe/vcs/ui/VcsLabel.java | 32 +++++++ 3 files changed, 33 insertions(+), 87 deletions(-) delete mode 100755 designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ActionLabel.java create mode 100755 designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsLabel.java diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ActionLabel.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ActionLabel.java deleted file mode 100755 index eb9f2ddba..000000000 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ActionLabel.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.fr.design.mainframe.vcs.ui; - -import com.fr.design.gui.ilable.UILabel; - -import javax.swing.event.MouseInputAdapter; -import java.awt.Color; -import java.awt.Cursor; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.MouseEvent; - -/** - * Created by XiaXiang on 2019/5/15. - */ -public class ActionLabel extends UILabel { - private ActionListener actionListener; - private Color color; - - private MouseInputAdapter mouseInputAdapter = new MouseInputAdapter() { - public void mouseClicked(MouseEvent e) { - } - - public void mousePressed(MouseEvent e) { - } - - public void mouseReleased(MouseEvent evt) { - Object source = evt.getSource(); - - if (source instanceof UILabel) { - //Action. - if (actionListener != null) { - ActionEvent actionEvent = new ActionEvent(source, 99, ""); - actionListener.actionPerformed(actionEvent); - } - } - } - - public void mouseEntered(MouseEvent evt) { - Object source = evt.getSource(); - - if (source instanceof UILabel) { - ((UILabel) source).setCursor(new Cursor(Cursor.HAND_CURSOR)); - } - } - - public void mouseExited(MouseEvent evt) { - Object source = evt.getSource(); - - if (source instanceof UILabel) { - ((UILabel) source).setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); - } - } - - public void mouseDragged(MouseEvent e) { - } - - public void mouseMoved(MouseEvent evt) { - Object source = evt.getSource(); - - if (source instanceof UILabel) { - ((UILabel) source).setCursor(new Cursor(Cursor.HAND_CURSOR)); - } - } - }; - - public ActionLabel(String text, Color color) { - super(text); - - this.color = color; - this.setForeground(color); - this.addMouseListener(mouseInputAdapter); - this.addMouseMotionListener(mouseInputAdapter); - } - - public void addActionListener(ActionListener actionListener) { - this.actionListener = actionListener; - } - - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } -} \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/FileVersionDialog.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/FileVersionDialog.java index 96232b7bc..15d8bae63 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/FileVersionDialog.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/FileVersionDialog.java @@ -78,7 +78,7 @@ public class FileVersionDialog extends UIDialog { FileVersionDialog.this.setVisible(false); } }); - ActionLabel resetLabel = new ActionLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Vcs_resetValue"), VcsHelper.COPY_VERSION_BTN_COLOR); + VcsLabel resetLabel = new VcsLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Vcs_resetValue"), VcsHelper.COPY_VERSION_BTN_COLOR); resetLabel.setBorder(BorderFactory.createEmptyBorder(10, 160, 0, 10)); resetLabel.addActionListener(new ActionListener() { @Override diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsLabel.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsLabel.java new file mode 100755 index 000000000..a0180a137 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsLabel.java @@ -0,0 +1,32 @@ +package com.fr.design.mainframe.vcs.ui; + + +import com.fr.design.gui.ilable.ActionLabel; +import com.fr.design.gui.ilable.UILabel; + +import java.awt.Color; +import java.awt.Graphics; + +/** + * Created by XiaXiang on 2019/5/15. + */ +public class VcsLabel extends ActionLabel { + + + public VcsLabel(String text, Color color) { + super(text); + this.setForeground(color); + } + + public void paintComponent(Graphics g) { + if (ui != null) { + Graphics scratchGraphics = (g == null) ? null : g.create(); + try { + ui.update(scratchGraphics, this); + } + finally { + scratchGraphics.dispose(); + } + } + } +} \ No newline at end of file From e416b91512e2bd2a787243d7eed6b8fd865ad05a Mon Sep 17 00:00:00 2001 From: richie Date: Thu, 16 May 2019 12:57:16 +0800 Subject: [PATCH 14/15] =?UTF-8?q?REPORT-17178=20JSBridge=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?=E4=BA=86=E9=83=A8=E5=88=86=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/upm/UpmBridge.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/designer-base/src/main/java/com/fr/design/upm/UpmBridge.java b/designer-base/src/main/java/com/fr/design/upm/UpmBridge.java index 3d0f28613..1e4d6a743 100644 --- a/designer-base/src/main/java/com/fr/design/upm/UpmBridge.java +++ b/designer-base/src/main/java/com/fr/design/upm/UpmBridge.java @@ -10,6 +10,7 @@ import com.fr.design.extra.PluginUtils; import com.fr.design.extra.exe.GetInstalledPluginsExecutor; import com.fr.design.extra.exe.GetPluginCategoriesExecutor; import com.fr.design.extra.exe.GetPluginFromStoreExecutor; +import com.fr.design.extra.exe.GetPluginPrefixExecutor; import com.fr.design.extra.exe.PluginLoginExecutor; import com.fr.design.extra.exe.ReadUpdateOnlineExecutor; import com.fr.design.extra.exe.SearchOnlineExecutor; @@ -107,6 +108,12 @@ public class UpmBridge { callback.invoke(window, StringUtils.EMPTY); } + @JSBridge + public void getPluginPrefix(final JSFunction callback) { + UpmTaskWorker task = new UpmTaskWorker<>(new JSCallback(UpmBrowserExecutor.create(window, callback)), new GetPluginPrefixExecutor()); + task.execute(); + } + /** * 在线获取插件分类 * @@ -403,4 +410,27 @@ public class UpmBridge { FineLoggerFactory.getLogger().info(e.getMessage()); } } + + /** + * 使用系统浏览器打开网页 + * @param url 要打开的网页 + */ + @JSBridge + public void openShopUrlAtWebBrowser(String url) { + if (Desktop.isDesktopSupported()) { + try { + //创建一个URI实例,注意不是URL + URI uri = URI.create(url); + //获取当前系统桌面扩展 + Desktop desktop = Desktop.getDesktop(); + //判断系统桌面是否支持要执行的功能 + if (desktop.isSupported(Desktop.Action.BROWSE)) { + //获取系统默认浏览器打开链接 + desktop.browse(uri); + } + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + } + } } From 6f975b1733943dc78bf9f4f0c5e08920e60cf750 Mon Sep 17 00:00:00 2001 From: richie Date: Thu, 16 May 2019 20:03:02 +0800 Subject: [PATCH 15/15] =?UTF-8?q?KERNEL-493=20=E7=BB=9F=E4=B8=80=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E5=92=8C=E5=B9=B3=E5=8F=B0=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/actions/file/PreferencePane.java | 23 +++++--- .../actions/server/ConnectionListAction.java | 10 ++++ .../java/com/fr/design/ui/ModernUIPane.java | 9 +++ .../database/UniverseDatabaseComponent.java | 39 +++++++++++++ .../upm/database/UniverseDatabaseDialog.java | 32 +++++++++++ .../upm/database/UniverseDatabaseOpener.java | 36 ++++++++++++ .../upm/database/UniverseDatabasePane.java | 38 +++++++++++++ .../com/fr/design/upm/database/database.js | 57 +++++++++++++++++++ 8 files changed, 237 insertions(+), 7 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseComponent.java create mode 100644 designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseDialog.java create mode 100644 designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseOpener.java create mode 100644 designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabasePane.java create mode 100644 designer-base/src/main/resources/com/fr/design/upm/database/database.js diff --git a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java index 7afc21d31..447e6652b 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java @@ -138,6 +138,7 @@ public class PreferencePane extends BasicPane { private UISpinner cachingTemplateSpinner; private UICheckBox openDebugComboBox; private UICheckBox useOptimizedUPMCheckbox; + private UICheckBox useUniverseDBMCheckbox; private UICheckBox joinProductImproveCheckBox; private UICheckBox autoPushUpdateCheckBox; @@ -186,17 +187,22 @@ public class PreferencePane extends BasicPane { JPanel oraclePane = FRGUIPaneFactory.createTitledBorderPane("Oracle" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Oracle_All_Tables")); oracleSpace = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Show_All_Oracle_Tables")); oraclePane.add(oracleSpace); -// -// JPanel debuggerPane = FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Basic_Develop_Tools")); -// openDebugComboBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Open_Debug_Window")); -// debuggerPane.add(openDebugComboBox, BorderLayout.CENTER); -// advancePane.add(debuggerPane); + + JPanel debuggerPane = FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Basic_Develop_Tools")); + openDebugComboBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Open_Debug_Window")); + debuggerPane.add(openDebugComboBox, BorderLayout.CENTER); + advancePane.add(debuggerPane); JPanel upmSelectorPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Update_Plugin_Manager")); useOptimizedUPMCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Use_New_Update_Plugin_Manager")); upmSelectorPane.add(useOptimizedUPMCheckbox); advancePane.add(upmSelectorPane); + JPanel dbmSelectorPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Database_Manager")); + useUniverseDBMCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Use_Universe_Database_Manager")); + dbmSelectorPane.add(useUniverseDBMCheckbox); + advancePane.add(dbmSelectorPane); + JPanel improvePane = FRGUIPaneFactory.createVerticalTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Product_Improve")); joinProductImproveCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Join_Product_Improve")); improvePane.add(joinProductImproveCheckBox); @@ -636,9 +642,11 @@ public class PreferencePane extends BasicPane { this.portEditor.setValue(new Integer(designerEnvManager.getEmbedServerPort())); -// openDebugComboBox.setSelected(designerEnvManager.isOpenDebug()); + openDebugComboBox.setSelected(designerEnvManager.isOpenDebug()); useOptimizedUPMCheckbox.setSelected(ServerPreferenceConfig.getInstance().isUseOptimizedUPM()); + useUniverseDBMCheckbox.setSelected(ServerPreferenceConfig.getInstance().isUseUniverseDBM()); + this.oracleSpace.setSelected(designerEnvManager.isOracleSystemSpace()); this.cachingTemplateSpinner.setValue(designerEnvManager.getCachingTemplateLimit()); this.joinProductImproveCheckBox.setSelected(designerEnvManager.isJoinProductImprove()); @@ -702,7 +710,7 @@ public class PreferencePane extends BasicPane { designerEnvManager.setJettyServerPort(portEditor.getValue().intValue()); -// designerEnvManager.setOpenDebug(openDebugComboBox.isSelected()); + designerEnvManager.setOpenDebug(openDebugComboBox.isSelected()); designerEnvManager.setOracleSystemSpace(this.oracleSpace.isSelected()); designerEnvManager.setCachingTemplateLimit((int) this.cachingTemplateSpinner.getValue()); @@ -737,6 +745,7 @@ public class PreferencePane extends BasicPane { @Override public void run() { ServerPreferenceConfig.getInstance().setUseOptimizedUPM(useOptimizedUPMCheckbox.isSelected()); + ServerPreferenceConfig.getInstance().setUseUniverseDBM(useUniverseDBMCheckbox.isSelected()); } @Override diff --git a/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java b/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java index 89f2ac3c3..5c76dbf18 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java @@ -1,6 +1,7 @@ package com.fr.design.actions.server; +import com.fr.config.ServerPreferenceConfig; import com.fr.data.impl.Connection; import com.fr.design.actions.UpdateAction; import com.fr.design.data.datapane.connect.ConnectionManagerPane; @@ -12,6 +13,7 @@ import com.fr.design.gui.NameInspector; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; import com.fr.design.menu.MenuKeySet; +import com.fr.design.upm.database.UniverseDatabaseOpener; import com.fr.file.ConnectionConfig; import com.fr.general.IOUtils; import com.fr.transaction.CallBackAdaptor; @@ -58,6 +60,14 @@ public class ConnectionListAction extends UpdateAction { * @param evt 事件 */ public void actionPerformed(ActionEvent evt) { + if (ServerPreferenceConfig.getInstance().isUseUniverseDBM()) { + UniverseDatabaseOpener.showUniverseDatabaseDialog(); + } else { + openDesignDatabaseManager(); + } + } + + private void openDesignDatabaseManager() { DesignerFrame designerFrame = DesignerContext.getDesignerFrame(); final ConnectionConfig datasourceManager = ConnectionConfig.getInstance(); final ConnectionManagerPane databaseManagerPane = new ConnectionManagerPane() { diff --git a/designer-base/src/main/java/com/fr/design/ui/ModernUIPane.java b/designer-base/src/main/java/com/fr/design/ui/ModernUIPane.java index 99a4fe97c..3e94fe6be 100644 --- a/designer-base/src/main/java/com/fr/design/ui/ModernUIPane.java +++ b/designer-base/src/main/java/com/fr/design/ui/ModernUIPane.java @@ -52,6 +52,8 @@ public class ModernUIPane extends BasicPane { toolbar.add(openDebugButton); UIButton reloadButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Reload")); toolbar.add(reloadButton); + UIButton closeButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Close_Window")); + toolbar.add(closeButton); openDebugButton.addActionListener(new ActionListener() { @Override @@ -66,6 +68,13 @@ public class ModernUIPane extends BasicPane { browser.reloadIgnoringCache(); } }); + + closeButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + SwingUtilities.getWindowAncestor(ModernUIPane.this).setVisible(false); + } + }); BrowserPreferences.setChromiumSwitches("--remote-debugging-port=9222"); initializeBrowser(); add(new BrowserView(browser), BorderLayout.CENTER); diff --git a/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseComponent.java b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseComponent.java new file mode 100644 index 000000000..106b1a0aa --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseComponent.java @@ -0,0 +1,39 @@ +package com.fr.design.upm.database; + +import com.fr.web.struct.AssembleComponent; +import com.fr.web.struct.Atom; +import com.fr.web.struct.browser.RequestClient; +import com.fr.web.struct.category.ScriptPath; +import com.fr.web.struct.category.StylePath; +import com.fr.web.struct.impl.FineUI; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019-05-16 + */ +public class UniverseDatabaseComponent extends AssembleComponent { + + public static final UniverseDatabaseComponent KEY = new UniverseDatabaseComponent(); + + private UniverseDatabaseComponent() { + + } + + @Override + public ScriptPath script(RequestClient req) { + return ScriptPath.build("/com/fr/design/upm/database/database.js"); + } + + @Override + public StylePath style(RequestClient req) { + return StylePath.EMPTY; + } + + @Override + public Atom[] refer() { + return new Atom[]{ + FineUI.KEY + }; + } +} diff --git a/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseDialog.java b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseDialog.java new file mode 100644 index 000000000..1fe983ea7 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseDialog.java @@ -0,0 +1,32 @@ +package com.fr.design.upm.database; + +import com.fr.design.dialog.BasicPane; +import com.fr.design.dialog.UIDialog; +import com.fr.design.utils.gui.GUICoreUtils; + +import javax.swing.*; +import java.awt.*; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019-05-16 + */ +public class UniverseDatabaseDialog extends UIDialog { + + public UniverseDatabaseDialog(Frame frame, BasicPane pane) { + super(frame); + setUndecorated(true); + JPanel panel = (JPanel) getContentPane(); + panel.setLayout(new BorderLayout()); + add(pane, BorderLayout.CENTER); + setSize(new Dimension(800, 500)); + GUICoreUtils.centerWindow(this); + setResizable(false); + } + + @Override + public void checkValid() throws Exception { + + } +} diff --git a/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseOpener.java b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseOpener.java new file mode 100644 index 000000000..dee5de0f5 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseOpener.java @@ -0,0 +1,36 @@ +package com.fr.design.upm.database; + +import com.fr.design.dialog.UIDialog; +import com.fr.design.mainframe.DesignerContext; + +import javax.swing.*; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019-05-16 + */ +public class UniverseDatabaseOpener { + + private static UIDialog dialog = null; + + public static UIDialog getDialog() { + return dialog; + } + + public static void showUniverseDatabaseDialog() { + UniverseDatabasePane upmPane = new UniverseDatabasePane(); + if (dialog == null) { + dialog = new UniverseDatabaseDialog(DesignerContext.getDesignerFrame(), upmPane); + } + dialog.setVisible(true); + } + + public static void closeWindow() { + if (dialog != null) { + dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + dialog.setVisible(false); + dialog = null; + } + } +} diff --git a/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabasePane.java b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabasePane.java new file mode 100644 index 000000000..ac53d9426 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabasePane.java @@ -0,0 +1,38 @@ +package com.fr.design.upm.database; + +import com.fr.design.dialog.BasicPane; +import com.fr.design.ui.ModernUIPane; +import com.teamdev.jxbrowser.chromium.JSValue; +import com.teamdev.jxbrowser.chromium.events.ScriptContextAdapter; +import com.teamdev.jxbrowser.chromium.events.ScriptContextEvent; + +import java.awt.*; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019-05-16 + */ +public class UniverseDatabasePane extends BasicPane { + + private ModernUIPane modernUIPane; + + @Override + protected String title4PopupWindow() { + return "Database"; + } + + public UniverseDatabasePane() { + setLayout(new BorderLayout()); + modernUIPane = new ModernUIPane.Builder() + .withComponent(UniverseDatabaseComponent.KEY) + .prepare(new ScriptContextAdapter() { + @Override + public void onScriptContextCreated(ScriptContextEvent event) { + JSValue window = event.getBrowser().executeJavaScriptAndReturnValue("window"); + } + }) + .build(); + add(modernUIPane, BorderLayout.CENTER); + } +} diff --git a/designer-base/src/main/resources/com/fr/design/upm/database/database.js b/designer-base/src/main/resources/com/fr/design/upm/database/database.js new file mode 100644 index 000000000..529aa92ff --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/upm/database/database.js @@ -0,0 +1,57 @@ +window.addEventListener("load", function (ev) { + var combo1 = BI.createWidget({ + type: "bi.vertical", + items: [ + { + type: "bi.text_value_combo", + text: "选项1", + width: 300, + items: [ + { + el: { + type: "bi.single_select_radio_item", + width: 290, + text: "选项1", + value: 1 + }, + text: "选项1", + value: 1, + lgap: 10 + }, + { + el: { + type: "bi.single_select_radio_item", + width: 290, + text: "选项2", + value: 2 + }, + lgap: 10, + text: "选项2", + value: 2 + }, + { + el: { + type: "bi.single_select_radio_item", + width: 290, + text: "选项3", + value: 3 + }, + lgap: 10, + text: "选项3", + value: 3 + } + ] + } + ] + }); + + BI.createWidget({ + type:"bi.absolute", + element: "body", + items: [{ + el: combo1, + left: 100, + top: 100 + }] + }); +}); \ No newline at end of file