我制作了一个带有一个菜单项的弹出菜单,我只想在右键单击某个类类型的树项时启用它,否则禁用它。
我怎样才能做到这一点?
您可以添加一个使用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>
我们可以通过重写Handler类的isEnabled方法来启用或禁用菜单项。以下是示例代码:
@Override
public boolean isEnabled() {
return false;
}