Eclipse RCP 4:activityPatternBinding不适用于菜单

时间:2018-02-05 17:46:18

标签: eclipse-rcp e4

我正在尝试将Eclipse RCP 3应用程序迁移到Eclipse RCP 4.我们当前使用activityPatternBinding来隐藏其他插件提供的UI元素,如下所示:

<extension point="org.eclipse.ui.activities">
    <activity id="my.app" name="MyApp"></activity>

    <activityPatternBinding
          activityId="my.app"
          isEqualityPattern="false"
          pattern="my\.app/.*">
    </activityPatternBinding>    
</extension>

然而,这似乎不适用于Eclipse RCP 4中的主菜单项。它适用于子菜单项。

在网上搜索我发现了这个问题的引用:

  

https://wiki.eclipse.org/Eclipse4/KnownIssues/4.1

     

菜单/工具栏问题

     

(4.2)功能/活动未集成到Command系统的处理中。虽然这不太可能通过4.1的发布完全完成,但我们已经将所有内容都默认为“开启”。这可能会导致您在3.x中看到更多的贡献,但应该保证您可以获得所需的任何内容。

和错误报告:

  

https://bugs.eclipse.org/bugs/show_bug.cgi?id=450284

     

活动不适用于菜单   我们已将Eclipse 3.7的应用程序目标平台更新到Eclipse 4.4.1。   我现在注意到有些活动不再有效了。

在最新的Eclipse RCP版本(4.7.x)中,这仍然是一个已知问题吗?有没有办法解决这个问题,隐藏主菜单项?

1 个答案:

答案 0 :(得分:4)

试试这个。我在E4应用程序中也遇到过类似的问题

隐藏主菜单项注入MTrimmedWindow并从修剪窗口获取主菜单并使用菜单ID检查主菜单,如果要启用特定菜单(或)使用setToBeRendered(true)和setVisible(true)如果你想隐藏使用setToBeRendered(false)和setVisible(false)。以下是我完成的示例代码

  1. 注入MTrimmedWindow
  2. @注入 私人MTrimmedWindow mTrimmedWindow;

    ///////////////

    1. 将您的菜单ID传递给以下方法
    2. enter image description here