当前位置: 首页 > 知识库问答 >
问题:

如何将IEventBroker注入Eclipse RCP应用程序的应用模型中未定义的类?

管翼
2023-03-14

我有两个类,类A和类B。A是一个用于在RCP应用程序中显示零件的类,它在应用程序模型中定义。B是一个用于检索数据的自定义类,每当数据发生更改时,它都应该通知类a更新相关UI。我在这里问了一个问题,关于如何使这两个类协调。然而,现在的问题是,由于B未在应用程序模型中定义,所以每当我调用eventBroker时,它都返回null。类B中的post()。

当我调用B类时,我尝试了以下方式:

B b = new B();
ContextInjectionFactory.inject(b,IEclipseContext);
b.execute();

我不知道如何得到IEclipse Context,这在上面的代码中没有定义,因为上面的代码没有在应用程序模型中定义的类中执行。如果有人能阐明这个问题,我将不胜感激。

共有1个答案

景才英
2023-03-14

您真的必须从注入系统确实知道的地方开始,并使用注入系统创建所有中间类。

这可能是一个类似于命令处理程序的程序,您可以在其中使用ContextInjectionFactory。制作或ContextInjectionFactory。inject创建/注入类。有几种其他方法可以通过注入创建类,但它们都要求您从应用程序模型知道的东西开始。

对于希望在整个应用程序中可用的类,在应用程序生命周期类中创建它们是应用程序模型已知的另一个可能位置。

或者,您可以使用可以通过以下方式访问的OSGi服务上下文:

BundleContext bundleContext = ... your plugin's bundle context

IEclipseContext serviceContext = EclipseContextFactory.getServiceContext(bundleContext);

此上下文的内容非常有限,但确实包括事件代理。

 类似资料:
  • 我有两个应用程序:同事和服务,每个都有自己的模型 在coworkers models.py中,我可以“从services.models导入服务”。 当我尝试在services models.py中“from coworkers.models import Status”时,会收到以下错误消息: 回溯(最近一次调用):文件“/Users/lucas/Documents/projetos/cwk-ma

  • 问题内容: 对我先前的问题采取了后续行动。我正在尝试使用JSR-330标准注释和jersey捆绑的HK2框架注入应用程序配置数据。 理想情况下,我想为注释创建一个自定义,该自定义将在或对象中查找所需的值,该值将从其他地方读取的数据中填充。在我的第一次尝试中,我创建了一个实例,例如 然后我的模样 我的问题是那是空的。知道有什么问题吗?另外,我可以绑定我的Injector实例而不是绑定类吗?这样,我可

  • 这是我的简单测试用例: 正因为如此: 点击后,我会更改,所以我想在这里访问我的属性,以检查是否真的发生了更改。 我注意到有一件奇怪的事情,当我构建我的应用程序并检查构建的内容时,我的UITest目标没有构建。这很重要吗?

  • 随着播放框架的新版本2.4/2.5,他们进一步朝着注入一切和删除服务器状态的方向前进。现在不建议使用。然而,我需要在我的模板中的应用程序(例如,让所有支持的语言显示在所有页面上与)。 我知道我可以: 传球显式添加到我的所有模板 如何注入? ----更新:---- 到目前为止,我尝试了以下设置: index.scala.html: 样板斯卡拉。html: 控制器功能:

  • 然后我的看起来像 我的问题是为空。知道怎么了吗?另外,我可以绑定我的注入器的实例而不是绑定类吗?这样,我就可以构造将数据作为参数传递的实例。