切换菜单项的状态
时间:2020-03-06 14:32:20 来源:igfitidea点击:
我有一个正在使用的Eclipse RCP应用程序。它具有一些特定于视图的菜单,并且其中一个菜单项是我希望在启用相应功能时在其旁边显示一个勾号的项目。同样,下一次选择该项目时,该项目应变为未选中状态,以反映相应的功能已被禁用。
我的问题是:如何设置这些菜单项的切换状态?我有一个IHandler选择菜单项时要处理的事件,但我不能确定如何更新GUI元素本身。
StackOverflow社区是否对如何解决此问题有任何想法?
解决方案
该解决方案涉及让命令处理程序实现IElementUpdater接口。然后可以这样更新UI元素:
public void updateElement(UIElement element, Map parameters) { element.setChecked(isSelected); }
updateElement被称为UI刷新的一部分,可以从处理程序的execute命令中这样调用它:
ICommandService service = (ICommandService) HandlerUtil .getActiveWorkbenchWindowChecked(event).getService( ICommandService.class); service.refreshElements(event.getCommand().getId(), null);
这里有更多信息(请参阅单选按钮命令和更新选中的状态条目)