我正在做一个 Eclipse RCP 应用程序。我创建了一个新的启动配置和一个视图。当我运行启动配置时,我得到一组结果,我想将这些结果发送到视图。
在这一刻,我创建了一个包含结果的新事件:
BundleContext ctx = FrameworkUtil.getBundle(TraditionalLaunchConfigurationDelegate.class).getBundleContext();
ServiceReference<EventAdmin> ref = ctx.getServiceReference(EventAdmin.class);
EventAdmin eventAdmin = ctx.getService(ref);
Map<String, Results> properties = new HashMap<String, Results>();
properties.put("MUTATIONRESULTS", //$NON-NLS-1$
results);
Event event = new Event("mutationcommunication/asyncEvent", properties); //$NON-NLS-1$
eventAdmin.postEvent(event);
视图在听。当启动配置发送事件时,视图会捕获它并显示结果。
问题是它在视图实例化时起作用。如果我不手动打开视图,它就不存在,也不会收到任何东西。
解决方案可能会以编程方式打开视图,但
PlatformUI.getWorkbench().getViewRegistry().find("ID").createView();
不起作用。
有没有办法将元素发送到视图,如果视图不存在,它会创建一个新实例?
谢谢您的帮助。