2017-02-02 15 views
0

Я реализую функцию обновления, которая будет использовать ответ сервера для обработки обновления. Теперь мое обновление должно попросить пользователя (в диалоговом окне) перезапустить приложение. Единственной инъекцией, которую я могу сделать в классе, является IEclipseContext.Как вводить объекты в пользовательский объект

Теперь, как я могу получить UISynchronize текущего запуска Eclipse RCP-приложения? Так что я смело могу запустить этот метод:

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(....)