http://blog.eclipse-tips.com/2008/08/adding-iaction-to-job.html
鍏充簬Job涓嶈浜嗭紝鏃犳墍涓嶅湪錛屾垜瑕佽鐨勬槸job鐨勪竴浜涘睘鎬с?br />
1 緇橨ob鍔犱笂Action錛屽綋鐢ㄦ埛鍦↗ob榪愯鐨勬椂鍊欑偣鍑繪椂錛屽彲鏄劇ず鏇村叿浣撶殑job鎻忚堪鎴栬呭job鏈韓榪涜鎿嶄綔銆?br />
Job job = new Job("My Job") {
@Override
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask("My job is working
", 100);
for (int i = 0; i < 100; i++) {
try {
Thread.sleep(200);
} catch (InterruptedException e) {} // ignore
monitor.worked(1);
}
monitor.done();
return new Status(IStatus.OK, Activator.PLUGIN_ID, "ok, job finished!");
}
};
job.setProperty(IProgressConstants.ACTION_PROPERTY, new Action() {
@Override
public void run() {
MessageDialog.openInformation(new Shell(), "Job Status", "Some partial results processed can be displayed here");
}
});
job.schedule();
鏁堟灉鍥撅細

2 鍦≒rogress View閲岄潰淇濈暀璁板綍
job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
鏁堟灉鍥撅細

3 闃叉error dialog鎵撴柇浣犵殑鎿嶄綔銆俻rocess view閲岄潰榪愯鐨刯ob濡傛灉榪斿洖鐨剆tatus鏄痚rror錛岄偅涔堥粯璁ゅ畠浼氬脊鍑轟竴涓猠rror dialog璀﹀憡job鏈夐敊璇紝濡傛灉job榪愯鐨勫悓鏃朵綘鍦ㄥ共鍒殑錛岃繖鍙兘浼氭墦鏂綘鐨勬煇涓搷浣?Eclispe鐨刣ialog閮芥槸modal鐨?銆?br />
鎶妀ob鐨勮繑鍥炵姸鎬佹敼涓篹rror銆?br />
return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Job finished with ERRORS");
error dialog:

鍔犱笂灞炴у睆钄絜rror dialog:
job.setProperty(IProgressConstants.NO_IMMEDIATE_ERROR_PROMPT_PROPERTY, true);
4 緇橨ob鍔犱竴涓浘鏍囷細
job.setProperty(IProgressConstants.ICON_PROPERTY, Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/sample.gif"));
鏁堟灉濡備笅錛?br />


]]>