RCP 以编程方式可见 (Java)

RCP visiblewhen programmatically (Java)

我在 plugin.xml 中有一个命令,它将添加一个新的菜单按钮。这个按钮不应该一直可见,因此我想检查 Java 代码中的一个复杂条件来决定它何时必须可见。

我知道有 visiblewhen 和 hidewhen 的可能性,但我不知道如何让 Java class/method 做出决定。

为此检查使用命令的启用状态,它由 IHandler.isEnabled() 的 return 值决定。

在plugin.xml中命令对菜单的贡献必须有visibleWhen元素和checkEnabled="true"。在 Eclipse 中你可以右键单击命令贡献并添加可见时,在 plugin.xml 中它看起来像这样:

     <command
           commandId="...">
        <visibleWhen
              checkEnabled="true">
        </visibleWhen>
     </command>

对于 enable/disable 命令,您必须在命令处理程序中从 org.eclipse.core.commands.IHandler(或从 AbstractHandler 覆盖)实现 isEnabled() 方法,如果菜单条目 return false应该隐藏起来。