Eclipse4 RCP 指南

@CanExecute 的执行

如果在上下文中发生了改变,通过 @CanExecute 注解的方法将被框架调用,也就是说,如果上下文被修改了,或者活动的上下文改变了,应用程序代码可以通过事件代理(broker)发送事件来请求框架执行 @CanExecute 方法。

// evaluate all @CanExecute methods
eventBroker.send(UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC, UIEvents.ALL_ELEMENT_ID);

// evaluate a context via a selector 
Selector s = (a selector that an MApplicationElement or an ID);
eventBroker.send(UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC, s);

//See  https://bugs.eclipse.org/bugs/show_bug.cgi?id=427465 for details