我的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