Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Schindl2011-03-08 23:49:05 +0000
committerThomas Schindl2011-03-08 23:49:05 +0000
commitc1bac68cf707b4aea793cd52e4128e39f45e59e6 (patch)
tree3f897ef0e7509dfb30c0c2d3d0fa10f1946a5c83
parent0f8579cea16d9340785f4a855442a4e4de1816cc (diff)
downloadorg.eclipse.e4.tools-c1bac68cf707b4aea793cd52e4128e39f45e59e6.tar.gz
org.eclipse.e4.tools-c1bac68cf707b4aea793cd52e4128e39f45e59e6.tar.xz
org.eclipse.e4.tools-c1bac68cf707b4aea793cd52e4128e39f45e59e6.zip
Bug 339299 - [ModelTooling] Add scripting support
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java2
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties2
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ControlHighlighter.java14
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java65
4 files changed, 42 insertions, 41 deletions
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java
index 0dd425e4..475fb90b 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java
@@ -588,6 +588,8 @@ public class Messages {
public String ModelEditor_Form;
public String ModelEditor_XMI;
public String ModelEditor_ExternalizeStrings;
+ public String ModelEditor_Script;
+ public String ModelEditor_ShowControl;
public String ExternalizeStringHandler_Dialog_ElementName;
public String ExternalizeStringHandler_Dialog_AttributeName;
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties
index a26f112b..b45be4ff 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties
@@ -586,6 +586,8 @@ ModelEditor_Delete=Remove
ModelEditor_Form=Form
ModelEditor_XMI=XMI
ModelEditor_ExternalizeStrings=Externalize Strings
+ModelEditor_Script=Execute Script
+ModelEditor_ShowControl=Show control
ExternalizeStringHandler_Dialog_ElementName=Element
ExternalizeStringHandler_Dialog_AttributeName=Attribute
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ControlHighlighter.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ControlHighlighter.java
index bfe41482..da74a4d7 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ControlHighlighter.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ControlHighlighter.java
@@ -8,14 +8,12 @@ import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
public class ControlHighlighter {
- private Control control;
- private Shell s;
+ private static Shell s;
- public ControlHighlighter(Control control) {
- this.control = control;
- }
-
- public void show(Shell dialog) {
+ public static void show(Control control) {
+ if (s != null && !s.isDisposed()) {
+ s.dispose();
+ }
s = new Shell(control.getShell(), SWT.NO_TRIM);
Point p1 = control.toDisplay(0, 0);
Point p2 = control.getSize();
@@ -31,7 +29,7 @@ public class ControlHighlighter {
});
}
- public void hide() {
+ public static void hide() {
if (s != null) {
s.dispose();
s = null;
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
index f88e7376..c5f16b04 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
@@ -269,8 +269,6 @@ public class ModelEditor {
private AbstractComponentEditor currentEditor;
- private ControlHighlighter currentControlHighlighter;
-
public ModelEditor(Composite composite, IEclipseContext context, IModelResource modelProvider, IProject project, final IResourcePool resourcePool) {
this.resourcePool = resourcePool;
this.modelProvider = modelProvider;
@@ -557,6 +555,36 @@ public class ModelEditor {
}
}
+ IExtensionRegistry registry = RegistryFactory.getRegistry();
+ IExtensionPoint extPoint = registry.getExtensionPoint("org.eclipse.e4.tools.emf.ui.scripting"); //$NON-NLS-1$
+ final IConfigurationElement[] elements = extPoint.getConfigurationElements();
+
+ if (elements.length > 0 && !s.isEmpty() && s.getFirstElement() instanceof MApplicationElement) {
+ if (addSeparator) {
+ manager.add(new Separator());
+ }
+
+ addSeparator = false;
+
+ MenuManager scriptExecute = new MenuManager(messages.ModelEditor_Script);
+ manager.add(scriptExecute);
+ for (IConfigurationElement e : elements) {
+ final IConfigurationElement le = e;
+ scriptExecute.add(new Action(e.getAttribute("label")) { //$NON-NLS-1$
+ @Override
+ public void run() {
+ try {
+ IScriptingSupport support = (IScriptingSupport) le.createExecutableExtension("class"); //$NON-NLS-1$
+ support.openEditor(viewer.getControl().getShell(), s.getFirstElement(), new HashMap<String, Object>());
+ } catch (CoreException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+ }
+
if (project != null) {
if (addSeparator) {
@@ -575,42 +603,13 @@ public class ModelEditor {
manager.add(new Separator());
}
- IExtensionRegistry registry = RegistryFactory.getRegistry();
- IExtensionPoint extPoint = registry.getExtensionPoint("org.eclipse.e4.tools.emf.ui.scripting"); //$NON-NLS-1$
- final IConfigurationElement[] elements = extPoint.getConfigurationElements();
-
- if (elements.length > 0 && !s.isEmpty() && s.getFirstElement() instanceof MApplicationElement) {
- MenuManager scriptExecute = new MenuManager(messages.ObjectViewer_Script);
- manager.add(scriptExecute);
- for (IConfigurationElement e : elements) {
- final IConfigurationElement le = e;
- scriptExecute.add(new Action(e.getAttribute("label")) { //$NON-NLS-1$
- @Override
- public void run() {
- try {
- IScriptingSupport support = (IScriptingSupport) le.createExecutableExtension("class"); //$NON-NLS-1$
- support.openEditor(viewer.getControl().getShell(), s.getFirstElement(), new HashMap<String, Object>());
- } catch (CoreException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- });
- }
- }
-
if (s.getFirstElement() instanceof MUIElement) {
final MUIElement el = (MUIElement) s.getFirstElement();
if (el.getWidget() instanceof Control) {
- manager.add(new Action("Show control") {
+ manager.add(new Action(messages.ModelEditor_ShowControl) {
public void run() {
- if (currentControlHighlighter != null) {
- currentControlHighlighter.hide();
- }
-
- currentControlHighlighter = new ControlHighlighter((Control) el.getWidget());
- currentControlHighlighter.show(viewer.getTree().getShell());
+ ControlHighlighter.show((Control) el.getWidget());
}
});

Back to the top