X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.browsing.ui.swt%2Fsrc%2Forg%2Fsimantics%2Fbrowsing%2Fui%2Fswt%2FContextMenuInitializer.java;h=26fc1a6c333a02022ebf0192d459ed288ab94c60;hp=b4b587c886154aba1fec04f75dd10d68bc6d3934;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/ContextMenuInitializer.java b/bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/ContextMenuInitializer.java index b4b587c88..26fc1a6c3 100644 --- a/bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/ContextMenuInitializer.java +++ b/bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/ContextMenuInitializer.java @@ -1,79 +1,79 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management - * in Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.browsing.ui.swt; - -import org.eclipse.jface.action.GroupMarker; -import org.eclipse.jface.action.IMenuListener; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.jface.viewers.ISelectionProvider; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Menu; -import org.eclipse.ui.IWorkbenchActionConstants; -import org.eclipse.ui.IWorkbenchPartSite; -import org.eclipse.ui.IWorkbenchSite; -import org.eclipse.ui.part.IPageSite; - -/** - * @author Tuukka Lehtonen - */ -public class ContextMenuInitializer implements IContextMenuInitializer { - - private final String text; - private final String id; - - public ContextMenuInitializer(String id) { - this("", id); - } - - public ContextMenuInitializer(String text, String id) { - this.text = text; - this.id = id; - } - - @Override - public IMenuManager createContextMenu(Control control, ISelectionProvider selectionProvider, IWorkbenchSite site) { - final MenuManager mm = new MenuManager(text, id); - - mm.setRemoveAllWhenShown(true); - mm.addMenuListener(new IMenuListener() { - @Override - public void menuAboutToShow(IMenuManager manager) { - initializeOpenedMenu(manager); - } - }); - - Menu menu = mm.createContextMenu(control); - control.setMenu(menu); - - if (site != null) { - if (site instanceof IWorkbenchPartSite) { - ((IWorkbenchPartSite) site).registerContextMenu(mm.getId(), mm, selectionProvider); - } else if (site instanceof IPageSite) { - ((IPageSite) site).registerContextMenu(mm.getId(), mm, selectionProvider); - } - } - - return mm; - } - - protected void initializeOpenedMenu(IMenuManager mm) { - mm.add(new GroupMarker(IWorkbenchActionConstants.WB_START)); -// mm.add(new GroupMarker(IWorkbenchActionConstants.NEW_EXT)); -// mm.add(new GroupMarker(IWorkbenchActionConstants.OPEN_EXT)); -// mm.add(new GroupMarker(IWorkbenchActionConstants.IMPORT_EXT)); -// mm.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); -// mm.add(new GroupMarker(IWorkbenchActionConstants.WB_END)); - //mm.add(new Separator()); - } - +/******************************************************************************* + * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.browsing.ui.swt; + +import org.eclipse.jface.action.GroupMarker; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.viewers.ISelectionProvider; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.ui.IWorkbenchActionConstants; +import org.eclipse.ui.IWorkbenchPartSite; +import org.eclipse.ui.IWorkbenchSite; +import org.eclipse.ui.part.IPageSite; + +/** + * @author Tuukka Lehtonen + */ +public class ContextMenuInitializer implements IContextMenuInitializer { + + private final String text; + private final String id; + + public ContextMenuInitializer(String id) { + this("", id); + } + + public ContextMenuInitializer(String text, String id) { + this.text = text; + this.id = id; + } + + @Override + public IMenuManager createContextMenu(Control control, ISelectionProvider selectionProvider, IWorkbenchSite site) { + final MenuManager mm = new MenuManager(text, id); + + mm.setRemoveAllWhenShown(true); + mm.addMenuListener(new IMenuListener() { + @Override + public void menuAboutToShow(IMenuManager manager) { + initializeOpenedMenu(manager); + } + }); + + Menu menu = mm.createContextMenu(control); + control.setMenu(menu); + + if (site != null) { + if (site instanceof IWorkbenchPartSite) { + ((IWorkbenchPartSite) site).registerContextMenu(mm.getId(), mm, selectionProvider); + } else if (site instanceof IPageSite) { + ((IPageSite) site).registerContextMenu(mm.getId(), mm, selectionProvider); + } + } + + return mm; + } + + protected void initializeOpenedMenu(IMenuManager mm) { + mm.add(new GroupMarker(IWorkbenchActionConstants.WB_START)); +// mm.add(new GroupMarker(IWorkbenchActionConstants.NEW_EXT)); +// mm.add(new GroupMarker(IWorkbenchActionConstants.OPEN_EXT)); +// mm.add(new GroupMarker(IWorkbenchActionConstants.IMPORT_EXT)); +// mm.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); +// mm.add(new GroupMarker(IWorkbenchActionConstants.WB_END)); + //mm.add(new Separator()); + } + } \ No newline at end of file