如何以编程方式检查是否检查/取消选中作为菜单项的命令(如果是CHECK BOX类型),选择或取消选择(如果是RADIO按钮类型)处理程序内部“执行” 方法。 请参见此处的快照https://docs.google.com/file/d/0B3pxBGD-v-ycWVFaeElnSGdyTE0/edit。
答案 0 :(得分:1)
查看此博客:http://eclipsesource.com/blogs/2009/01/15/toggling-a-command-contribution/
因此,首先要确保您的命令具有合适的样式:
<extension point="org.eclipse.ui.menus">
<menuContribution locationURI="...">
<command commandId="org.eclipse.example.command.toggle"
style="toggle" />
</menuContribution>
</extension>
然后,你可以检查这样的状态:
ICommandService service =(ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class);
Command command = service.getCommand("org.eclipse.example.command.toggle");
State state = command.getState("org.eclipse.example.command.toggleState");
System.out.println(state.getValue());
//state.setValue(!(Boolean) state.getValue());
另外,考虑一下org.eclipse.ui.handlers.HandlerUtil,它可能会有所帮助。
希望这有帮助。
答案 1 :(得分:1)
我得到了解决方案, 在处理程序执行方法方法
中添加了此代码public Object execute(ExecutionEvent event) throws ExecutionException {
Event selEvent = (Event) event.getTrigger();
MenuItem item = (MenuItem) selEvent.widget;
System.Out.Println(item.getSelection());
return null;
}