【问题标题】:Notification of ImportWizard in Eclipse RCPEclipse RCP 中 ImportWizard 的通知
【发布时间】:2011-05-26 13:34:47
【问题描述】:

我正在开发一个 Eclipse RCP 应用程序。在此应用程序中,我使用导入向导导入项目。我想在导入向导结束后收到通知。

请帮帮我!

【问题讨论】:

    标签: eclipse-plugin eclipse-rcp


    【解决方案1】:

    我会在您启动导入向导时将org.eclipse.core.resources.IWorkspace.addResourceChangeListener(IResourceChangeListener) 添加到工作区。监视事件并查看在导入完成时是否发出org.eclipse.core.resources.IResourceChangeEvent.POST_CHANGE

    【讨论】:

      【解决方案2】:

      您可以使用 ICommandService 来监控 Eclipse Platform 中命令的执行情况。

      因此您可以在使用命令 id 执行导入时通知您“ org.eclipse.ui.file.import”:

      ICommandService service = (ICommandService)
          PlatformUI.getWorkbench().getService(ICommandService.class);
      service.addExecutionListener(...)
      

      您可以通过扩展 WorkspaceJob 描述导入后将执行的逻辑。

      public AfterImportingJob extends WorkspaceJob{ 
          ...
          public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException{
              ... do something
              return Status.OK_STATUS;
          }
          ...
      }
      

      WorkspaceJob 自动与 Workspace 同步。因此,在 Workspace 中完成所有更改后,您的 Job 将运行。并确保在您的作业执行期间没有其他工作区修改未运行。

      要使用此魔法,您只需安排时间:

      AfterImportingJob myJob = new AfterImporingJob();
      myJob.schdule();
      

      【讨论】:

        猜你喜欢
        • 2016-12-03
        • 2011-04-29
        • 2013-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多