Eclipse RCP - 有条件地显示菜单

时间:2013-06-18 11:01:37

标签: eclipse eclipse-rcp rich-client-platform

我正在开发一个Eclipse RCP产品(基于Eclipse 3.6),它有多个应用程序/插件。 以下是我遇到的用例: 有3个插件A,B和C.我需要在插件A和B(不在C中)的“编辑”菜单中显示菜单贡献,仅在安装了插件C时。如果未安装插件C,则不应显示菜单贡献 - 即使在禁用状态下也不会显示。 在进行一些搜索时,我发现有一个属性测试器可以确定是否安装了插件 - 它将被用作:

<with variable="platform">
    <test property="org.eclipse.core.runtime.isBundleInstalled" args="com.mybundle"/>
</with>

然而,当我尝试它并不适合我。 我不确定在我尝试使用它的上下文中是否使用此属性是否相关。有人可以帮忙吗? 如果无代码选项不可行,那么我将不得不以编程方式显示/隐藏菜单贡献,但我不知道理想情况下应该在哪里完成。 我应该为插件A和B编写PerspectiveListener,并在验证C已安装后添加PerspectiveActivated的菜单贡献吗?

请帮忙。

谢谢和问候, Pradyumna

1 个答案:

答案 0 :(得分:1)

我犯了一个错误,因为isBundleInstalled无效。变量platform不可用,因此我没有得到预期的输出。用org.eclipse.core.runtime.Platform替换它就可以了。