当 Eclipse RCP IApplication 启动时,它会传递一个包含大量品牌和配置信息的 IApplicationContext 对象。我想从任意其他插件而不是应用程序插件中获取任何相同的信息——即调用 getBrandingApplication() 或 getBrandingName() 的结果,无需应用程序插件的合作。换句话说,我可以在运行时调用任何方法来获取当前运行的 IApplication 的 id 或位置吗?
问问题
86 次
1 回答
2
IApplicationContext
被定义为 OSGi 服务,因此您可以使用任何插件ServiceTracker
或其他访问服务的方法来访问它。就像是:
ServiceTracker appContext = new ServiceTracker(bundle, IApplicationContext.class, null);
appContext.open();
IApplicationContext context = appContext.getService();
您还可以使用您从中获取的getProperty
方法访问一些信息。IProduct
Platform.getProduct()
在 Eclipse 4 中,“e4”应用程序IApplicationContext
位于 Eclipse 上下文中并且可以被注入。
于 2013-09-17T15:23:44.233 回答