2011-05-26 60 views
0

我正在開發一個Eclipse RCP應用程序。在這個應用程序中,我使用導入嚮導導入項目。我想在導入嚮導結束後收到通知。Eclipse RCP中ImportWizard的通知

請幫幫我!

回答

2

我會在啓動導入嚮導時將org.eclipse.core.resources.IWorkspace.addResourceChangeListener(IResourceChangeListener)添加到工作區。監視事件並查看org.eclipse.core.resources.IResourceChangeEvent.POST_CHANGE是否在導入完成時發出。

1

您可以使用ICommandService監視Eclipse平臺中命令的執行情況。

所以與命令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(); 
+0

感謝您的投入 – Bob 2011-06-03 13:44:00