From be4f78978faba3d3ceb88df02a7f93a2e09ff1e0 Mon Sep 17 00:00:00 2001 From: Kenji Hosokawa Date: Tue, 3 Aug 2021 18:42:39 +0900 Subject: Initial commit Bug-AGL: SPEC-4033 Signed-off-by: Kenji Hosokawa --- .../ui/activator/ExtensionEditorActivator.xtend | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 rba.tool.editor.ui/src/rba/tool/editor/ui/activator/ExtensionEditorActivator.xtend (limited to 'rba.tool.editor.ui/src/rba/tool/editor/ui/activator') diff --git a/rba.tool.editor.ui/src/rba/tool/editor/ui/activator/ExtensionEditorActivator.xtend b/rba.tool.editor.ui/src/rba/tool/editor/ui/activator/ExtensionEditorActivator.xtend new file mode 100644 index 0000000..aa974ca --- /dev/null +++ b/rba.tool.editor.ui/src/rba/tool/editor/ui/activator/ExtensionEditorActivator.xtend @@ -0,0 +1,41 @@ +package rba.tool.editor.ui.activator + +import com.google.inject.Guice +import com.google.inject.Module +import org.apache.log4j.Logger +import org.eclipse.xtext.util.Modules2 +import rba.tool.editor.ui.internal.EditorActivator +import rba.tool.editor.util.ExtensionModuleManager + +class ExtensionEditorActivator extends EditorActivator { + + private static final Logger logger = Logger.getLogger(ExtensionEditorActivator); + + override createInjector(String language) { + try { + val runtimeModule = getRuntimeModule(language); + val sharedStateModule = getSharedStateModule(); + val uiModule = getUiModule(language); + val extensionModule = getExtensionModule(); + val mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule, extensionModule); + return Guice.createInjector(mergedModule); + } catch(Exception e) { + logger.error("Failed to create injector for " + language); + logger.error(e.getMessage(), e); + throw new RuntimeException("Failed to create injector for " + language, e); + } + } + + def public static ExtensionEditorActivator getInstance() { + return EditorActivator.getInstance() as ExtensionEditorActivator; + } + + def public injectMembers(Object object) { + getInjector(EditorActivator.RBA_TOOL_EDITOR_RBAMODEL).injectMembers(object); + } + + def protected Module getExtensionModule() { + val modules = ExtensionModuleManager.INSTANCE.getExtensionModules(); + return Modules2.mixin(modules); + } +} -- cgit 1.2.3-korg