Eclipse e4 RCP - установка текста заголовка во время выполнения

Я хотел бы иметь возможность изменять текст заголовка во время выполнения. Обычно я хочу сделать это, когда мое приложение открывает файл, чтобы у меня было имя приложения - имя файла в строке заголовка.

Я читал о людях, использующих ApplicationWorkbenchWindowAdvisor для получения IWorkbenchWindowConfigurer, а затем использующих его для установки заголовка, но я на самом деле не знаю, где и как получить ApplicationWorkbenchWindowAdvisor, и даже не знаю, относится ли это к классу I. нужно написать.

В настоящее время заголовок устанавливается только через свойство appName в моем plugin.xml.

Может кто-нибудь показать пример, если его использование?


person Memran    schedule 28.11.2014    source источник
comment
Это чистое приложение e4 (вы используете Application.e4xmi и без слоя совместимости)? Все, что вы упоминаете, - это API старого стиля 3.x.   -  person greg-449    schedule 28.11.2014
comment
Да, это чистый e4. Я думаю, именно поэтому это не имело для меня особого смысла!   -  person Memran    schedule 28.11.2014


Ответы (2)


Вы можете сделать это, установив метку на верхнем уровне MWindow вашего приложения:

@Inject
MApplication application;
@Inject
EModelService modelService;

....

MWindow window = (MWindow)modelService.find("id of your top window", application);

window.setLabel("new label");
person greg-449    schedule 28.11.2014
comment
Спасибо за ваш ответ, но для метода modelService.find, похоже, требуется идентификатор String и объект MUUIElement. Каким должен быть второй аргумент? - person Memran; 28.11.2014

Альтернативой использованию EModelService для поиска MWindow по идентификатору является внедрение. Таким образом, он найдет родительское (и активное, хотя это может быть избыточным) окно в контексте элемента управления, выполняющего действие (в вашем случае File-Chooser):

@Inject
@Active
private MWindow window;
person Nick J. R. T.    schedule 21.07.2017