在Eclipse RCP开发中,如果你的dependencies中包含了org.eclipse.ui.ide,在创建菜单栏是你会发现出现了多余的菜单项,例如"Convert Line Delimiters to"和"Last Edit Location"这两个菜单项。如何去掉这些多余的菜单项呢?
可以在你的ApplicationActionBarAdvisor类中添加如下代码(可以在makeActions方法中调用以下代码):
Java代码
/*
* 去掉因为导入依赖包(org.eclipse.ui.ide)而产生的多余的菜单项,一般
* 情况下包括三个
*/
@SuppressWarnings("restriction")
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++)
{
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] });
}
}
/*
* 去掉因为导入依赖包(org.eclipse.ui.ide)而产生的多余的菜单项,一般
* 情况下包括三个
*/
@SuppressWarnings("restriction")
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++)
{
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] });
}
}
相关文章
- 【DIY小记】Ubuntu22.04去掉侧边菜单栏Floppy Disk图标的方法
- [Android] 对ImageView设置属性scaleType为FIT_START,如何去掉多余空白
- 计算机右键菜单太多,鼠标右键菜单选项太多?教你清理多余菜单选项的方法-win7右键菜单管理...
- Android12.0 SystemUI 下拉通知栏去掉左右滑动菜单
- 去掉桌面右键显卡菜单,Win7下也适用,记得用管理员身份运行! - yudragon
- 删除鼠标右键菜单多余选项的方法
- 删除”右键-新建“菜单中的多余项
- 去掉右键新建菜单多余内容
- ubuntu Grub 启动菜单编辑,删除多余的项目 - 灵聚
- mongodb转换List实体(去掉多余的字段) 批量添加