有没有更好的方法来获得E4应用程序中的Workbench上下文

时间:2015-03-17 18:59:09

标签: java eclipse-plugin osgi eclipse-rcp e4

我正在使用E4应用程序,目前正在使用Part。我想在Workbench级别上下文中推送一个标志,唯一可以实现的方法是

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

有没有更好的方法进入Workbench级别?

2 个答案:

答案 0 :(得分:1)

可以从应用程序对象访问工作台上下文:

@Inject
MApplication application;

...

IEclipseContext appContext = application.getContext();

使用getParent()调用非常容易出错,因为对应用程序模型的任何更改都可能会破坏代码。

答案 1 :(得分:0)

@Inject
IEclipseContext eclipseContext;

当然你必须在E4ApplicationModel中。如果没有,你可以注入这个(在E4ApplicationModel中的Processor / LifeCycleManager /其他......):

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