@Override public void fillContextMenu(IMenuManager menu) { if (viewer == null) { return; } CDOCheckout checkout = CDOExplorerUtil.getCheckout(selectedObject); if (checkout == null || checkout.isReadOnly()) { return; } IMenuManager submenu = new MenuManager("&New", NEW_MENU_NAME); fillNewWizardActions(submenu); if (selectedObject instanceof CDOResource) { CDOResource resource = (CDOResource) selectedObject; if (!resource.isRoot()) { fillNewRootActions(submenu, checkout, resource); submenu.add(new Separator()); submenu.add(new NewRootOtherAction(resource, checkout)); submenu.add(new Separator()); } } else if (selectedObject instanceof CDOResourceNode) { // Do nothing. CDOResourceFolder contributions have already been added by // newWizardActionGroup. } else if (selectedObject instanceof EObject) { fillNewChildActions(submenu, checkout, (EObject) selectedObject); } submenu.add(new Separator(ICommonMenuConstants.GROUP_ADDITIONS)); // Append the submenu after the GROUP_NEW group. menu.insertAfter(ICommonMenuConstants.GROUP_NEW, submenu); }