From a13b3275dae9ab99987ada849771505c360e55db Mon Sep 17 00:00:00 2001
From: Thomas Schindl
Date: Sun, 25 Jul 2010 19:18:25 +0000
Subject: Bug 320842 - [ModelTooling] Editing of Expressions not available
---
.../OSGI-INF/pdeextensionlookup.xml | 1 +
.../eclipse/e4/tools/emf/editor3x/PDEExtensionLookup.java | 13 ++++++++++---
bundles/org.eclipse.e4.tools.emf.liveeditor/.project | 5 +++++
.../META-INF/MANIFEST.MF | 5 ++++-
.../OSGI-INF/extensionlookup.xml | 8 ++++++++
.../org.eclipse.e4.tools.emf.liveeditor/build.properties | 5 +++--
.../e4/tools/emf/liveeditor/RuntimeExtensionLookup.java | 15 +++++++++++++++
.../eclipse/e4/tools/emf/ui/common/IExtensionLookup.java | 2 +-
.../internal/common/component/CoreExpressionEditor.java | 2 +-
.../common/component/dialogs/ExpressionIdDialog.java | 6 ++++--
.../common/component/virtual/VMenuElementsEditor.java | 2 +-
11 files changed, 53 insertions(+), 11 deletions(-)
create mode 100644 bundles/org.eclipse.e4.tools.emf.liveeditor/OSGI-INF/extensionlookup.xml
create mode 100644 bundles/org.eclipse.e4.tools.emf.liveeditor/src/org/eclipse/e4/tools/emf/liveeditor/RuntimeExtensionLookup.java
diff --git a/bundles/org.eclipse.e4.tools.emf.editor3x/OSGI-INF/pdeextensionlookup.xml b/bundles/org.eclipse.e4.tools.emf.editor3x/OSGI-INF/pdeextensionlookup.xml
index 759090b9..cad2595f 100644
--- a/bundles/org.eclipse.e4.tools.emf.editor3x/OSGI-INF/pdeextensionlookup.xml
+++ b/bundles/org.eclipse.e4.tools.emf.editor3x/OSGI-INF/pdeextensionlookup.xml
@@ -4,4 +4,5 @@
+
diff --git a/bundles/org.eclipse.e4.tools.emf.editor3x/src/org/eclipse/e4/tools/emf/editor3x/PDEExtensionLookup.java b/bundles/org.eclipse.e4.tools.emf.editor3x/src/org/eclipse/e4/tools/emf/editor3x/PDEExtensionLookup.java
index 4cce764f..88c4114e 100644
--- a/bundles/org.eclipse.e4.tools.emf.editor3x/src/org/eclipse/e4/tools/emf/editor3x/PDEExtensionLookup.java
+++ b/bundles/org.eclipse.e4.tools.emf.editor3x/src/org/eclipse/e4/tools/emf/editor3x/PDEExtensionLookup.java
@@ -11,14 +11,21 @@
package org.eclipse.e4.tools.emf.editor3x;
import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.RegistryFactory;
import org.eclipse.e4.tools.emf.ui.common.IExtensionLookup;
import org.eclipse.pde.internal.core.PDEExtensionRegistry;
public class PDEExtensionLookup implements IExtensionLookup {
- public IExtension[] findExtensions(String extensionPointId) {
- PDEExtensionRegistry reg = new PDEExtensionRegistry();
- return reg.findExtensions(extensionPointId, true);
+ public IExtension[] findExtensions(String extensionPointId, boolean liveModel) {
+ if( liveModel ) {
+ IExtensionRegistry registry = RegistryFactory.getRegistry();
+ return registry.getExtensionPoint(extensionPointId).getExtensions();
+ } else {
+ PDEExtensionRegistry reg = new PDEExtensionRegistry();
+ return reg.findExtensions(extensionPointId, true);
+ }
}
}
\ No newline at end of file
diff --git a/bundles/org.eclipse.e4.tools.emf.liveeditor/.project b/bundles/org.eclipse.e4.tools.emf.liveeditor/.project
index e796110f..8f237706 100644
--- a/bundles/org.eclipse.e4.tools.emf.liveeditor/.project
+++ b/bundles/org.eclipse.e4.tools.emf.liveeditor/.project
@@ -20,6 +20,11 @@
+
+ org.eclipse.pde.ds.core.builder
+
+
+
org.eclipse.pde.PluginNature
diff --git a/bundles/org.eclipse.e4.tools.emf.liveeditor/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.tools.emf.liveeditor/META-INF/MANIFEST.MF
index 5ea74a55..e4b46dae 100644
--- a/bundles/org.eclipse.e4.tools.emf.liveeditor/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.tools.emf.liveeditor/META-INF/MANIFEST.MF
@@ -16,5 +16,8 @@ Require-Bundle: javax.inject;bundle-version="1.0.0",
org.eclipse.core.resources;bundle-version="3.6.0",
org.eclipse.e4.core.contexts;bundle-version="0.9.0",
org.eclipse.e4.core.di;bundle-version="0.9.0",
- org.eclipse.jface;bundle-version="3.6.0"
+ org.eclipse.jface;bundle-version="3.6.0",
+ org.eclipse.equinox.registry;bundle-version="3.5.0"
Bundle-Vendor: %Bundle-Vendor
+Service-Component: OSGI-INF/extensionlookup.xml
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.e4.tools.emf.liveeditor/OSGI-INF/extensionlookup.xml b/bundles/org.eclipse.e4.tools.emf.liveeditor/OSGI-INF/extensionlookup.xml
new file mode 100644
index 00000000..658799d9
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.emf.liveeditor/OSGI-INF/extensionlookup.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/bundles/org.eclipse.e4.tools.emf.liveeditor/build.properties b/bundles/org.eclipse.e4.tools.emf.liveeditor/build.properties
index aab247e2..c15df501 100644
--- a/bundles/org.eclipse.e4.tools.emf.liveeditor/build.properties
+++ b/bundles/org.eclipse.e4.tools.emf.liveeditor/build.properties
@@ -1,7 +1,8 @@
-source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.xml,\
about.html,\
- OSGI-INF/
+ OSGI-INF/,\
+ OSGI-INF/extensionlookup.xml
+source.. = src/
diff --git a/bundles/org.eclipse.e4.tools.emf.liveeditor/src/org/eclipse/e4/tools/emf/liveeditor/RuntimeExtensionLookup.java b/bundles/org.eclipse.e4.tools.emf.liveeditor/src/org/eclipse/e4/tools/emf/liveeditor/RuntimeExtensionLookup.java
new file mode 100644
index 00000000..a2005021
--- /dev/null
+++ b/bundles/org.eclipse.e4.tools.emf.liveeditor/src/org/eclipse/e4/tools/emf/liveeditor/RuntimeExtensionLookup.java
@@ -0,0 +1,15 @@
+package org.eclipse.e4.tools.emf.liveeditor;
+
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.RegistryFactory;
+import org.eclipse.e4.tools.emf.ui.common.IExtensionLookup;
+
+public class RuntimeExtensionLookup implements IExtensionLookup {
+
+ public IExtension[] findExtensions(String extensionPointId, boolean liveModel) {
+ IExtensionRegistry registry = RegistryFactory.getRegistry();
+ return registry.getExtensionPoint(extensionPointId).getExtensions();
+ }
+
+}
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/IExtensionLookup.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/IExtensionLookup.java
index 71b6a1e1..24a2ebb1 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/IExtensionLookup.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/common/IExtensionLookup.java
@@ -13,5 +13,5 @@ package org.eclipse.e4.tools.emf.ui.common;
import org.eclipse.core.runtime.IExtension;
public interface IExtensionLookup {
- public IExtension[] findExtensions(String extensionPointId);
+ public IExtension[] findExtensions(String extensionPointId, boolean liveModel);
}
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/CoreExpressionEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/CoreExpressionEditor.java
index f8924c94..99c47c8f 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/CoreExpressionEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/CoreExpressionEditor.java
@@ -121,7 +121,7 @@ public class CoreExpressionEditor extends AbstractComponentEditor {
b.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
- ExpressionIdDialog dialog = new ExpressionIdDialog(t.getShell(), getEditor().getExtensionLookup(), (MCoreExpression) getMaster().getValue(), getEditingDomain());
+ ExpressionIdDialog dialog = new ExpressionIdDialog(t.getShell(), getEditor().getExtensionLookup(), (MCoreExpression) getMaster().getValue(), getEditingDomain(), getEditor().isLiveModel());
dialog.open();
}
});
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/ExpressionIdDialog.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/ExpressionIdDialog.java
index f1468433..abdeb0b8 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/ExpressionIdDialog.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/dialogs/ExpressionIdDialog.java
@@ -51,12 +51,14 @@ public class ExpressionIdDialog extends TitleAreaDialog {
private TableViewer viewer;
private EditingDomain domain;
private MCoreExpression expression;
+ private boolean liveModel;
- public ExpressionIdDialog(Shell parentShell, IExtensionLookup lookup, MCoreExpression expression, EditingDomain domain) {
+ public ExpressionIdDialog(Shell parentShell, IExtensionLookup lookup, MCoreExpression expression, EditingDomain domain, boolean liveModel) {
super(parentShell);
this.lookup = lookup;
this.expression = expression;
this.domain = domain;
+ this.liveModel = liveModel;
}
@Override
@@ -120,7 +122,7 @@ public class ExpressionIdDialog extends TitleAreaDialog {
private List getElements(IExtensionLookup lookup) {
List list = new ArrayList();
- for (IExtension ext : lookup.findExtensions("org.eclipse.core.expressions.definitions")) { //$NON-NLS-1$
+ for (IExtension ext : lookup.findExtensions("org.eclipse.core.expressions.definitions", liveModel)) { //$NON-NLS-1$
for (IConfigurationElement el : ext.getConfigurationElements()) {
list.add(el);
}
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VMenuElementsEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VMenuElementsEditor.java
index 02e44a4e..baebd345 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VMenuElementsEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/component/virtual/VMenuElementsEditor.java
@@ -109,7 +109,7 @@ public class VMenuElementsEditor extends AbstractComponentEditor {
viewer.setContentProvider(cp);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.heightHint = 120;
+ gd.heightHint = 300;
viewer.getControl().setLayoutData(gd);
viewer.setLabelProvider(new ComponentLabelProvider(getEditor()));
--
cgit v1.2.3