0

当 Eclipse RCP IApplication 启动时,它会传递一个包含大量品牌和配置信息的 IApplicationContext 对象。我想从任意其他插件而不是应用程序插件中获取任何相同的信息——即调用 getBrandingApplication() 或 getBrandingName() 的结果,无需应用程序插件的合作。换句话说,我可以在运行时调用任何方法来获取当前运行的 IApplication 的 id 或位置吗?

4

1 回答 1

2

IApplicationContext被定义为 OSGi 服务,因此您可以使用任何插件ServiceTracker或其他访问服务的方法来访问它。就像是:

ServiceTracker appContext = new ServiceTracker(bundle, IApplicationContext.class, null);
appContext.open();

IApplicationContext context = appContext.getService();

您还可以使用您从中获取的getProperty方法访问一些信息。IProductPlatform.getProduct()

在 Eclipse 4 中,“e4”应用程序IApplicationContext位于 Eclipse 上下文中并且可以被注入。

于 2013-09-17T15:23:44.233 回答