我在“文件”菜单中创建了一个菜单项作为命令。对于此命令,有一个实现IHandler
接口的处理程序。此处理程序包含isEnabled
方法。我正在尝试使用此方法来启用/禁用我的菜单项,但是当我单击“文件”菜单时,该方法仅被调用一次。单击第二次,第三次等时,即使我之前更改了页面状态(打开/关闭编辑器),也不会再次调用isEnabled
方法。
我该怎么办?也许这种方法不适用于控制菜单项?
答案 0 :(得分:3)
您是否将org.eclipse.core.commands.AbstractHandler
作为子类?您应该使用setBaseEnabled(boolean)
来更新处理程序的状态(这将更新您的命令)。
只有在您激活HandlerEvent
时,才有效更改处理程序中的启用状态。通常更容易调用setBaseEnabled(boolean)
来为您启动事件。
答案 1 :(得分:2)
如果您尝试启用/禁用菜单,则应使用核心表达式。 我已经在这个答案中解释了如何做到这一点:
Eclipse RCP menus & actions: Configure or code?
您感兴趣的部分始于:
用于激活/停用菜单[...]
我希望这是你正在寻找的东西。