From 24939bf44ab421791b0fd4f392cdd72803512e2c Mon Sep 17 00:00:00 2001 From: ju Date: Wed, 8 Aug 2018 11:28:25 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20master?= =?UTF-8?q?=E5=B1=8F=E8=94=BD=E5=9B=BD=E9=99=85=E5=8C=96=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/start/module/DesignerActivator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java index bac7d7247..5316eb8ff 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java @@ -123,9 +123,9 @@ public class DesignerActivator extends Activator { public void start() { List markers = rightCollectMutable(InterMutableKey.Path); for (LocaleMarker marker : markers) { - if (marker.match(LocaleScope.DESIGN)) { +// if (marker.match(LocaleScope.DESIGN)) { Toolkit.addResource(marker.getPath()); - } +// } } designerModuleStart(); preLoadPane(); From b4b0e01924fb7855aa988d7d4faefda4467e16e6 Mon Sep 17 00:00:00 2001 From: neil <459208047@qq.com> Date: Tue, 4 Sep 2018 16:19:54 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C=20?= =?UTF-8?q?=E5=86=B2=E7=AA=81=E4=BF=AE=E5=A4=8D.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/start/module/DesignerActivator.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java index 5316eb8ff..80edec701 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java @@ -27,7 +27,7 @@ import com.fr.design.gui.controlpane.NameObjectCreator; import com.fr.design.gui.controlpane.NameableCreator; import com.fr.design.hyperlink.ReportletHyperlinkPane; import com.fr.design.hyperlink.WebHyperlinkPane; -import com.fr.design.i18n.Toolkit; +import com.fr.design.i18n.DesignI18nImpl; import com.fr.design.javascript.EmailPane; import com.fr.design.javascript.JavaScriptImplPane; import com.fr.design.javascript.ParameterJavaScriptPane; @@ -123,9 +123,9 @@ public class DesignerActivator extends Activator { public void start() { List markers = rightCollectMutable(InterMutableKey.Path); for (LocaleMarker marker : markers) { -// if (marker.match(LocaleScope.DESIGN)) { - Toolkit.addResource(marker.getPath()); -// } + if (marker.match(LocaleScope.DESIGN)) { + DesignI18nImpl.getInstance().addResource(marker.getPath()); + } } designerModuleStart(); preLoadPane(); @@ -252,11 +252,11 @@ public class DesignerActivator extends Activator { private static NameableCreator[] hyperlinkTypes() { return new NameableCreator[]{ - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("FR-Hyperlink_Reportlet"), ReportletHyperlink.class, ReportletHyperlinkPane.ChartNoRename.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_Email"), EmailJavaScript.class, EmailPane.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Hyperlink-Web_link"), WebHyperlink.class, WebHyperlinkPane.ChartNoRename.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("JavaScript-Dynamic_Parameters"), ParameterJavaScript.class, ParameterJavaScriptPane.ChartNoRename.class), - new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("FR-Designer_JavaScript"), JavaScriptImpl.class, JavaScriptImplPane.ChartNoRename.class) + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Reportlet"), ReportletHyperlink.class, ReportletHyperlinkPane.ChartNoRename.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Email"), EmailJavaScript.class, EmailPane.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Hyperlink_Web_Link"), WebHyperlink.class, WebHyperlinkPane.ChartNoRename.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_JavaScript_Dynamic_Parameters"), ParameterJavaScript.class, ParameterJavaScriptPane.ChartNoRename.class), + new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JavaScript"), JavaScriptImpl.class, JavaScriptImplPane.ChartNoRename.class) }; } @@ -410,4 +410,4 @@ public class DesignerActivator extends Activator { unloadLogAppender(); DesignerSocketIO.close(); } -} \ No newline at end of file +} From 6d2eccd17459d858e80afc57c585d0068545caf7 Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 6 Sep 2018 10:39:16 +0800 Subject: [PATCH 3/8] =?UTF-8?q?REPORT-11123=20=E3=80=9010.0=E5=86=92?= =?UTF-8?q?=E7=83=9F=E3=80=91=E8=A1=A8=E5=8D=95=E9=A2=84=E8=A7=88=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E9=97=AE=E9=A2=98=EF=BC=8C=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E6=B2=A1=E5=8F=8D=E5=BA=94=EF=BC=88master=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E9=A2=84=E8=A7=88=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/mainframe/JTemplate.java | 4 +++- .../src/main/java/com/fr/design/preview/FormPreview.java | 3 +-- .../src/main/java/com/fr/design/preview/MobilePreview.java | 4 +--- .../src/main/java/com/fr/design/mainframe/JForm.java | 4 +--- .../src/main/java/com/fr/design/mainframe/JWorkBook.java | 7 ++----- 5 files changed, 8 insertions(+), 14 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java index 6f9383e4d..c0d41814c 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java @@ -16,6 +16,7 @@ import com.fr.design.actions.edit.RedoAction; import com.fr.design.actions.edit.UndoAction; import com.fr.design.actions.file.SaveAsTemplateAction; import com.fr.design.actions.file.SaveTemplateAction; +import com.fr.design.actions.file.WebPreviewUtils; import com.fr.design.constants.UIConstants; import com.fr.design.designer.TargetComponent; import com.fr.design.dialog.InformationWarnPane; @@ -1102,7 +1103,8 @@ public abstract class JTemplate> * @param provider 预览模式 */ public void previewMenuActionPerformed(PreviewProvider provider) { - + setPreviewType(provider); + WebPreviewUtils.preview(this, provider); } /** diff --git a/designer-base/src/main/java/com/fr/design/preview/FormPreview.java b/designer-base/src/main/java/com/fr/design/preview/FormPreview.java index d6206a2c0..8522d6773 100644 --- a/designer-base/src/main/java/com/fr/design/preview/FormPreview.java +++ b/designer-base/src/main/java/com/fr/design/preview/FormPreview.java @@ -1,7 +1,6 @@ package com.fr.design.preview; import com.fr.design.fun.impl.AbstractPreviewProvider; -import com.fr.locale.InterProviderFactory; /** @@ -13,7 +12,7 @@ public class FormPreview extends AbstractPreviewProvider { @Override public String nameForPopupItem() { - return InterProviderFactory.getProvider().getLocText("Fine-Design_Form_M_Form_Preview"); + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_M_Form_Preview"); } @Override diff --git a/designer-base/src/main/java/com/fr/design/preview/MobilePreview.java b/designer-base/src/main/java/com/fr/design/preview/MobilePreview.java index 4ab942501..c0f9e973d 100644 --- a/designer-base/src/main/java/com/fr/design/preview/MobilePreview.java +++ b/designer-base/src/main/java/com/fr/design/preview/MobilePreview.java @@ -1,8 +1,6 @@ package com.fr.design.preview; import com.fr.design.fun.impl.AbstractPreviewProvider; -import com.fr.general.Inter; - import java.util.HashMap; import java.util.Map; @@ -16,7 +14,7 @@ public class MobilePreview extends AbstractPreviewProvider { @Override public String nameForPopupItem() { - return Inter.getLocText("Fine-Design_Mobile_Preview"); + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_Preview"); } @Override diff --git a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java index 25fc777e6..b08a479e3 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java @@ -6,9 +6,7 @@ import com.fr.base.Parameter; import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignState; import com.fr.design.actions.core.WorkBookSupportable; -import com.fr.design.actions.file.WebPreviewUtils; import com.fr.design.cell.FloatElementsProvider; -import com.fr.design.constants.UIConstants; import com.fr.design.designer.TargetComponent; import com.fr.design.designer.beans.actions.CopyAction; import com.fr.design.designer.beans.actions.CutAction; @@ -938,7 +936,7 @@ public class JForm extends JTemplate implements BaseJForm { */ @Override public PreviewProvider[] supportPreview() { - return new PreviewProvider[]{new FormPreview(), new MobilePreview()}; + return new PreviewProvider[]{new FormPreview()}; } /** diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java b/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java index e60fa5978..b546d618b 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java @@ -10,7 +10,6 @@ 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.CSVExportAction; import com.fr.design.actions.file.export.EmbeddedExportExportAction; import com.fr.design.actions.file.export.ExcelExportAction; @@ -53,7 +52,6 @@ import com.fr.design.menu.ToolBarDef; import com.fr.design.module.DesignModuleFactory; import com.fr.design.parameter.ParameterDefinitePane; import com.fr.design.parameter.ParameterInputPane; -import com.fr.design.preview.MobilePreview; import com.fr.design.preview.PagePreview; import com.fr.design.preview.ViewPreview; import com.fr.design.preview.WriteEnhancePreview; @@ -891,7 +889,7 @@ public class JWorkBook extends JTemplate { public PreviewProvider[] supportPreview() { Set set = ExtraDesignClassManager.getInstance().getArray(PreviewProvider.MARK_STRING); return ArrayUtils.addAll(new PreviewProvider[]{ - new PagePreview(), new WritePreview(), new ViewPreview(), new WriteEnhancePreview(), new MobilePreview() + new PagePreview(), new WritePreview(), new ViewPreview(), new WriteEnhancePreview() }, set.toArray(new PreviewProvider[set.size()])); } @@ -924,8 +922,7 @@ public class JWorkBook extends JTemplate { */ @Override public void previewMenuActionPerformed(PreviewProvider provider) { - setPreviewType(provider); - WebPreviewUtils.preview(this, provider); + super.previewMenuActionPerformed(provider); } /** From fe66bd8aa18b782327909e1e3641e928cfe280e5 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Fri, 28 Sep 2018 12:38:58 +0800 Subject: [PATCH 4/8] =?UTF-8?q?REPORT-11590=20=E7=8E=AF=E5=A2=83=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E6=89=A7=E8=A1=8C=E5=AE=8C=E6=AF=95=E5=90=8E=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E9=80=89=E6=8B=A9=E5=AF=B9=E8=AF=9D=E6=A1=86=EF=BC=8C?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E6=97=B6=E7=8E=AF=E5=A2=83=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E5=92=8C9=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/EnvChangeEntrance.java | 87 +++++++++++++++---- 1 file changed, 72 insertions(+), 15 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java index 9ad3b4ab1..f75fb8b62 100644 --- a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java +++ b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java @@ -51,19 +51,28 @@ public class EnvChangeEntrance { }); } - private boolean envListOkAction(EnvListPane envListPane) { + private boolean envListOkAction(EnvListPane envListPane, PopTipStrategy strategy) { final String selectedName = envListPane.updateEnvManager(); - return switch2Env(selectedName); + return switch2Env(selectedName, strategy); } + /** + * 切换到指定名称的工作目录 + * + * @param envName 目标工作目录名称 + */ + public void switch2Env(final String envName) { + switch2Env(envName, PopTipStrategy.LATER); + } + /** * 切换到新环境 * * @param envName 新工作环境名称 * @return 是否成功 */ - public boolean switch2Env(final String envName) { + private boolean switch2Env(final String envName, PopTipStrategy strategy) { DesignerEnvManager envManager = DesignerEnvManager.getEnvManager(); DesignerWorkspaceInfo selectedEnv = envManager.getWorkspaceInfo(envName); @@ -71,8 +80,13 @@ public class EnvChangeEntrance { Workspace workspace = DesignerWorkspaceGenerator.generate(selectedEnv); boolean checkValid = workspace != null && selectedEnv.checkValid(); if (!checkValid) { - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Basic_Switch_Workspace_Failed"), - UIManager.getString("OptionPane.messageDialogTitle"), ERROR_MESSAGE, UIManager.getIcon("OptionPane.errorIcon")); + strategy.showTip(new PopTip() { + @Override + public void show() { + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Basic_Switch_Workspace_Failed"), + UIManager.getString("OptionPane.messageDialogTitle"), ERROR_MESSAGE, UIManager.getIcon("OptionPane.errorIcon")); + } + }); return false; } WorkContext.switchTo(workspace, new WorkContextCallback() { @@ -91,13 +105,24 @@ public class EnvChangeEntrance { } catch (AuthException | RegistEditionException e) { // String title = Toolkit.i18nText("Fine-Design_Basic_Remote_Connect_Auth_Failed"); // String title = Toolkit.i18nText("Fine-Design_Basic_Lic_Does_Not_Support_Remote"); - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Basic_Switch_Workspace_Failed"), - UIManager.getString("OptionPane.messageDialogTitle"), ERROR_MESSAGE, UIManager.getIcon("OptionPane.errorIcon")); + strategy.showTip(new PopTip() { + @Override + public void show() { + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Basic_Switch_Workspace_Failed"), + UIManager.getString("OptionPane.messageDialogTitle"), ERROR_MESSAGE, UIManager.getIcon("OptionPane.errorIcon")); + } + }); return false; } catch (Exception exception) { FineLoggerFactory.getLogger().error(exception.getMessage(), exception); - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Basic_Switch_Workspace_Failed"), - UIManager.getString("OptionPane.messageDialogTitle"), ERROR_MESSAGE, UIManager.getIcon("OptionPane.errorIcon")); + strategy.showTip(new PopTip() { + @Override + public void show() { + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Basic_Switch_Workspace_Failed"), + UIManager.getString("OptionPane.messageDialogTitle"), ERROR_MESSAGE, UIManager.getIcon("OptionPane.errorIcon")); + } + }); + return false; } TemplateTreePane.getInstance().refreshDockingView(); @@ -131,13 +156,11 @@ public class EnvChangeEntrance { @Override public void doOk() { - envListDialog.dispose(); - envListOkAction(envListPane); + envListOkAction(envListPane, PopTipStrategy.LATER); } @Override public void doCancel() { - envListDialog.dispose(); } }); @@ -155,11 +178,9 @@ public class EnvChangeEntrance { @Override public void doOk() { - - if (!envListOkAction(envListPane)) { + if (!envListOkAction(envListPane, PopTipStrategy.NOW)) { System.exit(0); } - } @Override @@ -170,4 +191,40 @@ public class EnvChangeEntrance { envListDialog.setVisible(true); } + + /** + * 提示显示策略 + */ + enum PopTipStrategy { + + /** + * 切换失败,就马上提示失败,不关闭选择列表对话框 + */ + NOW { + @Override + void showTip(PopTip tip) { + tip.show(); + } + }, + /** + * 切换失败,自动关闭选择列表对话框,然后提示切换失败 + */ + LATER { + @Override + void showTip(final PopTip tip) { + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + tip.show(); + } + }); + } + }; + + abstract void showTip(PopTip tip); + } + + interface PopTip { + void show(); + } } From 3c28ceda91422a74ffb70d4166b77848d55294df Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Fri, 28 Sep 2018 16:17:09 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E5=A4=8D=E7=94=A8=E5=8E=9F=E6=9C=89=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shortcutfactory/OldShortCutFactory.java | 7 +++--- .../shortcutfactory/ShortCutFactory.java | 7 +++--- .../design/gui/frpane/BaseHyperlinkGroup.java | 14 ++++++++---- .../gui/frpane/HyperLinkGroupFilter.java | 22 ------------------- .../design/gui/frpane/HyperlinkGroupType.java | 16 +++++++++++++- .../gui/frpane/UICorrelationComboBoxPane.java | 5 +++-- .../fr/design/module/ChartHyperlinkGroup.java | 22 +++++++++---------- 7 files changed, 46 insertions(+), 47 deletions(-) delete mode 100644 designer-base/src/main/java/com/fr/design/gui/frpane/HyperLinkGroupFilter.java diff --git a/designer-base/src/main/java/com/fr/design/gui/controlpane/shortcutfactory/OldShortCutFactory.java b/designer-base/src/main/java/com/fr/design/gui/controlpane/shortcutfactory/OldShortCutFactory.java index 9ea8bb8fc..d0cf10f7e 100644 --- a/designer-base/src/main/java/com/fr/design/gui/controlpane/shortcutfactory/OldShortCutFactory.java +++ b/designer-base/src/main/java/com/fr/design/gui/controlpane/shortcutfactory/OldShortCutFactory.java @@ -5,13 +5,14 @@ import com.fr.design.actions.UpdateAction; import com.fr.design.gui.controlpane.NameableCreator; import com.fr.design.gui.controlpane.ShortCut4JControlPane; import com.fr.design.gui.controlpane.ShortCutListenerProvider; -import com.fr.design.gui.frpane.HyperLinkGroupFilter; import com.fr.design.menu.LineSeparator; import com.fr.design.menu.MenuDef; import com.fr.design.menu.ShortCut; import com.fr.design.module.DesignModuleFactory; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; +import com.fr.js.JavaScript; +import com.fr.stable.Filter; import javax.swing.Icon; import java.awt.event.ActionEvent; @@ -84,8 +85,8 @@ public class OldShortCutFactory extends AbstractShortCutFactory { private void wrapActionListener(NameableCreator[] creators) { for (final NameableCreator creator : creators) { - HyperLinkGroupFilter filter = DesignModuleFactory.getHyperlinkGroupType().getFilter(); - if (!filter.filter(creator.getHyperlink())) { + Filter> filter = DesignModuleFactory.getHyperlinkGroupType().getFilter(); + if (!filter.accept(creator.getHyperlink())) { continue; } boolean isTrue = ComparatorUtils.equals(creator.menuName(), Inter.getLocText("Datasource-Stored_Procedure")) || diff --git a/designer-base/src/main/java/com/fr/design/gui/controlpane/shortcutfactory/ShortCutFactory.java b/designer-base/src/main/java/com/fr/design/gui/controlpane/shortcutfactory/ShortCutFactory.java index a09d859f6..7d1699543 100644 --- a/designer-base/src/main/java/com/fr/design/gui/controlpane/shortcutfactory/ShortCutFactory.java +++ b/designer-base/src/main/java/com/fr/design/gui/controlpane/shortcutfactory/ShortCutFactory.java @@ -6,13 +6,14 @@ import com.fr.design.actions.core.ActionFactory; import com.fr.design.gui.controlpane.NameableCreator; import com.fr.design.gui.controlpane.ShortCut4JControlPane; import com.fr.design.gui.controlpane.ShortCutListenerProvider; -import com.fr.design.gui.frpane.HyperLinkGroupFilter; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.menu.LineSeparator; import com.fr.design.menu.MenuDef; import com.fr.design.menu.ShortCut; import com.fr.design.module.DesignModuleFactory; import com.fr.general.ComparatorUtils; +import com.fr.js.JavaScript; +import com.fr.stable.Filter; import com.fr.stable.StringUtils; import javax.swing.AbstractButton; @@ -141,8 +142,8 @@ public class ShortCutFactory extends AbstractShortCutFactory { private void wrapActionListener(NameableCreator[] creators) { for (final NameableCreator creator : creators) { - HyperLinkGroupFilter filter = DesignModuleFactory.getHyperlinkGroupType().getFilter(); - if (!filter.filter(creator.getHyperlink())) { + Filter> filter = DesignModuleFactory.getHyperlinkGroupType().getFilter(); + if (!filter.accept(creator.getHyperlink())) { continue; } boolean isTrue = ComparatorUtils.equals(creator.menuName(), com.fr.design.i18n.Toolkit.i18nText("Datasource-Stored_Procedure")) || diff --git a/designer-base/src/main/java/com/fr/design/gui/frpane/BaseHyperlinkGroup.java b/designer-base/src/main/java/com/fr/design/gui/frpane/BaseHyperlinkGroup.java index f971e9ae2..898101698 100644 --- a/designer-base/src/main/java/com/fr/design/gui/frpane/BaseHyperlinkGroup.java +++ b/designer-base/src/main/java/com/fr/design/gui/frpane/BaseHyperlinkGroup.java @@ -3,6 +3,7 @@ package com.fr.design.gui.frpane; import com.fr.design.gui.controlpane.NameableCreator; import com.fr.design.module.DesignModuleFactory; import com.fr.js.JavaScript; +import com.fr.stable.Filter; /** * 基础的超级链接类型, 不包括图表相关超链. @@ -22,15 +23,20 @@ public class BaseHyperlinkGroup implements HyperlinkGroupType { } @Override - public HyperLinkGroupFilter getFilter() { - return new HyperLinkGroupFilter() { + public Filter> getFilter() { + return new Filter>() { @Override - public boolean filter(Class clazz) { + public boolean accept(Class aClass) { return true; } + }; + } + @Override + public Filter getOldFilter() { + return new Filter() { @Override - public boolean filter(Object object) { + public boolean accept(Object object) { return true; } }; diff --git a/designer-base/src/main/java/com/fr/design/gui/frpane/HyperLinkGroupFilter.java b/designer-base/src/main/java/com/fr/design/gui/frpane/HyperLinkGroupFilter.java deleted file mode 100644 index cb4096574..000000000 --- a/designer-base/src/main/java/com/fr/design/gui/frpane/HyperLinkGroupFilter.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.fr.design.gui.frpane; - -import com.fr.js.JavaScript; - -public interface HyperLinkGroupFilter { - - /** - * @param clazz clazz - * @return 是否可用,返回true表示可用,返回false表示不可用 - */ - boolean filter(Class clazz); - - /** - * 兼容老图表 - * - * @param object object - * @return 是否可用,返回true表示可用,返回false表示不可用 - * @see HyperLinkGroupFilter#filter(Class) - */ - boolean filter(Object object); - -} diff --git a/designer-base/src/main/java/com/fr/design/gui/frpane/HyperlinkGroupType.java b/designer-base/src/main/java/com/fr/design/gui/frpane/HyperlinkGroupType.java index 48b5c1282..8db0b9b94 100644 --- a/designer-base/src/main/java/com/fr/design/gui/frpane/HyperlinkGroupType.java +++ b/designer-base/src/main/java/com/fr/design/gui/frpane/HyperlinkGroupType.java @@ -1,6 +1,8 @@ package com.fr.design.gui.frpane; import com.fr.design.gui.controlpane.NameableCreator; +import com.fr.js.JavaScript; +import com.fr.stable.Filter; /** * 超级链接 支持的类型 种类. @@ -18,6 +20,18 @@ public interface HyperlinkGroupType { NameableCreator[] getHyperlinkCreators(); - HyperLinkGroupFilter getFilter(); + /** + * 图表超链过滤 + * + * @return 图表超链过滤 + */ + Filter> getFilter(); + + /** + * 老图表超链的过滤 + * + * @return 老图表超链的过滤 + */ + Filter getOldFilter(); } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/gui/frpane/UICorrelationComboBoxPane.java b/designer-base/src/main/java/com/fr/design/gui/frpane/UICorrelationComboBoxPane.java index 5bf504444..79dece505 100644 --- a/designer-base/src/main/java/com/fr/design/gui/frpane/UICorrelationComboBoxPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/frpane/UICorrelationComboBoxPane.java @@ -23,6 +23,7 @@ import com.fr.js.EmailJavaScript; import com.fr.js.ReportletHyperlink; import com.fr.js.WebHyperlink; import com.fr.stable.ArrayUtils; +import com.fr.stable.Filter; import com.fr.stable.StringUtils; import javax.swing.JFrame; @@ -95,8 +96,8 @@ public class UICorrelationComboBoxPane extends JPanel implements UIObserver { if (values.size() > 1) { for (UIMenuNameableCreator value : values) { final String itemName = value.getName(); - HyperLinkGroupFilter filter = DesignModuleFactory.getHyperlinkGroupType().getFilter(); - if (!filter.filter(value.getObj())) { + Filter filter = DesignModuleFactory.getHyperlinkGroupType().getOldFilter(); + if (!filter.accept(value.getObj())) { continue; } UIMenuItem item = new UIMenuItem(itemName); diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartHyperlinkGroup.java b/designer-chart/src/main/java/com/fr/design/module/ChartHyperlinkGroup.java index 33d15367d..4e5037109 100644 --- a/designer-chart/src/main/java/com/fr/design/module/ChartHyperlinkGroup.java +++ b/designer-chart/src/main/java/com/fr/design/module/ChartHyperlinkGroup.java @@ -11,13 +11,13 @@ import com.fr.design.file.HistoryTemplateListCache; import com.fr.design.gui.controlpane.NameObjectCreator; import com.fr.design.gui.controlpane.NameableCreator; import com.fr.design.gui.frpane.BaseHyperlinkGroup; -import com.fr.design.gui.frpane.HyperLinkGroupFilter; import com.fr.design.mainframe.BaseJForm; import com.fr.design.mainframe.JTemplate; import com.fr.general.ComparatorUtils; import com.fr.js.FormHyperlinkProvider; import com.fr.js.JavaScript; import com.fr.stable.ArrayUtils; +import com.fr.stable.Filter; import com.fr.stable.bridge.StableFactory; /** @@ -46,10 +46,10 @@ public class ChartHyperlinkGroup extends BaseHyperlinkGroup { } @Override - public HyperLinkGroupFilter getFilter() { - return new HyperLinkGroupFilter() { + public Filter> getFilter() { + return new Filter>() { @Override - public boolean filter(Class clazz) { + public boolean accept(Class clazz) { JTemplate template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); if (template == null) { return false; @@ -78,25 +78,23 @@ public class ChartHyperlinkGroup extends BaseHyperlinkGroup { } return true; } + }; + } - /** - * 兼容老图表 - * @param object - * @return - */ + @Override + public Filter getOldFilter() { + return new Filter() { @Override - public boolean filter(Object object) { + public boolean accept(Object object) { JTemplate template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); if (template == null) { return false; } - if (template.isJWorkBook()) { // 如果是普通报表单元格,那么没有 FormHyperlink 选项 FormHyperlinkProvider formHyperlink = StableFactory.getMarkedInstanceObjectFromClass(FormHyperlinkProvider.XML_TAG, FormHyperlinkProvider.class); //返回true表示可用,返回false表示不可用 return !ComparatorUtils.equals(object.getClass(), formHyperlink.getClass()); - } else { // 如果是决策报表 Class[] classes = new Class[]{ChartHyperRelateCellLink.class, ChartHyperRelateFloatLink.class}; From 49e23ae96eec8cfe1df818db2782b613417183d1 Mon Sep 17 00:00:00 2001 From: zheng Date: Sat, 29 Sep 2018 16:10:52 +0800 Subject: [PATCH 6/8] =?UTF-8?q?CHART-3122=20=E6=B5=81=E5=90=91=E5=9C=B0?= =?UTF-8?q?=E7=90=83=E4=B8=8D=E6=94=AF=E6=8C=81=E8=B6=85=E9=93=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/extended/chart/ExtendedOtherPane.java | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/extended/chart/ExtendedOtherPane.java b/designer-chart/src/main/java/com/fr/extended/chart/ExtendedOtherPane.java index a92e100e5..31aa2d003 100644 --- a/designer-chart/src/main/java/com/fr/extended/chart/ExtendedOtherPane.java +++ b/designer-chart/src/main/java/com/fr/extended/chart/ExtendedOtherPane.java @@ -16,22 +16,24 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.BorderLayout; import java.awt.Component; +import java.util.Arrays; /** * Created by shine on 2018/3/12. */ -public class ExtendedOtherPane extends AbstractChartAttrPane { +public class ExtendedOtherPane extends AbstractChartAttrPane { private ExtendedChartHyperLinkPane hyperLinkPane; private UIButtonGroup refreshEnabled; private UISpinner autoRefreshTime; private JPanel contentPane; - protected AbstractChart getAbstractChart(Chart chart) { - if (chart != null && chart instanceof AbstractChart) { - return (AbstractChart) chart; + private T chart; + + protected void setChart(Chart chart) { + if (chart instanceof AbstractChart) { + this.chart = (T) chart; } - return null; } @Override @@ -40,7 +42,7 @@ public class ExtendedOtherPane extends AbstractChartAttrPane { return; } - AbstractChart chart = getAbstractChart(collection.getSelectedChart()); + setChart(collection.getSelectedChart()); if (chart != null) { hyperLinkPane.populateBean(chart); @@ -57,7 +59,7 @@ public class ExtendedOtherPane extends AbstractChartAttrPane { return; } - AbstractChart chart = getAbstractChart(collection.getSelectedChart()); + setChart(collection.getSelectedChart()); if (chart != null) { hyperLinkPane.updateBean(chart); @@ -77,16 +79,20 @@ public class ExtendedOtherPane extends AbstractChartAttrPane { double f = TableLayout.FILL; double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; double[] columnSize = {f, e}; - double[] rowSize = {p, p, p, p, p, p}; - - Component[][] components = new Component[][]{ - new Component[]{createRefreshPane(), null}, - new Component[]{createHyperlinkPane(), null} - }; + Component[][] components = getComponents(createRefreshPane(), createHyperlinkPane()); + double[] rowSize = new double[components.length]; + Arrays.fill(rowSize, p); return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); } + protected Component[][] getComponents(JPanel refresh, JPanel hyperlink) { + return new Component[][]{ + new Component[]{refresh, null}, + new Component[]{hyperlink, null} + }; + } + @Override public String getIconPath() { return null; From 6675c853b82799b507df9b4c1364e8f88ba1cd87 Mon Sep 17 00:00:00 2001 From: ju Date: Sat, 29 Sep 2018 16:55:43 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=A5=E9=87=8Dfindbugs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/gui/itree/filetree/FileNodeComparator.java | 11 ++++++----- .../src/main/java/com/fr/file/FILEChooserPane.java | 10 ++-------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileNodeComparator.java b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileNodeComparator.java index 68dbec78c..bf4a5155c 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileNodeComparator.java +++ b/designer-base/src/main/java/com/fr/design/gui/itree/filetree/FileNodeComparator.java @@ -1,6 +1,6 @@ package com.fr.design.gui.itree.filetree; -import com.fr.file.filetree.LocalFileNodes; +import com.fr.base.FRContext; import com.fr.file.filetree.FileNode; import java.util.Comparator; @@ -59,13 +59,14 @@ public class FileNodeComparator implements Comparator { private int groupByFileType(FileNode nameNode1, FileNode nameNode2, int i) { - if (i < LocalFileNodes.FILE_TYPE.length) { - if (nameNode1.isFileType(LocalFileNodes.FILE_TYPE[i])) - if (nameNode2.isFileType(LocalFileNodes.FILE_TYPE[i])) + String[] supportTypes = FRContext.getFileNodes().getSupportedTypes(); + if (i < supportTypes.length) { + if (nameNode1.isFileType(supportTypes[i])) + if (nameNode2.isFileType(supportTypes[i])) return nameNode1.getName().toLowerCase().compareTo(nameNode2.getName().toLowerCase()); else return-1; - else if (nameNode2.isFileType(LocalFileNodes.FILE_TYPE[i])) + else if (nameNode2.isFileType(supportTypes[i])) return 1; else{ return groupByFileType(nameNode1, nameNode2, i+1); diff --git a/designer-base/src/main/java/com/fr/file/FILEChooserPane.java b/designer-base/src/main/java/com/fr/file/FILEChooserPane.java index 1e4ec0d65..f3f9c7d28 100644 --- a/designer-base/src/main/java/com/fr/file/FILEChooserPane.java +++ b/designer-base/src/main/java/com/fr/file/FILEChooserPane.java @@ -23,7 +23,6 @@ import com.fr.design.mainframe.DesignerFrame; import com.fr.design.mainframe.JTemplate; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.file.filetree.FileNode; -import com.fr.file.filetree.LocalFileNodes; import com.fr.file.filter.ChooseFileFilter; import com.fr.file.filter.FILEFilter; import com.fr.general.ComparatorUtils; @@ -693,14 +692,9 @@ public class FILEChooserPane extends BasicPane { String appName = ProductConstants.APP_NAME; JTemplate editing = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); if (editing == null || !editing.isChartBook()) { - String[] fileSuffix_local = LocalFileNodes.FILE_TYPE; - EnumSet fileExtensions = EnumSet.of(FileExtension.CPT, FileExtension.CPTX, FileExtension.FRM, FileExtension.FRMX, FileExtension.CHT); + if (type == JFileChooser.OPEN_DIALOG) { - if (WorkContext.getCurrent().isLocal()) { //本地连接 - this.addChooseFILEFilter(new ChooseFileFilter(fileSuffix_local, appName + Toolkit.i18nText("Fine-Design_Report_Template_File"))); - } else { - this.addChooseFILEFilter(new ChooseFileFilter(fileExtensions, appName + Toolkit.i18nText("Fine-Design_Report_Template_File"))); - } + this.addChooseFILEFilter(new ChooseFileFilter(FRContext.getFileNodes().getSupportedTypes(), appName + Toolkit.i18nText("Fine-Design_Report_Template_File"))); } // ben:filefilter设置初值为cpt过滤 From 294fddc2b0043482018a3b6ebbcf0d3abe7aef90 Mon Sep 17 00:00:00 2001 From: ju Date: Sat, 29 Sep 2018 19:27:59 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20=E6=94=B9?= =?UTF-8?q?=E4=B8=80=E9=83=A8=E5=88=86findbugs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/remote/ui/UserManagerPane.java | 4 +- .../manager/impl/RecentSearchManager.java | 40 ++++++------------- .../mainframe/socketio/DesignerSocketIO.java | 2 +- 3 files changed, 16 insertions(+), 30 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java b/designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java index 1e22dc808..8b8688e99 100644 --- a/designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java +++ b/designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java @@ -58,7 +58,7 @@ public class UserManagerPane extends BasicPane { /** * 每页个数 */ - private final int DEFAULT_NUM_EACH_PAGE = 50; + private static final int DEFAULT_NUM_EACH_PAGE = 50; /** * 获取的决策平台成员 @@ -171,7 +171,7 @@ public class UserManagerPane extends BasicPane { /** * 搜索关键词变更监听 */ - private DocumentListener documentListener = new DocumentListener() { + private transient DocumentListener documentListener = new DocumentListener() { @Override public void insertUpdate(DocumentEvent e) { keyWord = keyField.getText(); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecentSearchManager.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecentSearchManager.java index 866c2c734..0b48d7cf9 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecentSearchManager.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecentSearchManager.java @@ -45,9 +45,10 @@ import java.util.List; */ public class RecentSearchManager implements AlphaFineSearchProvider { private static final int MAX_SIZE = 100; - private static volatile RecentSearchManager instance; - IndexReader indexReader = null; - IndexSearcher indexSearcher = null; + + private static final RecentSearchManager INSTANCE = new RecentSearchManager(); + + private IndexReader indexReader = null; //索引存储路径 private String path = ProductConstants.getEnvHome() + File.separator + "searchIndex"; //分词器,暂时先用这个 @@ -57,25 +58,18 @@ public class RecentSearchManager implements AlphaFineSearchProvider { private IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_40, analyzer); private IndexWriter indexWriter = null; private SearchResult recentModelList; - private SearchResult modelList; - + public static RecentSearchManager getInstance() { - if (instance == null) { - synchronized (RecentSearchManager.class) { - if (instance == null) { - instance = new RecentSearchManager(); - instance.initWriter(); - } - } - } - return instance; + + return INSTANCE; } @Override public SearchResult getLessSearchResult(String[] searchText) { - this.modelList = new SearchResult(); - for (int j = 0; j < searchText.length; j++) { - recentModelList = getRecentModelList(searchText[j]); + + SearchResult modelList = new SearchResult(); + for (String aSearchText : searchText) { + recentModelList = getRecentModelList(aSearchText); } if (recentModelList != null && recentModelList.size() > 0) { modelList.add(new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine_Latest"))); @@ -92,8 +86,8 @@ public class RecentSearchManager implements AlphaFineSearchProvider { public SearchResult getMoreSearchResult(String searchText) { return new SearchResult(); } - - public synchronized SearchResult getRecentModelList(String searchText) { + + private synchronized SearchResult getRecentModelList(String searchText) { return searchBySort(searchText); } @@ -121,7 +115,6 @@ public class RecentSearchManager implements AlphaFineSearchProvider { try { indexWriter.close(); indexReader = DirectoryReader.open(directory); - indexSearcher = new IndexSearcher(indexReader); } catch (IOException e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } @@ -130,8 +123,6 @@ public class RecentSearchManager implements AlphaFineSearchProvider { /** * 添加模型 * - * @param searchKey - * @param cellModel */ public void addModel(String searchKey, AlphaCellModel cellModel) { if(cellModel == null){ @@ -151,8 +142,6 @@ public class RecentSearchManager implements AlphaFineSearchProvider { /** * 写文档,建立索引 - * - * @param doc */ private void writeDoc(Document doc) { try { @@ -166,9 +155,6 @@ public class RecentSearchManager implements AlphaFineSearchProvider { /** * 按序搜索 - * - * @param key - * @return */ private synchronized SearchResult searchBySort(String key) { recentModelList = new SearchResult(); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java index 3c04dff35..132d72d17 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java @@ -38,7 +38,7 @@ public class DesignerSocketIO { } private static Optional socketIO = Optional.absent(); - public static Status status = Status.Disconnected; + private static Status status = Status.Disconnected; private static final Emitter.Listener printLog = new Emitter.Listener() { @Override