如何从 class 中调用 @canExecute 方法

How to call @canExecute method from a class

我正在处理 eclipse rcp4 应用程序,我遇到了 @canExecute 注释方法的问题。当我发送 broker.send(UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC, UIEvents.ALL_ELEMENT_ID); 它会触发所有 canExecute 方法,但我只想限制到某个 类。 有人可以帮忙吗

UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC 事件调用的第二个参数可以是实现 org.eclipse.e4.ui.workbench.Selector.

的东西

因此,例如,要仅更新特定元素 ID,您可以使用:

Selector selector = element -> "element id".equals(element.getElementId());

eventBroker.send(UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC, selector);

如果您只想更新单个元素,您只需将元素 id 指定为第二个参数即可:

eventBroker.send(UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC, "element id");