2016-09-08 8 views
1

Недавно мы обновили наше приложение rcp до e4. Мы используем Марс. Я пробовал e4 event bus. Я добавил PlatformUI.getWorkbench().getService(IEventBroker.class); в код класса диалога. Однако это возвращает значение null. Я прочитал IEventBroker - неотъемлемая часть платформы e4. Что здесь может быть отсутствует?PlatformUI.getWorkbench(). GetService (IEventBroker.class) возвращает null

ответ

0

Вы не используете PlatformUI в чистом приложении e4 (или что-нибудь еще в плагинах org.eclipse.ui.xxx).

Вам следует ввести IEventBroker или получить его от IEclipseContext.

Обратите внимание, что инъекция не выполняется в диалогах, если вы создаете их обычным способом. Вы можете использовать ContextInjectionFactory.make для создания класса с инъекцией.