diff options
| author | Pierre-Charles David | 2016-01-28 13:14:13 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2016-02-01 08:54:03 +0000 |
| commit | 784ede4b75f5d6203ba7060a5044eb20b10b491a (patch) | |
| tree | b6ff63eb005a32e0444994f82b3ef4c35e2d9050 | |
| parent | 906b0dd7da0f74c4e299d126511ac909c98c1121 (diff) | |
| download | org.eclipse.sirius-784ede4b75f5d6203ba7060a5044eb20b10b491a.tar.gz org.eclipse.sirius-784ede4b75f5d6203ba7060a5044eb20b10b491a.tar.xz org.eclipse.sirius-784ede4b75f5d6203ba7060a5044eb20b10b491a.zip | |
[482528] Make the dependency to org.eclipse.eef.properties.ui optional
Only plug into the org.eclipse.eef.properties.ui version of the
framework when it is actually installed. Keep the previous behavior
otherwise.
Bug: 482528
Change-Id: I2838f5428826c2171ab59ee52489a50a82bde732
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
3 files changed, 26 insertions, 5 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.diagram.ui/META-INF/MANIFEST.MF index 858898deb4..0d1f210a58 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.sirius.diagram.ui/META-INF/MANIFEST.MF @@ -44,7 +44,7 @@ Require-Bundle: com.google.guava;bundle-version="[11.0.2,16.0)", org.eclipse.ui.navigator.resources;bundle-version="3.4.400", org.w3c.dom.svg;bundle-version="1.1.0", org.apache.xerces;bundle-version="2.9.0", - org.eclipse.eef.properties.ui;bundle-version="1.6.0" + org.eclipse.eef.properties.ui;bundle-version="1.6.0";resolution:=optional Eclipse-LazyStart: true Export-Package: org.eclipse.sirius.diagram.description.concern.provider;version="2.0.4", org.eclipse.sirius.diagram.description.filter.provider;version="2.0.4", diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/part/SiriusDiagramEditor.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/part/SiriusDiagramEditor.java index 24190bad73..97dc07e90a 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/part/SiriusDiagramEditor.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/part/SiriusDiagramEditor.java @@ -18,7 +18,6 @@ import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.eef.properties.ui.api.EEFTabbedPropertySheetPage; -import org.eclipse.eef.properties.ui.api.IEEFTabbedPropertySheetPageContributor; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.transaction.TransactionalEditingDomain; @@ -42,11 +41,12 @@ import org.eclipse.ui.navigator.resources.ProjectExplorer; import org.eclipse.ui.part.IShowInTargetList; import org.eclipse.ui.part.ShowInContext; import org.eclipse.ui.views.properties.IPropertySheetPage; +import org.osgi.framework.Bundle; /** * @not-generated */ -public class SiriusDiagramEditor extends DiagramDocumentEditor implements IGotoMarker, IAdaptable, IEEFTabbedPropertySheetPageContributor { +public class SiriusDiagramEditor extends DiagramDocumentEditor implements IGotoMarker, IAdaptable { /** * @was-generated @@ -110,8 +110,8 @@ public class SiriusDiagramEditor extends DiagramDocumentEditor implements IGotoM } }; } - if (type == IPropertySheetPage.class) { - return new EEFTabbedPropertySheetPage(this); + if (type == IPropertySheetPage.class && useForkedPropertySheetFramework()) { + return new EEFTabbedPropertySheetPage(this, this.getContributorId()); } if (type == AdapterFactory.class) { return DiagramUIPlugin.getPlugin().getItemProvidersAdapterFactory(); @@ -119,6 +119,10 @@ public class SiriusDiagramEditor extends DiagramDocumentEditor implements IGotoM return super.getAdapter(type); } + private boolean useForkedPropertySheetFramework() { + return DiagramUIPlugin.getPlugin().isForkedPropertiesFrameworkAvailable(); + } + /** * @was-generated */ diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-gen/org/eclipse/sirius/diagram/ui/provider/DiagramUIPlugin.java b/plugins/org.eclipse.sirius.diagram.ui/src-gen/org/eclipse/sirius/diagram/ui/provider/DiagramUIPlugin.java index 693084f944..3c72f2f920 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-gen/org/eclipse/sirius/diagram/ui/provider/DiagramUIPlugin.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-gen/org/eclipse/sirius/diagram/ui/provider/DiagramUIPlugin.java @@ -55,6 +55,7 @@ import org.eclipse.sirius.viewpoint.provider.SiriusEditPlugin; import org.eclipse.sirius.viewpoint.provider.ViewpointItemProviderAdapterFactory; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; /** @@ -144,6 +145,8 @@ public final class DiagramUIPlugin extends EMFPlugin { private WorkspaceImageFigureRefresher workspaceImageFigureRefresher; + private final boolean isForkedPropertiesFrameworkAvailable; + /** * Creates an instance. <!-- begin-user-doc --> <!-- end-user-doc --> * @@ -152,11 +155,25 @@ public final class DiagramUIPlugin extends EMFPlugin { public Implementation() { super(); + isForkedPropertiesFrameworkAvailable = isBundlePresent("org.eclipse.eef.properties.ui"); //$NON-NLS-1$ // Remember the static instance. // DiagramUIPlugin.plugin = this; } + public boolean isForkedPropertiesFrameworkAvailable() { + return isForkedPropertiesFrameworkAvailable; + } + + private boolean isBundlePresent(String bundleName) { + for (Bundle bundle : getBundle().getBundleContext().getBundles()) { + if (bundleName.equals(bundle.getSymbolicName())) { + return true; + } + } + return false; + } + /** * @not-generated create the image registry */ |
