【发布时间】:2011-05-26 13:34:47
【问题描述】:
我正在开发一个 Eclipse RCP 应用程序。在此应用程序中,我使用导入向导导入项目。我想在导入向导结束后收到通知。
请帮帮我!
【问题讨论】:
标签: eclipse-plugin eclipse-rcp
我正在开发一个 Eclipse RCP 应用程序。在此应用程序中,我使用导入向导导入项目。我想在导入向导结束后收到通知。
请帮帮我!
【问题讨论】:
标签: eclipse-plugin eclipse-rcp
我会在您启动导入向导时将org.eclipse.core.resources.IWorkspace.addResourceChangeListener(IResourceChangeListener) 添加到工作区。监视事件并查看在导入完成时是否发出org.eclipse.core.resources.IResourceChangeEvent.POST_CHANGE。
【讨论】:
您可以使用 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();
【讨论】: