【问题标题】:How remove pop-up menu contributions in eclipse RCP如何删除 Eclipse RCP 中的弹出菜单贡献
【发布时间】:2011-06-12 11:33:07
【问题描述】:

我在一个 RCP 应用程序中工作,并且我知道哪个数据模型是 IResources 的实例。当弹出菜单可见时,我发现我想删除的其他插件贡献的命令。

代码示例:

1 菜单管理器菜单管理器 = 新菜单管理器(); 2 mm.setRemoveAllWhenShown(true); 3 菜单菜单 = menuManager.createContextMenu(this.treeViewer.getControl()); 4 this.treeViewer.getControl().setMenu(menu); 5 getSite().registerContextMenu(menuManager, this.treeViewer);

如果我注释第 5 行上下文菜单不出现。

是否可以使用 plugin.xml 中的 menu-contribution 并删除其他插件的贡献?

注意:我的弹出菜单是声明性的,它位于 plugin.xml 中。

提前致谢

【问题讨论】:

    标签: eclipse eclipse-plugin eclipse-rcp


    【解决方案1】:

    一种可能的方法是执行所谓的“Equinox 变压器挂钩”,请参阅http://wiki.eclipse.org/Equinox_Transforms

    您可以通过一些示例检查捆绑包(有关更多信息,请参见 wiki 页面),我在 XSLT 转换器方面取得了很好的经验,可以在某些 plugin.xml 文件向平台贡献扩展之前对其进行操作(唯一的挑战是找出哪个包造成了烦人的上下文菜单条目,但您可以使用 PluginSpy 来确定“邪恶者”:-P。

    HTH 汤姆

    【讨论】:

    • 看起来有两种方法可以禁用其他插件贡献。Activities api 和这个。我要测试一下。谢谢汤姆斯
    【解决方案2】:

    您还可以将活动用于通过 plugin.xml 贡献的任何内容。对于 objectContributions,您将使用“contributing.plugin.id/action.id”形式。下面是一个适用于向导的示例,但同样的模式也可以应用于特定的操作:

    <extension point="org.eclipse.ui.activities">
       <category id="z.ex.commands.category"
             name="ReadMe Cat"/>
       <activity id="z.ex.commands.activity"
             name="ReadMe Act"/>
       <activityPatternBinding activityId="z.ex.commands.activity"
             isEqualityPattern="true"
             pattern="org.eclipse.ui.examples.readmetool/org.eclipse.ui.examples.readmetool.wizards.new.file"/>
       <categoryActivityBinding activityId="z.ex.commands.activity"
             categoryId="z.ex.commands.category">
    </extension>
    

    Plug-in Registry 视图可用于查找操作的 ID,但您必须进行一些搜索。

    【讨论】:

      【解决方案3】:

      弹出菜单对象提供了扩展元素的可见性和启用。如果您想隐藏特定类的对象贡献,您可以按如下方式设置可见性对象状态。

      <visibility>
          <not>
            <objectClass
                name="{classname}">
            </objectClass>
          </not>
      </visibility>
      

      【讨论】:

        猜你喜欢
        • 2013-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多