Java 禁用Eclipse RCP应用程序中的插件贡献
我经常遇到这个问题,但还没有找到解决方案:每当我编写一个新的基于EclipseRCP的应用程序并包含来自Eclipse平台的插件时,我都会从这些插件中“继承”UI贡献 大多数贡献(菜单项、键盘快捷键、属性页)都很有用,但有时我宁愿禁用其中一些贡献,因为我真的不需要它们,它们可能会混淆用户Java 禁用Eclipse RCP应用程序中的插件贡献,java,eclipse,eclipse-rcp,Java,Eclipse,Eclipse Rcp,我经常遇到这个问题,但还没有找到解决方案:每当我编写一个新的基于EclipseRCP的应用程序并包含来自Eclipse平台的插件时,我都会从这些插件中“继承”UI贡献 大多数贡献(菜单项、键盘快捷键、属性页)都很有用,但有时我宁愿禁用其中一些贡献,因为我真的不需要它们,它们可能会混淆用户 有人知道在Eclipse RCP应用程序中禁用/禁止选定贡献的官方或实用方法吗?唯一接近此目的的方法是: 保罗·韦伯斯特(Paul Webster)一直呼吁采取措施改变菜单的可见性,防止任何贡献,但这一想法尚
有人知道在Eclipse RCP应用程序中禁用/禁止选定贡献的官方或实用方法吗?唯一接近此目的的方法是: 保罗·韦伯斯特(Paul Webster)一直呼吁采取措施改变菜单的可见性,防止任何贡献,但这一想法尚未被整合 您可以看到在这个类中删除贡献的示例
看看Eclipse“活动”API。它允许您根据ID隐藏贡献 几个链接:
dispose
”机制,我建议用它来明确地删除来自其他插件的贡献。所以它是:a/不完全是你想要的,b/不容易,因为你必须检测这些贡献并删除它们。但这就是我到目前为止得到的。重读你的评论:不,你没有禁用所有贡献(来自所有其他插件),但你可能最终禁用来自某个给定外部插件的所有贡献。
public static void removeMenuContribution() {
if (!PlatformUI.isWorkbenchRunning()) {
return;
}
IMenuService menuService = (IMenuService) PlatformUI.getWorkbench()
.getService(IMenuService.class);
if (menuService==null) {
return;
}
menuService.removeContributionFactory(viewMenuAddition);
viewMenuAddition = null;
menuService.removeContributionFactory(viewToolbarAddition);
viewMenuAddition = null;
}