Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Redor2016-04-13 10:03:30 +0000
committerLaurent Redor2016-04-15 16:09:27 +0000
commit7cdab3ead9b8aba901db80b1fcb79fa8ff1270fd (patch)
treed369fefd40b0685dc268769619824d5d8d14fcc5
parent65cb7f5bca7ec4a5ed2676aeb39ebb826e8c929c (diff)
downloadorg.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>
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/editor/tabbar/AbstractTabbarContributor.java11
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/TabbarFillerWithContributions.java1
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/editor/tabbar/contributions/TabbarContributionFactory.java38
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

Back to the top