Как закрыть Workbench в приложении E4

В Eclipse RCP 3.7.x я использую

  PlatformUI.getWorkbench().close(); 

закрыть верстак

в E4 есть способ закрыть Workbench (без нажатия кнопки) или как получить ссылку на Workbench в моем коде


person Rameshwar Nagpure    schedule 04.08.2014    source источник


Ответы (1)


Если вы делаете «чистое» приложение e4, вы не можете использовать 3.x org.eclipse.ui.IWorkbench.

Однако есть класс org.eclipse.e4.ui.workbench.IWorkbench, который имеет метод close().

Вы используете прямую инъекцию, чтобы внедрить этот класс рабочей среды в свой код.

Например, в обработчике команд вы можете сделать:

@Execute
public void execute(IWorkbench workbench)
{
  workbench.close();
}
person greg-449    schedule 04.08.2014
comment
Я внедряю IWorkbench в свое приложение таким образом @Inject IWorkbench w; но я получаю исключение нулевого указателя. - person Rameshwar Nagpure; 05.08.2014
comment
Куда ты делаешь инъекцию? Вы можете вводить только то, о чем знает модель приложения (части, обработчики,...) - person greg-449; 05.08.2014
comment
В классе жизненного цикла приложения E4 - person Rameshwar Nagpure; 05.08.2014
comment
Рабочая среда, вероятно, еще не была создана в этот момент, дождитесь завершения запуска приложения и получите его из IEclipseContext. - person greg-449; 05.08.2014
comment
Большое спасибо @greg-449 - person Rameshwar Nagpure; 06.08.2014