-package org.simantics.ui.toolbar;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collections;\r
-import java.util.List;\r
-\r
-import org.eclipse.core.runtime.IConfigurationElement;\r
-import org.eclipse.core.runtime.IExtension;\r
-import org.eclipse.core.runtime.IExtensionPoint;\r
-import org.eclipse.core.runtime.Platform;\r
-import org.eclipse.core.runtime.dynamichelpers.ExtensionTracker;\r
-import org.eclipse.core.runtime.dynamichelpers.IExtensionChangeHandler;\r
-import org.eclipse.core.runtime.dynamichelpers.IExtensionTracker;\r
-import org.eclipse.core.runtime.dynamichelpers.IFilter;\r
-import org.simantics.ui.internal.Activator;\r
-\r
-\r
-\r
-\r
-\r
-public class ToolBarCommandRegistry implements IExtensionChangeHandler {\r
- private final static String NAMESPACE = Activator.PLUGIN_ID;\r
-\r
- private final static String EP_NAME = "toolbarCommand";\r
- \r
- private ExtensionTracker tracker;\r
- \r
- private List<ToolbarCommandExtension> extensions = new ArrayList<ToolbarCommandExtension>();\r
- \r
- \r
- private static ToolBarCommandRegistry INSTANCE;\r
- \r
- public static synchronized ToolBarCommandRegistry getInstance() {\r
- if (INSTANCE == null)\r
- INSTANCE = new ToolBarCommandRegistry();\r
- return INSTANCE;\r
- }\r
- \r
- public static synchronized void dispose() {\r
- if (INSTANCE != null) {\r
- INSTANCE.close();\r
- INSTANCE = null;\r
- } \r
- }\r
- \r
- public ToolBarCommandRegistry() {\r
- tracker = new ExtensionTracker();\r
- \r
- IExtensionPoint ep = Platform.getExtensionRegistry().getExtensionPoint(NAMESPACE,EP_NAME);\r
- loadExtensions(ep.getConfigurationElements());\r
- \r
- IFilter filter = ExtensionTracker.createExtensionPointFilter(ep);\r
- tracker.registerHandler(this, filter);\r
- }\r
- \r
- private void close() {\r
- tracker.close();\r
- tracker = null;\r
- extensions.clear();\r
- }\r
- \r
- public synchronized List<ToolbarCommandExtension> getExtensions() {\r
- return Collections.unmodifiableList(extensions);\r
- }\r
- \r
- private synchronized void loadExtensions(IConfigurationElement[] elements) {\r
- for (IConfigurationElement el : elements) {\r
- String commandId = el.getAttribute("commandId");\r
- \r
- ToolbarCommandExtension ext = new ToolbarCommandExtension(commandId);\r
- ext.toolbarId = el.getAttribute("toolbarId");\r
- ext.image = el.getAttribute("image");\r
- ext.name = el.getAttribute("name");\r
- ext.type = el.getAttribute("type");\r
- ext.value = el.getAttribute("value");\r
- ext.contributorId = el.getContributor().getName();\r
- for (IConfigurationElement param : el.getChildren("parameter")) {\r
- Parameter parameter = new Parameter();\r
- parameter.name = param.getAttribute("name");\r
- parameter.value = param.getAttribute("value");\r
- ext.parameters.add(parameter);\r
- }\r
- tracker.registerObject(el.getDeclaringExtension(), ext, IExtensionTracker.REF_STRONG);\r
- extensions.add(ext);\r
- \r
- }\r
- }\r
- \r
- @Override\r
- public void addExtension(IExtensionTracker tracker, IExtension extension) {\r
- loadExtensions(extension.getConfigurationElements());\r
- }\r
- \r
- @Override\r
- public synchronized void removeExtension(IExtension extension, Object[] objects) {\r
- for (Object o : objects) {\r
- ToolbarCommandExtension ext = (ToolbarCommandExtension) o;\r
- tracker.unregisterObject(extension, ext);\r
- extensions.remove(ext);\r
- }\r
- }\r
- \r
- public synchronized List<ToolbarCommandExtension> getExtensions(String toolbarId) {\r
- List<ToolbarCommandExtension> list = new ArrayList<ToolbarCommandExtension>();\r
- for (ToolbarCommandExtension ext : extensions)\r
- if (ext.toolbarId.equals(toolbarId))\r
- list.add(ext);\r
- return list;\r
- \r
- }\r
- \r
- public class ToolbarCommandExtension {\r
- public String commandId;\r
- public String toolbarId;\r
- public String name;\r
- public String type;\r
- public String value;\r
- public String image;\r
- public String contributorId;\r
- public List<Parameter> parameters = new ArrayList<>();\r
- public ToolbarCommandExtension(String commandId) {\r
- super();\r
- this.commandId = commandId;\r
- }\r
- \r
- @Override\r
- public String toString() {\r
- return "ToolbarCommandExtension, commandId= " + commandId + " toolbarId= " + toolbarId + " type= " + type + " value= " + value + " contributor= " + contributorId;\r
- }\r
- }\r
- \r
- public class Parameter {\r
- public String name;\r
- public String value;\r
- }\r
- \r
- \r
-}\r
+package org.simantics.ui.toolbar;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.dynamichelpers.ExtensionTracker;
+import org.eclipse.core.runtime.dynamichelpers.IExtensionChangeHandler;
+import org.eclipse.core.runtime.dynamichelpers.IExtensionTracker;
+import org.eclipse.core.runtime.dynamichelpers.IFilter;
+import org.simantics.ui.internal.Activator;
+
+
+
+
+
+public class ToolBarCommandRegistry implements IExtensionChangeHandler {
+ private final static String NAMESPACE = Activator.PLUGIN_ID;
+
+ private final static String EP_NAME = "toolbarCommand";
+
+ private ExtensionTracker tracker;
+
+ private List<ToolbarCommandExtension> extensions = new ArrayList<ToolbarCommandExtension>();
+
+
+ private static ToolBarCommandRegistry INSTANCE;
+
+ public static synchronized ToolBarCommandRegistry getInstance() {
+ if (INSTANCE == null)
+ INSTANCE = new ToolBarCommandRegistry();
+ return INSTANCE;
+ }
+
+ public static synchronized void dispose() {
+ if (INSTANCE != null) {
+ INSTANCE.close();
+ INSTANCE = null;
+ }
+ }
+
+ public ToolBarCommandRegistry() {
+ tracker = new ExtensionTracker();
+
+ IExtensionPoint ep = Platform.getExtensionRegistry().getExtensionPoint(NAMESPACE,EP_NAME);
+ loadExtensions(ep.getConfigurationElements());
+
+ IFilter filter = ExtensionTracker.createExtensionPointFilter(ep);
+ tracker.registerHandler(this, filter);
+ }
+
+ private void close() {
+ tracker.close();
+ tracker = null;
+ extensions.clear();
+ }
+
+ public synchronized List<ToolbarCommandExtension> getExtensions() {
+ return Collections.unmodifiableList(extensions);
+ }
+
+ private synchronized void loadExtensions(IConfigurationElement[] elements) {
+ for (IConfigurationElement el : elements) {
+ String commandId = el.getAttribute("commandId");
+
+ ToolbarCommandExtension ext = new ToolbarCommandExtension(commandId);
+ ext.toolbarId = el.getAttribute("toolbarId");
+ ext.image = el.getAttribute("image");
+ ext.name = el.getAttribute("name");
+ ext.type = el.getAttribute("type");
+ ext.value = el.getAttribute("value");
+ ext.contributorId = el.getContributor().getName();
+ for (IConfigurationElement param : el.getChildren("parameter")) {
+ Parameter parameter = new Parameter();
+ parameter.name = param.getAttribute("name");
+ parameter.value = param.getAttribute("value");
+ ext.parameters.add(parameter);
+ }
+ tracker.registerObject(el.getDeclaringExtension(), ext, IExtensionTracker.REF_STRONG);
+ extensions.add(ext);
+
+ }
+ }
+
+ @Override
+ public void addExtension(IExtensionTracker tracker, IExtension extension) {
+ loadExtensions(extension.getConfigurationElements());
+ }
+
+ @Override
+ public synchronized void removeExtension(IExtension extension, Object[] objects) {
+ for (Object o : objects) {
+ ToolbarCommandExtension ext = (ToolbarCommandExtension) o;
+ tracker.unregisterObject(extension, ext);
+ extensions.remove(ext);
+ }
+ }
+
+ public synchronized List<ToolbarCommandExtension> getExtensions(String toolbarId) {
+ List<ToolbarCommandExtension> list = new ArrayList<ToolbarCommandExtension>();
+ for (ToolbarCommandExtension ext : extensions)
+ if (ext.toolbarId.equals(toolbarId))
+ list.add(ext);
+ return list;
+
+ }
+
+ public class ToolbarCommandExtension {
+ public String commandId;
+ public String toolbarId;
+ public String name;
+ public String type;
+ public String value;
+ public String image;
+ public String contributorId;
+ public List<Parameter> parameters = new ArrayList<>();
+ public ToolbarCommandExtension(String commandId) {
+ super();
+ this.commandId = commandId;
+ }
+
+ @Override
+ public String toString() {
+ return "ToolbarCommandExtension, commandId= " + commandId + " toolbarId= " + toolbarId + " type= " + type + " value= " + value + " contributor= " + contributorId;
+ }
+ }
+
+ public class Parameter {
+ public String name;
+ public String value;
+ }
+
+
+}