根据切换状态禁用/启用工具栏菜单项

时间:2013-12-12 14:37:30

标签: java eclipse-plugin swt eclipse-rcp

我正在使用工具栏项的启用/禁用状态。

我需要禁用第二个菜单,直到第一个菜单处于切换状态。为此,我尝试获得第一个菜单项的切换状态。但状态始终为NULL。

ICommandService service = (ICommandService) PlatformUI.getWorkbench().
                                                   getService(ICommandService.class);
Command command = service.getCommand("com.commandID");
State state     = command.getState("org.eclipse.ui.commands.toggleState");

有人知道这是什么问题?也许有更好的方法来解决它?

1 个答案:

答案 0 :(得分:1)

您是否为命令注册了ToggleState?

  

因为可以有相同的多个菜单贡献   命令,我们必须在中心位置跟踪状态。   想象一下,可以从主菜单和视图中触发切换按钮   工具栏。通过存储这些按钮的状态保持同步   直接在命令中声明。关键是这个   org.eclipse.jface.commands.ToggleState。

<command id="org.eclipse.example.command.toggle"
        name="Toggle Me">
  <state class="org.eclipse.jface.commands.ToggleState"
         id="org.eclipse.example.command.toggleState" />
</command>

请阅读this blog post了解详情。