eclipse插件开发中删除掉eclipse中原有的菜单 Eclipse
程序员文章站
2024-02-25 18:04:33
...
在前一个项目中用到了插件开发,其中有一个任务就是要去除掉eclipse中原有的一些菜单项或者菜单栏,当时刚开始接触插件,苦闷了很久。经过一段时间的学习,发现了menumanager这个类,这个问题终于解决了。啥都不说了 贴个代码:
/**
* 删除菜单
*
* @param win
*/
public void delMenuItems(WorkbenchWindow win) {
MenuManager manager = win.getMenuBarManager();
//在这里删除的是菜单栏 在这里测试删除掉 edit (编辑)
manager.remove("edit");
// 在这里删除掉File菜单栏下的一些菜单项 我们先获取File的menumanager
IMenuManager menuManager = manager.findMenuUsingPath("file");
if (menuManager != null) {
//删除File菜单栏下面的导入和导出
menuManager.remove("import");
menuManager.remove("export");
menuManager.update(true);
}
//最后需要更新一下menumanger
manager.update(true);
}
我们可以在eclipse启动的时候监听workbench启动后执行该方法即可。对于RCP程序,那就更简单了,在ApplicationWorkbenchWindowAdvisor类中的postWindowOpen方法中调用该删除菜单的方法即可。
/**
* 删除菜单
*
* @param win
*/
public void delMenuItems(WorkbenchWindow win) {
MenuManager manager = win.getMenuBarManager();
//在这里删除的是菜单栏 在这里测试删除掉 edit (编辑)
manager.remove("edit");
// 在这里删除掉File菜单栏下的一些菜单项 我们先获取File的menumanager
IMenuManager menuManager = manager.findMenuUsingPath("file");
if (menuManager != null) {
//删除File菜单栏下面的导入和导出
menuManager.remove("import");
menuManager.remove("export");
menuManager.update(true);
}
//最后需要更新一下menumanger
manager.update(true);
}
我们可以在eclipse启动的时候监听workbench启动后执行该方法即可。对于RCP程序,那就更简单了,在ApplicationWorkbenchWindowAdvisor类中的postWindowOpen方法中调用该删除菜单的方法即可。