更新Eclipse菜单项启用状态

时间:2011-05-21 12:40:36

标签: eclipse-rcp

我在“文件”菜单中创建了一个菜单项作为命令。对于此命令,有一个实现IHandler接口的处理程序。此处理程序包含isEnabled方法。我正在尝试使用此方法来启用/禁用我的菜单项,但是当我单击“文件”菜单时,该方法仅被调用一次。单击第二次,第三次等时,即使我之前更改了页面状态(打开/关闭编辑器),也不会再次调用isEnabled方法。

我该怎么办?也许这种方法不适用于控制菜单项?

2 个答案:

答案 0 :(得分:3)

您是否将org.eclipse.core.commands.AbstractHandler作为子类?您应该使用setBaseEnabled(boolean)来更新处理程序的状态(这将更新您的命令)。

只有在您激活HandlerEvent时,才有效更改处理程序中的启用状态。通常更容易调用setBaseEnabled(boolean)来为您启动事件。

答案 1 :(得分:2)

如果您尝试启用/禁用菜单,则应使用核心表达式。 我已经在这个答案中解释了如何做到这一点:

Eclipse RCP menus & actions: Configure or code?

您感兴趣的部分始于:

  

用于激活/停用菜单[...]

我希望这是你正在寻找的东西。