我遇到了一个问题:
那是:
我添加了一个" Command"命名" saveCommand"在e4xmi;
我添加了一个" Handled Menu Item"命名"保存"使用" saveCommand"在e4xmi;
我添加了一个" Handled Tool Item"命名"保存"使用" saveCommand"在e4xmi;
在" saveCommand"它使用" saveHandler"控制两个保存按钮动作: 代码是:
@CanExecute
public boolean canExecute() {
if (caseNameValidatePass) {
return true;
}
return false;
}
但现在的问题是: 当canExecute函数返回true时,启用保存菜单按钮, 但仍然禁用了保存工具按钮。
让我感到困惑。为什么?有人可以帮忙解答我的困惑吗?非常感谢!
答案 0 :(得分:1)
@CanExecute
,但对于工具项,您可能需要请求使用UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC
事件运行它:
@Inject
IEventBroker eventBroker;
eventBroker.send(UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC, selector);
selector
可以UIEvents.ALL_ELEMENT_ID
更新所有工具项或org.eclipse.e4.ui.workbench.Selector
的实现,以选择要更新的特定项目。
只要caseNameValidatePass
值发生变化,您就需要调用此方法。