我经常有这个问题,并没有找到一个解决方案尚未:每当我写一个新的基于Eclipse RCP应用程序,包括从Eclipse平台的插件,我“继承”从一些UI贡献这些插件。禁用插件贡献
大部分贡献(菜单条目,键盘快捷键,属性页)都很有用,但有时候我宁愿禁用这些贡献中的一部分,因为我真的不需要它们,它们可能会混淆用户。
有谁知道官方或禁用在Eclipse RCP应用程序/禁止选择贡献一条可行之路的?
我经常有这个问题,并没有找到一个解决方案尚未:每当我写一个新的基于Eclipse RCP应用程序,包括从Eclipse平台的插件,我“继承”从一些UI贡献这些插件。禁用插件贡献
大部分贡献(菜单条目,键盘快捷键,属性页)都很有用,但有时候我宁愿禁用这些贡献中的一部分,因为我真的不需要它们,它们可能会混淆用户。
有谁知道官方或禁用在Eclipse RCP应用程序/禁止选择贡献一条可行之路的?
看看Eclipse的“Activities”API。它允许你隐藏基于ID的贡献。
几个环节:
其接近做的唯一方法是:
IMenuService::removeContributionFactory()
保罗·韦伯斯特已经呼吁IMenuService::addOverride()
改变菜单的可见性,防止任何贡献,但这一想法还没有尚未整合。
你可以看到去除这一org.eclipse.ui.tests.menus.MenuBuilder
类贡献的一个例子。
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;
}
谢谢!但是,我是否正确 - 我通过这种方式禁用了所有*贡献?没有办法禁用个人捐款,也许由他们的ID识别? – 2009-09-13 07:51:16
春分变换也可用于提供XLST变换是删除不需要的UI贡献。
我不认为removeContributionFactory()是禁用*所有*的贡献,相反却是使用非注册一个视图/菜单贡献“'dispose'”机制,我提议使用显式删除来自其他*插件的贡献。 – VonC 2009-09-13 08:37:36
所以它是:a /不*完全*你在找什么,b /不容易,因为你必须检测这些贡献并将其删除。但这是迄今为止我所拥有的。 – VonC 2009-09-13 08:39:32
重新阅读你的评论:不,你没有禁用*所有*贡献(来自*所有*其他插件),但你可能会结束从一个给定的外部插件禁用所有贡献。 – VonC 2009-09-13 08:41:08