From 7dbe35bb7ab7f923bdf94d6c69be41f370435e47 Mon Sep 17 00:00:00 2001 From: kerry Date: Sat, 27 Aug 2016 09:32:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=B8=AA=E5=9C=A8?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E6=8F=92=E4=BB=B6=E6=97=B6=E5=81=9A=E7=9A=84?= =?UTF-8?q?=E5=85=B6=E4=BB=96=E6=93=8D=E4=BD=9C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/extra/PluginHelper.java | 7 +++++++ .../fun/PluginInstallOptionProcessor.java | 19 ++++++++++++++++++ .../AbstractPluginInstallOptionProcessor.java | 20 +++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 designer_base/src/com/fr/design/fun/PluginInstallOptionProcessor.java create mode 100644 designer_base/src/com/fr/design/fun/impl/AbstractPluginInstallOptionProcessor.java diff --git a/designer_base/src/com/fr/design/extra/PluginHelper.java b/designer_base/src/com/fr/design/extra/PluginHelper.java index 8bab17e68e..c5fa5fcfb7 100644 --- a/designer_base/src/com/fr/design/extra/PluginHelper.java +++ b/designer_base/src/com/fr/design/extra/PluginHelper.java @@ -3,6 +3,8 @@ package com.fr.design.extra; import com.fr.base.Env; import com.fr.base.FRContext; import com.fr.design.DesignerEnvManager; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.fun.PluginInstallOptionProcessor; import com.fr.general.*; import com.fr.general.http.HttpClient; import com.fr.plugin.Plugin; @@ -192,6 +194,11 @@ public class PluginHelper { if (plugin == null) { throw new com.fr.plugin.PluginVerifyException(Inter.getLocText("FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install")); } + PluginInstallOptionProcessor processor = ExtraDesignClassManager.getInstance().getSingle(PluginInstallOptionProcessor.MARK_STRING); + if (processor != null) { + processor.pluginInstallOption(); + } + if (PluginLoader.getLoader().isInstalled(plugin)) { throw new com.fr.plugin.PluginVerifyException(Inter.getLocText("FR-Designer-Plugin_Has_Been_Installed")); } diff --git a/designer_base/src/com/fr/design/fun/PluginInstallOptionProcessor.java b/designer_base/src/com/fr/design/fun/PluginInstallOptionProcessor.java new file mode 100644 index 0000000000..6302fe5c35 --- /dev/null +++ b/designer_base/src/com/fr/design/fun/PluginInstallOptionProcessor.java @@ -0,0 +1,19 @@ +package com.fr.design.fun; + +import com.fr.stable.fun.mark.Immutable; + +/** + * Created by Administrator on 2016/8/26. + */ +public interface PluginInstallOptionProcessor extends Immutable { + + String MARK_STRING = "PluginInstallOptionProcessor"; + + int CURRENT_LEVEL = 1; + + /** + * 安裝插件時的其他操作 + */ + void pluginInstallOption() throws Exception; +} + diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractPluginInstallOptionProcessor.java b/designer_base/src/com/fr/design/fun/impl/AbstractPluginInstallOptionProcessor.java new file mode 100644 index 0000000000..385da7252a --- /dev/null +++ b/designer_base/src/com/fr/design/fun/impl/AbstractPluginInstallOptionProcessor.java @@ -0,0 +1,20 @@ +package com.fr.design.fun.impl; + +import com.fr.design.fun.PluginInstallOptionProcessor; +import com.fr.stable.fun.mark.API; + +/** + * Created by Administrator on 2016/8/26. + */ +@API(level = PluginInstallOptionProcessor.CURRENT_LEVEL) +public abstract class AbstractPluginInstallOptionProcessor implements PluginInstallOptionProcessor{ + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + public int layerIndex() { + return DEFAULT_LAYER_INDEX; + } + + +}