最近,我们将rcp应用程序升级到e4。我们正在使用火星。我正在尝试e4事件总线。我在对话类代码中添加了PlatformUI.getWorkbench().getService(IEventBroker.class);。但是,这将返回null。我读过IEventBroker是e4平台的固有部分。这里可能缺少什么?

最佳答案

您不要在纯e4应用程序(或PlatformUI插件中的任何其他内容)中使用org.eclipse.ui.xxx

您应该注入IEventBroker或从IEclipseContext获取它。

请注意,如果以常规方式创建对话框,则不会在对话框中进行注入。您可以使用ContextInjectionFactory.make创建带有注入的类。

07-28 03:17