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; + } + + +}