禁用Eclipse RCP应用程序中的插件贡献

时间:2009-09-12 17:42:15

标签: java eclipse eclipse-rcp

我经常遇到这个问题并且还没有找到解决方案:每当我编写一个基于Eclipse RCP的新应用程序并包含Eclipse平台的插件时,我都会继承其中一些插件的UI贡献。

大部分贡献(菜单条目,键盘快捷键,属性页面)都很有用,但有时候我宁愿禁用其中的一些贡献,只是因为我真的不需要它们而且可能会让用户感到困惑。

有没有人知道在Eclipse RCP应用程序中禁用/禁止所选贡献的官方或实用方法?

3 个答案:

答案 0 :(得分:4)

答案 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转换。