Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Monnier2017-11-30 09:55:54 +0000
committerSteve Monnier2017-12-06 10:58:49 +0000
commit6d651f3a3331740a10f1c1ff1bae2f7a17af3336 (patch)
treecd8d76177844fb967a258da6f3b7b1ba864a8ed6
parent379d03bd545f92a7a53ac974bf2500b9ca3ff211 (diff)
downloadorg.eclipse.sirius-6d651f3a3331740a10f1c1ff1bae2f7a17af3336.tar.gz
org.eclipse.sirius-6d651f3a3331740a10f1c1ff1bae2f7a17af3336.tar.xz
org.eclipse.sirius-6d651f3a3331740a10f1c1ff1bae2f7a17af3336.zip
[527944] Listen to action provider contribution in treeviewer
Association of a NavigatorActionService to the treeviewer of the Models part of the overview of the session editor to add contextual action provided by action providers. Bug:527944 Change-Id: Ia53eac883a026997a0f8db6e761b2a0aad916adc Signed-off-by: Steve Monnier <steve.monnier@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java b/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java
index 4ca9318601..1e34035adc 100644
--- a/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java
+++ b/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java
@@ -99,6 +99,7 @@ import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchSite;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
@@ -106,8 +107,11 @@ import org.eclipse.ui.actions.ActionContext;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.CommonViewerSiteFactory;
+import org.eclipse.ui.navigator.ICommonViewerSite;
import org.eclipse.ui.navigator.INavigatorContentService;
import org.eclipse.ui.navigator.INavigatorFilterService;
+import org.eclipse.ui.navigator.NavigatorActionService;
import org.eclipse.ui.navigator.NavigatorContentServiceFactory;
/**
@@ -421,6 +425,19 @@ public class GraphicalSemanticModelsHandler implements SessionListener, SessionM
manageSessionActionProvider.initFromViewer(treeViewer);
treeViewer.getControl().setMenu(menu);
+ ICommonViewerSite createCommonViewerSite = CommonViewerSiteFactory.createCommonViewerSite(SEMANTIC_MODELS_VIEWER_ID, selectionProvider, treeViewer.getControl().getShell());
+
+ NavigatorActionService actionService = new NavigatorActionService(createCommonViewerSite, treeViewer, treeViewer.getNavigatorContentService());
+
+ actionService.prepareMenuForPlatformContributions(menuManager, treeViewer, true);
+
+ menuManager.addMenuListener((manager) -> {
+ actionService.setContext(new ActionContext(treeViewer.getSelection()));
+ actionService.fillContextMenu(menuManager);
+
+ });
+ menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+
commandStackListener = new CommandStackListener() {
@Override
public void commandStackChanged(final EventObject event) {
@@ -451,6 +468,7 @@ public class GraphicalSemanticModelsHandler implements SessionListener, SessionM
}
};
session.getTransactionalEditingDomain().getCommandStack().addCommandStackListener(commandStackListener);
+
return treeViewer;
}

Back to the top