6

我用一个菜单项制作了一个弹出菜单,我只想在右键单击某个类类型的树项时启用它,否则禁用它。

我怎样才能做到这一点?

4

2 回答 2

7

您可以添加一个使用activeWhen的处理程序并将其与该菜单的命令 ID 相关联。

这是一个处理程序,仅当当前选择不为空时才使命令处于活动状态,并且选择是可以适应Widget类型的对象的项:

<extension point="org.eclipse.ui.handlers">
  <handler class="com.myproject.handlers.ExportWidgetHandler"
           commandId="com.myproject.commands.exportWidget">
     <activeWhen>
        <with variable="selection">
           <iterate ifEmpty="false" operator="and">
              <adapt type="com.myproject.objects.Widget"/>
           </iterate>
        </with>
     </activeWhen>
  </handler>
</extension>
于 2012-07-12T13:41:25.147 回答
0

我们可以通过重写 Handler 类的 isEnabled 方法来启用或禁用菜单项。下面是示例代码:

@Override
public boolean isEnabled() {
    return false;
}
于 2020-06-10T10:14:13.337 回答