根据 Eclipse 插件中视图的可见性使菜单条目可见?

Make menu entry visible depending on visibility of view in Eclipse plugin?

我想实现以下几点:

在我的 Eclipse 插件中,我有一个菜单项(通过向 plugin.xml 添加一个命令和一个处理程序 class 来实现)。按下条目会触发一些动作,这些动作取决于视图中显示的数据(也由插件提供)。

现在,如果视图关闭,则无法执行操作。因此,我认为当视图不可见时禁用菜单项是一种很好的风格。

我发现 this article 描述了如何 disable/enable 菜单,但我不知道如何将它与视图的可见性结合起来。

有人可以帮忙吗?

编辑:我用不同的方式解决了我的问题。但是 greg 的回答通常应该可以解决这个问题,正如官方 eclipse 文档中所述: http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fworkbench_cmd_expressions.htm

使用

<with variable="activePartId">
    <equals value="part id"/>
</with>

在 'enabledWhen'、'activeWhen' 或 'visibleWhen' 表达式中(具体取决于您使用表达式的位置)。

例如 select 当 'Project Explorer' 处于活动状态时:

<with variable="activePartId">
    <equals value="org.eclipse.ui.navigator.ProjectExplorer"/>
</with>