从代码更新Eclipse菜单无线电状态

从代码更新Eclipse菜单无线电状态,eclipse,eclipse-plugin,eclipse-rcp,Eclipse,Eclipse Plugin,Eclipse Rcp,在无线电状态菜单项的命令处理程序中,我会提示用户是否要继续。如果他们选择否,我需要将所选菜单项重置回以前的值 我使用的是HandlerUtil.updateRadioState(event.getCommand(),oldScope),但菜单保留了新值 有什么建议吗 命令处理程序 @覆盖 公共对象执行(ExecutionEvent事件)引发ExecutionException{ if(HandlerUtil.matchesRadioState(事件)) 返回null; 字符串范围=event.g

在无线电状态菜单项的命令处理程序中,我会提示用户是否要继续。如果他们选择否,我需要将所选菜单项重置回以前的值

我使用的是
HandlerUtil.updateRadioState(event.getCommand(),oldScope)
,但菜单保留了新值

有什么建议吗

命令处理程序

@覆盖
公共对象执行(ExecutionEvent事件)引发ExecutionException{
if(HandlerUtil.matchesRadioState(事件))
返回null;
字符串范围=event.getParameter(RadioState.PARAMETER\u ID);
如果(MessageDialog.openConfirm(HandlerUtil.getActiveShell(事件),“确认重新启动”,
“切换电机电源需要重新启动。是否继续?”){
int connection=MotorDbPreferencesPage.DATABASE\u ACCESS\u LOCAL;
如果(“云”。compareToIgnoreCase(范围)==0){
连接=MotorDbPreferencesPage.DATABASE\u ACCESS\u CLOUD;
}
Activator.getDefault().getPreferenceStore().setValue(MotorDbPreferencesPage.DATABASE_访问,连接);
PlatformUI.getWorkbench().restart();
}否则{
字符串oldScope=“Local”;
//将其切换回用户选择它之前的状态
如果(“本地”。比较信号案例(范围)==0){
oldScope=“云”;
}
HandlerUtil.updateRadioState(event.getCommand(),oldScope);
}
返回null;
}
plugin.xml中的命令定义


以及plugin.xml中的菜单定义


打电话是你的责任

HandlerUtil.updateRadioState(event.getCommand(), scope);
使GUI显示新状态。不打电话,无线电状态不会改变

这意味着在用户中止的情况下,根本不要调用此方法