【问题标题】:RCP visiblewhen programmatically (Java)以编程方式显示 RCP (Java)
【发布时间】:2018-12-11 17:10:07
【问题描述】:

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

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

【问题讨论】:

  • 在此处显示您的代码
  • 这是 3.x 兼容模式 RCP 还是纯 e4 RCP?

标签: java eclipse-rcp rcp


【解决方案1】:

为此检查使用了命令的启用状态,该状态由 IHandler.isEnabled() 的返回值确定。

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

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

要启用/禁用命令,您必须在命令处理程序中实现 org.eclipse.core.commands.IHandler 的 isEnabled() 方法(或从 AbstractHandler 覆盖),如果菜单项应该隐藏,则返回 false。

【讨论】:

  • 我试图找到一种方法将可见逻辑从 plugin.xml 中移开,您的解决方案效果很好。谢谢!
猜你喜欢
  • 2012-04-13
  • 2011-09-05
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多