package org.marketcetera.photon.ui; import org.eclipse.jface.action.GroupMarker; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Table; import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkbenchPartSite; public class ContextMenuFactory { public void createContextMenu(String name, final Table table, IWorkbenchPartSite site) { createContextMenu(name, table, site, site.getSelectionProvider()); } public void createContextMenu(String name, final Table table, IWorkbenchPartSite site, ISelectionProvider selectionProvider) { Menu menu; Menu existingMenu = table.getMenu(); MenuManager menuMgr = new MenuManager(name); if (existingMenu != null) { menu = existingMenu; } else { menu = menuMgr.createContextMenu(table); menuMgr .add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); } table.setMenu(menu); table.setData(MenuManager.class.toString(), menuMgr); site.registerContextMenu(menuMgr, selectionProvider); } }