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