我经常遇到这个问题并且还没有找到解决方案:每当我编写一个基于Eclipse RCP的新应用程序并包含Eclipse平台的插件时,我都会继承其中一些插件的UI贡献。
大部分贡献(菜单条目,键盘快捷键,属性页面)都很有用,但有时候我宁愿禁用其中的一些贡献,只是因为我真的不需要它们而且可能会让用户感到困惑。
有没有人知道在Eclipse RCP应用程序中禁用/禁止所选贡献的官方或实用方法?
答案 0 :(得分:4)
查看Eclipse“Activities”API。它允许您根据ID隐藏贡献。
一些链接:
答案 1 :(得分:3)
唯一接近的方法是:
IMenuService::removeContributionFactory()
Paul Webster一直呼吁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;
}
答案 2 :(得分:0)
Equinox转换也可用于提供删除不需要的UI贡献的XLST转换。