最近我们将rcp应用程序升级到e4。我们正在使用火星。我正在试用e4事件总线。我将PlatformUI.getWorkbench().getService(IEventBroker.class);
添加到对话框类代码中。但是,这将返回null。我读到IEventBroker是e4平台的固有部分。这里可能缺少什么?
在纯e4应用程序(或org.eclipse.ui.xxx
插件中的任何其他应用程序(中不使用PlatformUI
。
您应该注入IEventBroker
或从IEclipseContext
中获取它。
请注意,如果以正常方式创建对话框,则不会在对话框中进行注入。您可以使用ContextInjectionFactory.make
创建一个带有注入的类。