diff options
| author | Mélanie Bats | 2016-01-22 08:31:05 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2016-02-01 08:54:03 +0000 |
| commit | 906b0dd7da0f74c4e299d126511ac909c98c1121 (patch) | |
| tree | 5db2410c44a19760093f0a0b0de57c3759456df0 | |
| parent | aeef8417f78fcc4f73514c373962f58b9dea02b3 (diff) | |
| download | org.eclipse.sirius-906b0dd7da0f74c4e299d126511ac909c98c1121.tar.gz org.eclipse.sirius-906b0dd7da0f74c4e299d126511ac909c98c1121.tar.xz org.eclipse.sirius-906b0dd7da0f74c4e299d126511ac909c98c1121.zip | |
[482528] Use the EEF properties view framework
Use the EEF properties view framework instead
of the legacy tabbed properties view framework.
Bug: 482528
Change-Id: I84fb5ff2b88bc6e7cf11807fc3517918d51aaf21
Signed-off-by: Mélanie Bats <melanie.bats@obeo.fr>
7 files changed, 35 insertions, 43 deletions
diff --git a/incubation/org.eclipse.sirius.ui.properties/META-INF/MANIFEST.MF b/incubation/org.eclipse.sirius.ui.properties/META-INF/MANIFEST.MF index 4ada1cb998..2df8ad881f 100644 --- a/incubation/org.eclipse.sirius.ui.properties/META-INF/MANIFEST.MF +++ b/incubation/org.eclipse.sirius.ui.properties/META-INF/MANIFEST.MF @@ -6,7 +6,6 @@ Bundle-Version: 1.0.0.qualifier Bundle-Vendor: %providerName Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Require-Bundle: org.eclipse.eef;bundle-version="1.6.0", - org.eclipse.ui.views.properties.tabbed, org.eclipse.gmf.runtime.diagram.ui, org.eclipse.sirius, org.eclipse.sirius.ext.emf;bundle-version="3.1.2", @@ -17,7 +16,8 @@ Require-Bundle: org.eclipse.eef;bundle-version="1.6.0", org.eclipse.sirius.common, org.eclipse.sirius.ecore.extender, org.eclipse.sirius.ext.base, - org.eclipse.sirius.common.interpreter;bundle-version="1.0.0" + org.eclipse.sirius.common.interpreter;bundle-version="1.0.0", + org.eclipse.eef.properties.ui;bundle-version="1.6.0" Import-Package: com.ibm.icu.util Bundle-Activator: org.eclipse.sirius.ui.properties.internal.Activator Bundle-ActivationPolicy: lazy diff --git a/incubation/org.eclipse.sirius.ui.properties/plugin.xml b/incubation/org.eclipse.sirius.ui.properties/plugin.xml index 02bf72ece7..523de04e1d 100644 --- a/incubation/org.eclipse.sirius.ui.properties/plugin.xml +++ b/incubation/org.eclipse.sirius.ui.properties/plugin.xml @@ -1,29 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.4"?> <plugin> - <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor"> - <propertyContributor - contributorId="org.eclipse.sirius.diagram.ui" - tabDescriptorProvider="org.eclipse.sirius.ui.properties.internal.SiriusTabDescriptorProvider" > - <propertyCategory/> - </propertyContributor> - </extension> - <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor"> - <propertyContributor - contributorId="org.eclipse.sirius.table.ui.EditorID" - tabDescriptorProvider="org.eclipse.sirius.ui.properties.internal.SiriusTabDescriptorProvider"> - <propertyCategory/> - </propertyContributor> - </extension> - <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor"> - <propertyContributor - contributorId="org.eclipse.sirius.tree.ui.EditorID" - tabDescriptorProvider="org.eclipse.sirius.ui.properties.internal.SiriusTabDescriptorProvider"> - <propertyCategory/> - </propertyContributor> - </extension> <extension point="org.eclipse.core.runtime.adapters"> <factory adaptableType="org.eclipse.gef.GraphicalEditPart" @@ -39,4 +18,13 @@ <adapter type="org.eclipse.emf.ecore.EObject" /> </factory> </extension> + <extension + point="org.eclipse.eef.properties.ui.eefTabDescriptorProvider"> + <descriptor + class="org.eclipse.sirius.ui.properties.internal.SiriusTabDescriptorProvider" + description="Provides EEF tab descriptors according to what is defined in the view properties extension" + id="org.eclipse.sirius.eefTabDescriptorProvider" + label="Sirius EEF Tab Descriptor Provider"> + </descriptor> + </extension> </plugin> diff --git a/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/SiriusTabDescriptorProvider.java b/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/SiriusTabDescriptorProvider.java index 4260d42202..cbc842fcba 100644 --- a/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/SiriusTabDescriptorProvider.java +++ b/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/SiriusTabDescriptorProvider.java @@ -11,23 +11,24 @@ package org.eclipse.sirius.ui.properties.internal; import java.util.ArrayList; +import java.util.Collection; import java.util.List; -import java.util.Set; import org.eclipse.eef.EEFViewDescription; import org.eclipse.eef.core.api.EEFExpressionUtils; import org.eclipse.eef.core.api.EEFPage; import org.eclipse.eef.core.api.EEFView; import org.eclipse.eef.core.api.EEFViewFactory; -import org.eclipse.eef.ide.ui.internal.properties.EEFTabDescriptor; +import org.eclipse.eef.ide.ui.api.EEFTabDescriptor; +import org.eclipse.eef.properties.ui.api.IEEFTabDescriptor; +import org.eclipse.eef.properties.ui.api.IEEFTabDescriptorProvider; import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.sirius.business.api.query.EObjectQuery; import org.eclipse.sirius.business.api.session.Session; -import org.eclipse.sirius.common.interpreter.api.VariableManagerFactory; import org.eclipse.sirius.common.interpreter.api.IVariableManager; +import org.eclipse.sirius.common.interpreter.api.VariableManagerFactory; import org.eclipse.sirius.ext.base.Option; import org.eclipse.sirius.properties.PageDescription; import org.eclipse.sirius.properties.ViewExtensionDescription; @@ -35,18 +36,15 @@ import org.eclipse.sirius.viewpoint.description.DescriptionPackage; import org.eclipse.sirius.viewpoint.description.Group; import org.eclipse.sirius.viewpoint.description.Viewpoint; import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.views.properties.tabbed.ITabDescriptor; -import org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider; import com.google.common.base.Preconditions; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import com.google.common.collect.Sets; -public class SiriusTabDescriptorProvider implements ITabDescriptorProvider { +public class SiriusTabDescriptorProvider implements IEEFTabDescriptorProvider { @Override - public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part, ISelection selection) { + public Collection<IEEFTabDescriptor> get(IWorkbenchPart part, ISelection selection) { if (selection instanceof IStructuredSelection) { IStructuredSelection structuredSelection = (IStructuredSelection) selection; Object[] objects = structuredSelection.toArray(); @@ -59,25 +57,25 @@ public class SiriusTabDescriptorProvider implements ITabDescriptorProvider { } } } - return new ITabDescriptor[0]; + return new ArrayList<IEEFTabDescriptor>(); } - private ITabDescriptor[] getTabDescriptors(EObject semanticElement) { + private Collection<IEEFTabDescriptor> getTabDescriptors(EObject semanticElement) { Session session = new EObjectQuery(semanticElement).getSession(); List<PageDescription> effectivePageDescriptions = computeEffectiveDescription(semanticElement, session); return getTabDescriptors(session, semanticElement, effectivePageDescriptions); } - private ITabDescriptor[] getTabDescriptors(Session session, EObject semanticElement, List<PageDescription> effectivePageDescriptions) { + private Collection<IEEFTabDescriptor> getTabDescriptors(Session session, EObject semanticElement, List<PageDescription> effectivePageDescriptions) { EEFViewDescription viewDescription = new ViewDescriptionConverter(session, semanticElement, effectivePageDescriptions).convert(); EEFView eefView = createEEFView(session, semanticElement, viewDescription); - List<ITabDescriptor> descriptors = new ArrayList<ITabDescriptor>(); + List<IEEFTabDescriptor> descriptors = new ArrayList<IEEFTabDescriptor>(); List<EEFPage> eefPages = eefView.getPages(); for (EEFPage eefPage : eefPages) { descriptors.add(new EEFTabDescriptor(eefPage)); } - return descriptors.toArray(new ITabDescriptor[descriptors.size()]); + return descriptors; } private EEFView createEEFView(Session session, EObject semanticElement, EEFViewDescription viewDescription) { diff --git a/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/ViewDescriptionConverter.java b/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/ViewDescriptionConverter.java index 9a4e7343cb..6b67ed876c 100644 --- a/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/ViewDescriptionConverter.java +++ b/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/ViewDescriptionConverter.java @@ -118,8 +118,8 @@ public class ViewDescriptionConverter { private void createPage(PageDescription pageDescription, EObject pageTarget, EEFViewDescription view) { EEFPageDescription page = EefFactory.eINSTANCE.createEEFPageDescription(); page.setIdentifier(pageDescription.getIdentifier()); - page.setLabelExpression(computeString(pageTarget, pageDescription.getLabelExpression())); - + page.setLabelExpression(pageDescription.getLabelExpression()); + page.setSemanticCandidateExpression(pageDescription.getSemanticCandidateExpression()); for (GroupDescription groupDescription : pageDescription.getGroups()) { instantiateGroups(groupDescription, page, pageTarget, view); } 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 bdad7333b0..858898deb4 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.sirius.diagram.ui/META-INF/MANIFEST.MF @@ -43,7 +43,8 @@ Require-Bundle: com.google.guava;bundle-version="[11.0.2,16.0)", org.eclipse.ui.navigator;bundle-version="3.5.200", 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.apache.xerces;bundle-version="2.9.0", + org.eclipse.eef.properties.ui;bundle-version="1.6.0" 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 dc6ce17346..24190bad73 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 @@ -17,6 +17,8 @@ import org.eclipse.core.resources.IMarker; 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; @@ -39,11 +41,12 @@ import org.eclipse.ui.ide.IGotoMarker; 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; /** * @not-generated */ -public class SiriusDiagramEditor extends DiagramDocumentEditor implements IGotoMarker, IAdaptable { +public class SiriusDiagramEditor extends DiagramDocumentEditor implements IGotoMarker, IAdaptable, IEEFTabbedPropertySheetPageContributor { /** * @was-generated @@ -107,7 +110,9 @@ public class SiriusDiagramEditor extends DiagramDocumentEditor implements IGotoM } }; } - + if (type == IPropertySheetPage.class) { + return new EEFTabbedPropertySheetPage(this); + } if (type == AdapterFactory.class) { return DiagramUIPlugin.getPlugin().getItemProvidersAdapterFactory(); } diff --git a/plugins/org.eclipse.sirius.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.editor/META-INF/MANIFEST.MF index c52d4c2cf4..7dc5e72505 100644 --- a/plugins/org.eclipse.sirius.editor/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.sirius.editor/META-INF/MANIFEST.MF @@ -6,7 +6,7 @@ Bundle-Version: 4.0.0.qualifier Bundle-Activator: org.eclipse.sirius.editor.editorPlugin.SiriusEditorPlugin$Implementation Bundle-Vendor: %providerName Bundle-Localization: plugin -Require-Bundle: org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.300", +Require-Bundle: org.eclipse.ui.views.properties.tabbed;bundle-version="3.6.100", org.eclipse.core.runtime;bundle-version="3.8.0", org.eclipse.emf.ecore.editor;bundle-version="2.8.0", org.eclipse.emf.ecore.xmi;bundle-version="2.8.1", |
