PlatformUI.getWorkbench()。getService(IEventBroker.class)返回null

时间:2016-09-08 11:07:03

标签: java eclipse event-handling rcp e4

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

1 个答案:

答案 0 :(得分:0)

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

您应该注入IEclipseContext或从ContextInjectionFactory.make获取。

请注意,如果以正常方式创建注入,则不会在对话框中执行注入。您可以使用foreach(array_combine($cols,$vals) as $col => $val) { $f->bindParam(':'.$col,$val,PDO::PARAM_INT); // loop through columns and values array and bind those params } 创建一个带注入的类。