我的Job類中的run方法會執行一些操作(細節無關)並輸出2個雙精度數組。Eclipse插件:如何在作業完成後更新視圖
我想顯示這些數組在一個結果視圖,我已創建一個表和2列,每個陣列一個。
如何在運行方法結束時(在Job類中)引用視圖並在其中顯示這些數組?
即使你無法幫助我解答,如果有人能指向某個方向,我會很高興,因爲我不知道。我能想到的唯一事情就是事件處理,但我也不太瞭解這一點。
class RunnerJob extends Job {
protected IStatus run(IProgressMonitor monitor) {
//does some stuff
double[] col1 = someStuff1();
double[] col2 = someStuff2();
//display in results view?
}
}
基於蘇拉傑德蘭的答案,這是我用來引用視圖的靜態方法)的代碼,
display.syncExec(
new Runnable() {
public void run(){
try {
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(ResultsView.ID);
} catch (PartInitException e) {
e.printStackTrace();
}
ResultsView.update(<object with values>);
}
});
所以,你的意思是說,只是說回來這個;? 因爲我不能從靜態方法引用非靜態的任何東西 – nbz 2011-06-09 12:36:25
Ok我創建了一個靜態方法,它將更新視圖而不是引用視圖,但這隻會導致無效的線程訪問異常 – nbz 2011-06-09 15:52:09
實際上你必須做的它在UI線程... http://www.eclipse.org/swt/faq.php#uithread – 2011-06-09 18:51:46