rcp(插件开发)如何过滤多余的菜单项?
来源:互联网 发布:java求数组的平均值 编辑:程序博客网 时间:2024/06/11 20:11
在Eclipse RCP开发中,如果你的dependencies中包含了org.eclipse.ui.ide,在创建菜单栏是你会发现出现了多余的菜单项,例如"Convert Line Delimiters to"和"Last Edit Location"这两个菜单项。如何去掉这些多余的菜单项呢?
可以在你的ApplicationActionBarAdvisor类中添加如下代码(可以在makeActions方法中调用以下代码:
public void removeDuplicateAction()
{
ActionSetRegistry reg = WorkbenchPlugin.getDefault().getActionSetRegistry();
IActionSetDescriptor[] actionSets = reg.getActionSets();
// removing annoying gotoLastPosition Message.
String actionSetId = "org.eclipse.ui.edit.text.actionSet.navigation"; //$NON-NLS-1$
for (int i = 0; i <actionSets.length; i++)
{
System.out.println(">>"+actionSets[i].getId());
if (!actionSets[i].getId().equals(actionSetId))
continue;
IExtension ext = actionSets[i].getConfigurationElement()
.getDeclaringExtension();
reg.removeExtension(ext, new Object[] { actionSets[i] });
}
// Removing convert line delimiters menu.
actionSetId = "org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo"; //$NON-NLS-1$
for (int i = 0; i <actionSets.length; i++)
{
if (!actionSets[i].getId().equals(actionSetId))
continue;
IExtension ext = actionSets[i].getConfigurationElement()
.getDeclaringExtension();
reg.removeExtension(ext, new Object[] { actionSets[i] });
}
actionSetId = "org.eclipse.ui.actionSet.openFiles";
for (int i = 0; i <actionSets.length; i++)
{
if (!actionSets[i].getId().equals(actionSetId))
continue;
IExtension ext = actionSets[i].getConfigurationElement()
.getDeclaringExtension();
reg.removeExtension(ext, new Object[] { actionSets[i] });
}
actionSetId = "org.eclipse.ui.edit.text.actionSet.annotationNavigation";
for (int i = 0; i <actionSets.length; i++)
{
if (!actionSets[i].getId().equals(actionSetId))
continue;
IExtension ext = actionSets[i].getConfigurationElement()
.getDeclaringExtension();
reg.removeExtension(ext, new Object[] { actionSets[i] });
}
}
- rcp(插件开发)如何过滤多余的菜单项?
- rcp(插件开发)如何获取MenuBar上的菜单
- rcp(插件开发)屏蔽eclipse的菜单项
- RCP去掉多余菜单
- rcp(插件开发) 如何获取eclipse or rcp的安装目录
- rcp(插件开发)popupMenus-弹出菜单分组问题
- rcp(插件开发)CNF 自定义视图-右键菜单-的简单实现
- rcp(插件开发) 如何使用插件下的Log日志
- rcp(插件开发) 如何使用插件下的Log日志
- Rcp(插件开发) 如何获取当前视图选中的对象
- rcp(插件开发)如何打开编辑器、视图、透视图
- rcp(插件开发)如何获取IWorkbenchPage对象?
- rcp(插件开发)如何初始化-最大化显示
- rcp(插件开发)如何获取视图(view)中当前选择的元素
- rcp(插件开发)如何保存显示在编辑区的所有编辑器
- rcp(插件开发)如何获取显示在编辑区的所有编辑器及获取其中之一
- rcp(插件开发)如何保存上一次的工作状态
- rcp(插件开发)如何保存并关闭显示在编辑区的单个编辑器
- 串口芯片型号
- Oracle开发中的数据被锁定的问题
- JavaScript中数据类型
- 英特尔的VT-x、VT-d、VT-c技术概述
- static
- rcp(插件开发)如何过滤多余的菜单项?
- 英语练习117 It's my pleasure
- Javax.comm简介
- 为什么要外包?!!
- DB大数据量的构建(转)
- JPEG文件格式 JFIF & Exif
- [C/C++]_[字符串处理]_[过滤出HTML标签的属性值]
- Android 图书总汇
- 使用CocosBuilder2.1结合cocos2d-x2.0.3创建动画场景