package com.tibco.as.spacebar.ui.navigator; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.actions.ActionFactory; import org.eclipse.ui.navigator.CommonActionProvider; import org.eclipse.ui.navigator.ICommonActionExtensionSite; import org.eclipse.ui.navigator.ICommonMenuConstants; import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite; import org.eclipse.ui.navigator.WizardActionGroup; public class NewActionProvider extends CommonActionProvider { private static final String NEW_MENU_NAME = "common.new.menu"; private ActionFactory.IWorkbenchAction newAction; private WizardActionGroup newWizardActionGroup; private boolean contribute = false; @Override public void init(ICommonActionExtensionSite site) { if (site.getViewSite() instanceof ICommonViewerWorkbenchSite) { IWorkbenchWindow window = ((ICommonViewerWorkbenchSite) site .getViewSite()).getWorkbenchWindow(); newAction = ActionFactory.NEW.create(window); newWizardActionGroup = new WizardActionGroup(window, PlatformUI .getWorkbench().getNewWizardRegistry(), WizardActionGroup.TYPE_NEW, site.getContentService()); contribute = true; } } @Override public void fillContextMenu(IMenuManager menu) { IMenuManager newSubmenu = new MenuManager("New", NEW_MENU_NAME); if (!contribute) { return; } newWizardActionGroup.setContext(getContext()); newWizardActionGroup.fillContextMenu(newSubmenu); menu.insertAfter(ICommonMenuConstants.GROUP_NEW, newSubmenu); } @Override public void dispose() { if (newAction != null) { newAction.dispose(); newAction = null; } super.dispose(); } }