如何从类中调用@canExecute方法

时间:2018-08-16 10:28:39

标签: eclipse-plugin eclipse-rcp rcp e4

我正在使用Eclipse rcp4应用程序,并且遇到@canExecute批注方法的问题。当我发送         broker.send(UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC,UIEvents.ALL_ELEMENT_ID);  它将触发所有canExecute方法,但我只想限制为某些类。 有人可以帮忙吗

1 个答案:

答案 0 :(得分:1)

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");