2017-10-06 85 views
1

我有一个兼容层的E3/E4混合应用程序。我想在整个应用程序启动并完成GUI完成后运行基于E4的代码。Eclipse Rcp在整个应用程序启动并完成GUI完成后运行基于E4的代码

  • 我试过使用LifeCycle Manager,但所有的注解都是为了它的早期。
  • 我在ApplicationWorkbenchWindowAdvisor中试过了,但是我没有访问EModelService或MApplication的权限。
  • 作为一个处理器扩展我也试过了,但这对于Application.e4xmi中的Addon来说也是太早了。

是否有可能是一个侦听器或类似的地方,我可以钩我的代码?

谢谢

回答

1

您可以使用应用程序启动完成事件这一点。

如果你有一个生命周期类只需添加一个方法,像下面的类:

@Optional 
@Inject 
public void appStartupComplete(@UIEventTopic(UIEvents.UILifeCycle.APP_STARTUP_COMPLETE) final Event event) 
{ 
    .... 
} 

或者您可以使用事件代理订阅UIEvents.UILifeCycle.APP_STARTUP_COMPLETE事件。

注意:Event在上面是org.osgi.service.event.Event - 有几个不同的Event类,所以很容易得到错误的。