Недавно мы обновили наше приложение rcp до e4. Мы используем Марс. Я пробовал e4 event bus. Я добавил PlatformUI.getWorkbench().getService(IEventBroker.class);
в код класса диалога. Однако это возвращает значение null. Я прочитал IEventBroker - неотъемлемая часть платформы e4. Что здесь может быть отсутствует?PlatformUI.getWorkbench(). GetService (IEventBroker.class) возвращает null
1
A
ответ
0
Вы не используете PlatformUI
в чистом приложении e4 (или что-нибудь еще в плагинах org.eclipse.ui.xxx
).
Вам следует ввести IEventBroker
или получить его от IEclipseContext
.
Обратите внимание, что инъекция не выполняется в диалогах, если вы создаете их обычным способом. Вы можете использовать ContextInjectionFactory.make
для создания класса с инъекцией.