if (menu == null) {
final MenuManager contextMenu = new MenuManager();
contextMenu.setRemoveAllWhenShown(true);
contextMenu.addMenuListener(new IMenuListener(){
public void menuAboutToShow( IMenuManager mgr ) {
IToolManager tm = ApplicationGIS.getToolManager();
contextMenu.add(tm.getENTERAction());
contextMenu.add(new Separator());
contextMenu.add(tm.getZOOMTOSELECTEDAction());
contextMenu.add(new Separator());
contextMenu.add(tm.getBACKWARD_HISTORYAction());
contextMenu.add(tm.getFORWARD_HISTORYAction());
contextMenu.add(new Separator());
//contextMenu.add(tm.createCUTAction(MapEditorWithPalette.this));
contextMenu.add(tm.getCOPYAction(MapEditorWithPalette.this));
contextMenu.add(tm.getPASTEAction(MapEditorWithPalette.this));
contextMenu.add(tm.getDELETEAction());
/*
* Gets contributions from active modal tool if possible
*/
tm.contributeActiveModalTool(contextMenu);
contextMenu.add(new Separator());
contextMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
if (getMap().getEditManager().getEditFeature() != null) {
contextMenu.add(ProjectUIPlugin.getDefault().getFeatureEditProcessor()