diff options
| author | Laurent Redor | 2016-04-13 10:03:30 +0000 |
|---|---|---|
| committer | Laurent Redor | 2016-04-15 16:09:27 +0000 |
| commit | 7cdab3ead9b8aba901db80b1fcb79fa8ff1270fd (patch) | |
| tree | d369fefd40b0685dc268769619824d5d8d14fcc5 | |
| parent | 65cb7f5bca7ec4a5ed2676aeb39ebb826e8c929c (diff) | |
| download | org.eclipse.sirius-7cdab3ead9b8aba901db80b1fcb79fa8ff1270fd.tar.gz org.eclipse.sirius-7cdab3ead9b8aba901db80b1fcb79fa8ff1270fd.tar.xz org.eclipse.sirius-7cdab3ead9b8aba901db80b1fcb79fa8ff1270fd.zip | |
[481573] Add the Concern contribution
This contribution has not been proposed in AbstractTabbarContributor in
the initial commit about bug 481573. So it is not possible to make a
specific tabbar by using Tabbar Contributor Extension Point. This commit
also completes what is done for bug 472051 (as the Concern contribution
has disappeared from the tabbar).
Bug: 481573
Change-Id: Ie484ac90cf4f0ad3ec03cc004468af2adc382b28
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
3 files changed, 50 insertions, 0 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/editor/tabbar/AbstractTabbarContributor.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/editor/tabbar/AbstractTabbarContributor.java index dd44f431aa..0fe3d591c6 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/editor/tabbar/AbstractTabbarContributor.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/editor/tabbar/AbstractTabbarContributor.java @@ -93,6 +93,17 @@ public abstract class AbstractTabbarContributor implements ITabbarContributor { } /** + * Creates the Concern Selection contribution item, if needed. + * + * @param part + * the diagram workbench part. + * @return the {@link IContributionItem} or null of it is not needed. + */ + protected IContributionItem createConcernContribution(IDiagramWorkbenchPart part) { + return contributorFactory.createConcernContribution(part); + } + + /** * Creates the Select Hidden Elements contribution item. * * @param part diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/TabbarFillerWithContributions.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/TabbarFillerWithContributions.java index 7e277d1a12..78c107b113 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/TabbarFillerWithContributions.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/TabbarFillerWithContributions.java @@ -153,6 +153,7 @@ public class TabbarFillerWithContributions extends AbstractTabbarFiller { addContributionItem(diagramContributionItems, REFRESH, contributionFactory.createRefreshContribution()); + addContributionItem(diagramContributionItems, LAYER_FILTER, contributionFactory.createConcernContribution(part)); addContributionItem(diagramContributionItems, LAYER_FILTER, contributionFactory.createFilterContribution(part, manager)); addContributionItem(diagramContributionItems, LAYER_FILTER, contributionFactory.createLayerContribution(part, manager)); diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/TabbarContributionFactory.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/TabbarContributionFactory.java index 50c8b0f291..13d1a5c00e 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/TabbarContributionFactory.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/TabbarContributionFactory.java @@ -25,8 +25,10 @@ import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IContributionItem; import org.eclipse.jface.action.ToolBarManager; import org.eclipse.sirius.diagram.DDiagram; +import org.eclipse.sirius.diagram.description.DiagramDescription; import org.eclipse.sirius.diagram.ui.part.SiriusDiagramActionBarContributor; import org.eclipse.sirius.diagram.ui.provider.DiagramUIPlugin; +import org.eclipse.sirius.diagram.ui.tools.api.action.ConcernComboContributionItem; import org.eclipse.sirius.diagram.ui.tools.api.editor.DDiagramEditor; import org.eclipse.sirius.diagram.ui.tools.api.image.DiagramImagesPath; import org.eclipse.sirius.diagram.ui.tools.internal.actions.SaveAsImageFileAction; @@ -147,6 +149,42 @@ public class TabbarContributionFactory { } /** + * Creates the Concern Selection contribution item, if needed. + * + * @param part + * the diagram workbench part. + * @return the {@link IContributionItem} or null of it is not needed. + */ + public IContributionItem createConcernContribution(IDiagramWorkbenchPart part) { + if (part instanceof DDiagramEditor) { + final DDiagram editorDiagram = (DDiagram) ((DDiagramEditor) part).getRepresentation(); + DiagramDescription description = null; + if (editorDiagram != null) { + description = editorDiagram.getDescription(); + } + + if (description != null) { + IWorkbenchPartSite site = part.getSite(); + if (site != null) { + return createConcernItem(editorDiagram, description, site); + } + } + } + return null; + } + + private IContributionItem createConcernItem(final DDiagram diagram, final DiagramDescription description, IWorkbenchPartSite site) { + if (description.getConcerns() != null && !description.getConcerns().getOwnedConcernDescriptions().isEmpty() && description.getConcerns().getOwnedConcernDescriptions().size() != 1) { + ConcernComboContributionItem item = new ConcernComboContributionItem(site.getPage(), ""); //$NON-NLS-1$ + if (diagram != null) { + item.setDiagram(diagram); + } + return item; + } + return null; + } + + /** * Creates the Select Hidden Elements contribution item. * * @param part |
