diff options
| author | Steve Monnier | 2017-11-30 09:55:54 +0000 |
|---|---|---|
| committer | Steve Monnier | 2017-12-06 10:58:49 +0000 |
| commit | 6d651f3a3331740a10f1c1ff1bae2f7a17af3336 (patch) | |
| tree | cd8d76177844fb967a258da6f3b7b1ba864a8ed6 | |
| parent | 379d03bd545f92a7a53ac974bf2500b9ca3ff211 (diff) | |
| download | org.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.java | 18 |
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; } |
