在ecplipse中,RCP应用程序自动获取菜单栏中的“运行”选项要删除它

时间:2017-04-11 16:06:36

标签: eclipse eclipse-plugin swt eclipse-rcp jface

enter image description here在我的Eclipse RCP应用程序中,我在菜单栏中自动获得“运行”选项。没有写任何代码。所以,我想删除它。

默认情况下也会获取搜索菜单。这个应用程序没问题。但是,我手动创建的菜单项如(文件,编辑器),这些项目和搜索菜单项目的距离不一样。请在eclipse RCP中帮助我克服距离上的manu项目。

3 个答案:

答案 0 :(得分:0)

只需将此代码粘贴到ApplicationWorkbenchWindowAdvisor.java类中。

public void postWindowOpen() { 
    // remove unwanted UI contributions that eclipse makes by default
    IWorkbenchWindow[] windows = PlatformUI.getWorkbench ().getWorkbenchWindows();
    for (int i = 0; i < windows.length; ++i) {
        IWorkbenchPage page = windows[i].getActivePage();
        if (page != null) {

            WorkbenchWindow workbenchWin = (WorkbenchWindow)PlatformUI.getWorkbench().getActiveWorkbenchWindow();
            MenuManager menuManager = workbenchWin.getMenuManager();
            IContributionItem[] items = menuManager.getItems();

            for(IContributionItem item : items) {
                if(item.getId().equals("org.eclipse.ui.run")){
              item.setVisible(false);
                }
            }
            // hide 'Search' commands
            page.hideActionSet("org.eclipse.search.searchActionSet");

        }
    }
}

答案 1 :(得分:0)

我建议使用插件间谍功能。 Alt+shift+F1Alt+shift+F2。 您可以先在开发环境中使用,也可以在rcp上使用插件间谍。只需将org.eclipse.pde.runtime插件添加到您的rcp。

你可以找出你的rcp上哪个插件贡献菜单项,如果你认为不需要插件,你可以从你的rcp中删除该插件。

答案 2 :(得分:0)

要删除菜单中的所有默认选项,您需要在ApplicationWorkbenchWindowAdvisor.java类中添加以下代码。

@Override
public void postWindowOpen() { 
    IWorkbenchWindow workbenchWindow =  PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    IContributionItem[] items = ((WorkbenchWindow)workbenchWindow).getMenuBarManager().getItems();
    for (IContributionItem item : items) {
            item.setVisible(false);
    }
}