2015-03-17 2 views
1

Я работаю с приложением E4 и сейчас являюсь частью. Я хочу, чтобы подтолкнуть флаг в контексте уровня Workbench и единственный способ, который я мог добраться до этоЕсть ли лучший способ добраться до контекста Workbench в приложении E4?

context.getParent().getParent().getParent().set("FLAG", false); 

Есть ли лучший способ добраться до уровня Workbench?

ответ

1

Контекст верстак доступен из объекта приложения:

@Inject 
MApplication application; 

... 

IEclipseContext appContext = application.getContext(); 

Использование getParent() вызовов очень подвержен ошибкам, поскольку любое изменение в модели приложения может нарушить код.

0
@Inject 
IEclipseContext eclipseContext; 

Конечно, вы должны быть в E4ApplicationModel. Если нет, вы можете ввести это (в Processor/LifeCycleManager/other в E4ApplicationModel ...):

MyClass myClass = new MyClass(); 
ContextInjectionFactory.inject(myClass,eclipseContext);