Browse Source

REPORT-27608 多热点图片插件无法热加载

feature/big-screen
lucian 5 years ago
parent
commit
fe0226e1bc
  1. 14
      designer-base/src/main/java/com/fr/design/actions/core/ActionFactory.java
  2. 22
      designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java

14
designer-base/src/main/java/com/fr/design/actions/core/ActionFactory.java

@ -260,6 +260,13 @@ public class ActionFactory {
} }
} }
public static void referCellInsertActionClass(Class<?>[] cls) {
if (cls != null) {
actionClasses.clear();
Collections.addAll(actionClasses, cls);
}
}
/** /**
* 生成单元格插入相关的Action * 生成单元格插入相关的Action
* 表单中报表块编辑需要屏蔽掉"插入子报表" * 表单中报表块编辑需要屏蔽掉"插入子报表"
@ -318,6 +325,13 @@ public class ActionFactory {
} }
} }
public static void referFloatInsertActionClass(Class<?>[] cls) {
if (cls != null) {
floatActionClasses.clear();
Collections.addAll(floatActionClasses, cls);
}
}
/** /**
* 生成悬浮元素插入相关的Action * 生成悬浮元素插入相关的Action
* *

22
designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java

@ -63,6 +63,7 @@ import com.fr.design.update.actions.RecoverForDesigner;
import com.fr.design.update.push.DesignerPushUpdateManager; import com.fr.design.update.push.DesignerPushUpdateManager;
import com.fr.design.widget.ui.btn.FormSubmitButtonDetailPane; import com.fr.design.widget.ui.btn.FormSubmitButtonDetailPane;
import com.fr.form.stable.ElementCaseThumbnailProcessor; import com.fr.form.stable.ElementCaseThumbnailProcessor;
import com.fr.general.GeneralContext;
import com.fr.general.xml.GeneralXMLTools; import com.fr.general.xml.GeneralXMLTools;
import com.fr.js.EmailJavaScript; import com.fr.js.EmailJavaScript;
import com.fr.js.JavaScriptImpl; import com.fr.js.JavaScriptImpl;
@ -75,6 +76,11 @@ import com.fr.locale.LocaleScope;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.log.LogHandler; import com.fr.log.LogHandler;
import com.fr.module.Activator; import com.fr.module.Activator;
import com.fr.plugin.context.PluginContext;
import com.fr.plugin.injectable.PluginModule;
import com.fr.plugin.manage.PluginFilter;
import com.fr.plugin.observer.PluginEvent;
import com.fr.plugin.observer.PluginEventListener;
import com.fr.quickeditor.cellquick.CellBiasTextPainterEditor; import com.fr.quickeditor.cellquick.CellBiasTextPainterEditor;
import com.fr.quickeditor.cellquick.CellDSColumnEditor; import com.fr.quickeditor.cellquick.CellDSColumnEditor;
import com.fr.quickeditor.cellquick.CellFormulaQuickEditor; import com.fr.quickeditor.cellquick.CellFormulaQuickEditor;
@ -181,6 +187,7 @@ public class DesignerActivator extends Activator {
ActionFactory.registerFloatInsertActionClass(actionsForInsertFloatElement()); ActionFactory.registerFloatInsertActionClass(actionsForInsertFloatElement());
DesignModuleFactory.registerCreators4Hyperlink(hyperlinkTypes()); DesignModuleFactory.registerCreators4Hyperlink(hyperlinkTypes());
createPluginListener();
justStartModules4Designer(); justStartModules4Designer();
CalculatorProviderContext.setValueConverter(valueConverter()); CalculatorProviderContext.setValueConverter(valueConverter());
@ -193,6 +200,21 @@ public class DesignerActivator extends Activator {
InformationCollector.getInstance().collectStartTime(); InformationCollector.getInstance().collectStartTime();
} }
private void createPluginListener() {
GeneralContext.listenPluginRunningChanged(new PluginEventListener() {
@Override
public void on(PluginEvent event) {
ActionFactory.referCellInsertActionClass(actionsForInsertCellElement());
ActionFactory.referFloatInsertActionClass(actionsForInsertFloatElement());
}
}, new PluginFilter() {
@Override
public boolean accept(PluginContext context) {
return context.contain(PluginModule.ExtraDesign, ElementUIProvider.MARK_STRING);
}
});
}
private static Class<?>[] actionsForInsertCellElement() { private static Class<?>[] actionsForInsertCellElement() {
List<Class<?>> classes = new ArrayList<>(); List<Class<?>> classes = new ArrayList<>();
Set<ElementUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ElementUIProvider.MARK_STRING); Set<ElementUIProvider> providers = ExtraDesignClassManager.getInstance().getArray(ElementUIProvider.MARK_STRING);

Loading…
Cancel
Save