我经常有这个问题,并没有找到一个解决方案尚未:每当我写一个新的基于Eclipse RCP应用程序,包括从Eclipse平台的插件,我“继承”一些这些插件的UI贡献。
这其中大部分贡献(菜单项,键盘快捷方式属性页)是有用的,但有时我宁愿禁用其中的一些贡献,只是因为我真的不需要他们,他们可能会混淆用户。
有谁知道官方或禁用/禁止在Eclipse RCP应用程序选定的贡献一条可行之路的?
我经常有这个问题,并没有找到一个解决方案尚未:每当我写一个新的基于Eclipse RCP应用程序,包括从Eclipse平台的插件,我“继承”一些这些插件的UI贡献。
这其中大部分贡献(菜单项,键盘快捷方式属性页)是有用的,但有时我宁愿禁用其中的一些贡献,只是因为我真的不需要他们,他们可能会混淆用户。
有谁知道官方或禁用/禁止在Eclipse RCP应用程序选定的贡献一条可行之路的?
看看Eclipse的“活动”的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;
}
春分变换也可用于提供XLST变换是删除不需要的UI贡献。