我正在使用工具栏项的启用/禁用状态。
我需要禁用第二个菜单,直到第一个菜单处于切换状态。为此,我尝试获得第一个菜单项的切换状态。但状态始终为NULL。
ICommandService service = (ICommandService) PlatformUI.getWorkbench().
getService(ICommandService.class);
Command command = service.getCommand("com.commandID");
State state = command.getState("org.eclipse.ui.commands.toggleState");
有人知道这是什么问题?也许有更好的方法来解决它?
答案 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了解详情。