首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用兼容性层时注册e4生命周期挂钩?

如何在使用兼容性层时注册e4生命周期挂钩?
EN

Stack Overflow用户
提问于 2018-10-25 13:57:27
回答 1查看 342关注 0票数 2

如何在将基于3.7的eclipse应用程序迁移到e4时注册生命周期挂钩?

使用纯e4,我将使用产品扩展点设置产品的lifeCycleURI属性。这也是定义应用程序模型的地方。

我的印象是,兼容性层负责所有这一切,因为它使用了遗留应用程序模型定义。因此,我根本不知道如何使用我的生命周期挂钩。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-25 14:47:01

您仍然可以使用产品定义中的lifeCycleURI定义生命周期类,只要您的产品指定的应用程序称为PlatformUI.createAndRunWorkbench。这将运行处理生命周期的代码。

例如,在一个简单的测试中RCP。产品如下:

代码语言:javascript
复制
<extension
     id="TestRCPView.product"
     point="org.eclipse.core.runtime.products">
  <product
        application="TestRCPView.application"
        name="TestRCPView">
     <property
           name="lifeCycleURI"
           value="bundleclass://TestRCPView/testrcpview.LifeCycle">
     </property>
  </product>
</extension>

其中有lifeCycleURI。

它所指的应用程序是:

代码语言:javascript
复制
<extension
     id="TestRCPView.application"
     point="org.eclipse.core.runtime.applications">
  <application>
     <run
           class="testrcpview.Application">
     </run>
  </application>
</extension>

testrcpview.Application

代码语言:javascript
复制
public class Application implements IApplication
{
  @Override
  public Object start(final IApplicationContext context)
  {
    Display display = PlatformUI.createDisplay();
    try
     {
       int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
       if (returnCode == PlatformUI.RETURN_RESTART)
         return IApplication.EXIT_RESTART;

        return IApplication.EXIT_OK;
     }
    finally
     {
       display.dispose();
     }
  }


  @Override
  public void stop()
  {
    if (!PlatformUI.isWorkbenchRunning())
      return;

    IWorkbench workbench = PlatformUI.getWorkbench();

    Display display = workbench.getDisplay();

    display.syncExec(new Runnable()
      {
        @Override
        public void run()
        {
          if (!display.isDisposed())
            workbench.close();
        }
      });
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52991143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档