【问题标题】:Eclipse e4 : IStartup extension not workingEclipse e4:IStartup 扩展不起作用
【发布时间】:2016-02-05 19:03:13
【问题描述】:

我正在尝试扩展“org.eclipse.ui.startup”扩展点。 但似乎在 eclipse e4 中,它甚至没有被调用。 这个扩展在 eclipse e4(Juno) 中被破坏了吗

【问题讨论】:

    标签: eclipse eclipse-rcp eclipse-juno e4


    【解决方案1】:

    我遇到了同样的问题,但找不到答案,但在此过程中,我发现了 LifeCycleHandler,它更适合我的目的。这对您来说可能也是一个不错的选择。

    就像启动扩展一样,您可以从您的 plugin.xml 中引用处理程序:

    <property name="lifeCycleURI" value="platform:/plugin/<plug-in-id>/<path-to-handler-class>" />
    

    在处理程序中,您可以使用注解来标记要调用的方法以及依赖注入:

    public class StartupHandler {
        @Inject
        Foo bar;
    
        @PostContextCreate
        public void startup(IEclipseContext context) {
           // do something
        }
    }
    

    您可以在此处找到详细示例:https://marcteufel.wordpress.com/2011/05/05/231/

    【讨论】:

      【解决方案2】:

      IStartup#earlyStartup() 需要兼容层,因此在纯 E4 应用程序中不起作用。 (见#1

      要在纯 E4 应用程序中启动进程,您应该使用生命周期挂钩。所以:

      从 plugin.xml 引用您的 ApplicationLifecycle 处理程序类

      <property name="lifeCycleURI" value="platform:/plugin/<plug-in-id>/<path-to-handler-class>" />
      

      编写你的生命周期处理程序类

      public class ApplicationLifecycleHandler {
      
          @PostContextCreate
          public void startup(IEclipseContext context) {
             // do initialization 
          }
      }
      

      添加一个钩子来处理应用程序启动完成时的事件

      @PostContextCreate
      public void postContextCreate(final IEventBroker eventBroker, etc .. ) {
      
          // 
          eventBroker.subscribe(UIEvents.UILifeCycle.APP_STARTUP_COMPLETE,
                  new EventHandler() {
                      @Override
                      public void handleEvent(Event event) {
                          // Your code executed at startup,
                          // after application startup is completed
                      }
                  });
      
      }
      

      (#1)org.eclipse.ui.startup extension doc

      【讨论】:

      • 嗨@psuzzi,你能告诉我更多关于你在评论中提到的兼容性层的信息吗?我有类似的问题,但无法编辑插件代码。所以我想知道是否放置一些兼容插件可以帮助我让它与 e4Application 一起使用。谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      • 2014-02-20
      • 2019-03-21
      • 2011-08-18
      • 2012-03-02
      相关资源
      最近更新 更多