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