2017-02-02 33 views
0

我正在实现一个更新函数,该函数将使用服务器响应来处理更新。现在我的更新需要询问用户(在对话框中)重新启动应用程序。我可以在课堂上做的唯一注入是IEclipseContext。如何在自定义对象中注入对象

现在我怎样才能获得当前运行的Eclipse RCP应用程序的UISynchronize?所以,我可以安全地运行这个方法:

private void showMessage(UISynchronize sync, final String message) { 
     sync.syncExec(new Runnable() { 

      @Override 
      public void run() { 
       MessageDialog.openInformation(null, "Information", message); 
      } 
     }); 
    } 

回答

2

UISynchronize是在应用程序IEclipseContext所以它会在除了OSGi服务范围内任何上下文可用。

所有这一切UISynchronize所做的就是调用Display.asyncExec所以如果你没有可用的上下文只使用传统的

Display.getDefault().asyncExec(....) 
相关问题