Eclipse插件:如何在作业完成后更新视图

时间:2011-06-09 12:07:50

标签: java eclipse view eclipse-plugin

我的Job类中的run方法做了一些事情(细节无关紧要)并输出2个双精度数组。

我想在结果视图中显示这些数组,我使用Table和2列创建这些数组,每列一个。

如何在run方法结束时(在Job类中)引用视图并在其中显示这些数组?

即使你无法帮助我答案,如果有人能指出我某个方向因为我不知道,我会很高兴。我唯一能想到的是事件处理,但我对此也不太了解。

class RunnerJob extends Job {
     protected IStatus run(IProgressMonitor monitor) {
          //does some stuff
          double[] col1 = someStuff1();
          double[] col2 = someStuff2();

          //display in results view?
  }
}

根据Suraj Chandran的回答,这是我用来引用视图的静态方法的代码,

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>);
             }
     });

2 个答案:

答案 0 :(得分:3)

使用observer pattern(请参阅example):

  1. 制作您的View工具Observer
  2. 让您的工作实施Observable
  3. createPartControl()中注册您的观看到Observable(或在 构造函数),不要忘记在dispose()中取消注册。
  4. 工作完成后通知观察员。

答案 1 :(得分:1)

在你的视图类中有一个类似于getInstance()的静态方法,它会返回对视图对象的引用。获得对象后,可以在其中设置数组。