From 1108edcbf34d66f548a9f392a81293b996a4534b Mon Sep 17 00:00:00 2001 From: "Yuan.Wang" <1536296691@qq.com> Date: Mon, 12 Oct 2020 10:54:15 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-38778=20=E5=8E=BB=E6=8E=89=E7=A4=BE?= =?UTF-8?q?=E5=8C=BA=E5=92=8C=E6=A8=A1=E6=9D=BF=E5=95=86=E5=9F=8E=E7=9A=84?= =?UTF-8?q?=E5=B0=8F=E7=BA=A2=E7=82=B9=EF=BC=8C=E4=BF=AE=E6=AD=A3=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=B7=A5=E5=8E=82=E7=B1=BB=E5=BC=95=E8=B5=B7=E7=9A=84?= =?UTF-8?q?bug=EF=BC=8C=E4=BF=AE=E6=94=B9=E9=A2=84=E8=A3=85=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/toolbar/ToolBarMenuDock.java | 9 ++------- .../main/java/com/fr/design/menu/SnapChatMenuDef.java | 6 ++++-- .../java/com/fr/design/menu/SnapChatUpdateAction.java | 6 ++---- .../com/fr/design/notification/SnapChatFactory.java | 11 +++++++++++ .../java/com/fr/design/notification/SnapChatKey.java | 11 ++++++++++- 5 files changed, 29 insertions(+), 14 deletions(-) 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 c81c6749f8..757d7be045 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 @@ -54,9 +54,7 @@ import com.fr.design.mainframe.ToolBarNewTemplatePane; import com.fr.design.menu.MenuDef; import com.fr.design.menu.SeparatorDef; import com.fr.design.menu.ShortCut; -import com.fr.design.menu.SnapChatMenuDef; import com.fr.design.menu.ToolBarDef; -import com.fr.design.notification.SnapChatAllTypes; import com.fr.design.os.impl.SupportOSImpl; import com.fr.design.remote.action.RemoteDesignAuthManagerAction; import com.fr.design.update.actions.SoftwareUpdateAction; @@ -655,11 +653,8 @@ public abstract class ToolBarMenuDock { } public MenuDef createCommunityMenuDef() { - - MenuDef menuDef = new SnapChatMenuDef( - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Community"), - 'C', - SnapChatAllTypes.Menu.BBS); + + MenuDef menuDef = new MenuDef(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Community"), 'C'); ShortCut[] otherCommunityShortCuts = createCommunityShortCuts(); for (ShortCut shortCut : otherCommunityShortCuts) { menuDef.addShortCut(shortCut); diff --git a/designer-base/src/main/java/com/fr/design/menu/SnapChatMenuDef.java b/designer-base/src/main/java/com/fr/design/menu/SnapChatMenuDef.java index 88757b6891..80ba40afeb 100644 --- a/designer-base/src/main/java/com/fr/design/menu/SnapChatMenuDef.java +++ b/designer-base/src/main/java/com/fr/design/menu/SnapChatMenuDef.java @@ -2,7 +2,6 @@ package com.fr.design.menu; import com.fr.design.gui.imenu.UIMenu; import com.fr.design.gui.imenu.UIScrollMenu; -import com.fr.design.notification.AbstractSnapChat; import com.fr.design.notification.SnapChat; import com.fr.design.notification.SnapChatConfig; import com.fr.design.notification.SnapChatFactory; @@ -24,21 +23,24 @@ public class SnapChatMenuDef extends MenuDef implements SnapChat { private SnapChatKey uniqueKey; private SnapChatMenuUI menuUI = new SnapChatMenuUI(this); - private SnapChat snapChat = SnapChatFactory.createSnapChat(true, uniqueKey); + private SnapChat snapChat ; public SnapChatMenuDef(String name, SnapChatKey uniqueKey) { super(name); this.uniqueKey = uniqueKey; + snapChat = SnapChatFactory.createSnapChat(true, uniqueKey); } public SnapChatMenuDef(Boolean rePaint, SnapChatKey uniqueKey) { super(rePaint); this.uniqueKey = uniqueKey; + snapChat = SnapChatFactory.createSnapChat(true, uniqueKey); } public SnapChatMenuDef(String name, char mnemonic, SnapChatKey uniqueKey) { super(name, mnemonic); this.uniqueKey = uniqueKey; + snapChat = SnapChatFactory.createSnapChat(true, uniqueKey); } @Override diff --git a/designer-base/src/main/java/com/fr/design/menu/SnapChatUpdateAction.java b/designer-base/src/main/java/com/fr/design/menu/SnapChatUpdateAction.java index 71fbc95a7d..8cc0734371 100644 --- a/designer-base/src/main/java/com/fr/design/menu/SnapChatUpdateAction.java +++ b/designer-base/src/main/java/com/fr/design/menu/SnapChatUpdateAction.java @@ -2,9 +2,7 @@ package com.fr.design.menu; import com.fr.design.actions.UpdateAction; import com.fr.design.gui.imenu.UIMenuItem; -import com.fr.design.notification.AbstractSnapChat; import com.fr.design.notification.SnapChat; -import com.fr.design.notification.SnapChatConfig; import com.fr.design.notification.SnapChatFactory; import com.fr.design.notification.SnapChatKey; @@ -16,11 +14,11 @@ import java.awt.event.ActionEvent; public abstract class SnapChatUpdateAction extends UpdateAction implements SnapChat { private SnapChatKey uniqueKey; - - private SnapChat snapChat = SnapChatFactory.createSnapChat(false, uniqueKey); + private SnapChat snapChat ; public SnapChatUpdateAction(SnapChatKey uniqueKey) { this.uniqueKey = uniqueKey; + snapChat = SnapChatFactory.createSnapChat(false, uniqueKey); } @Override diff --git a/designer-base/src/main/java/com/fr/design/notification/SnapChatFactory.java b/designer-base/src/main/java/com/fr/design/notification/SnapChatFactory.java index c685e0f342..a3fd463a36 100644 --- a/designer-base/src/main/java/com/fr/design/notification/SnapChatFactory.java +++ b/designer-base/src/main/java/com/fr/design/notification/SnapChatFactory.java @@ -1,11 +1,17 @@ package com.fr.design.notification; +import com.fr.plugin.context.PluginContext; + /** * @Author: Yuan.Wang * @Date: 2020/10/10 */ public class SnapChatFactory { public static SnapChat createSnapChat(boolean defaultStatus, SnapChatKey snapChatKey) { + return createSnapChat(defaultStatus, snapChatKey, null); + } + + public static SnapChat createSnapChat(boolean defaultStatus, SnapChatKey snapChatKey, PluginContext context) { return new AbstractSnapChat() { @Override public boolean defaultStatus() { @@ -16,6 +22,11 @@ public class SnapChatFactory { public SnapChatKey key() { return snapChatKey; } + + @Override + public String calcKey() { + return context == null ? key().calc() : key().calc(context); + } }; } } diff --git a/designer-base/src/main/java/com/fr/design/notification/SnapChatKey.java b/designer-base/src/main/java/com/fr/design/notification/SnapChatKey.java index fa316db350..ecb89e5097 100644 --- a/designer-base/src/main/java/com/fr/design/notification/SnapChatKey.java +++ b/designer-base/src/main/java/com/fr/design/notification/SnapChatKey.java @@ -1,9 +1,18 @@ package com.fr.design.notification; +import com.fr.plugin.context.PluginContext; + /** * created by Harrison on 2020/03/16 **/ public interface SnapChatKey { - + String calc(); + + /** + * 插件刚被安装时不能通过PluginContexts.getContext()方法获取插件上下文,因此加一个接口 + */ + default String calc(PluginContext context) { + throw new UnsupportedOperationException(); + } }