gpt4 book ai didi

java - eclipse E4 : how to access the MApplication instance (at start)

转载 作者:行者123 更新时间:2023-11-30 11:10:44 27 4
gpt4 key购买 nike

尝试在启动时访问 MApplication 实例:即,在用户访问 UI 以生成事件之前,通过按钮、 View 等。

在启动时,似乎有 2 个访问点:

  1. 应用程序 osgi 包激活器:通过 .start() 方法。

  2. E4LifeCycle 实例:.postContextCreate(workbenchContext, applicationContext) 方法。

在检查我的 E4LifeCycle 实例中的初始 workbenchContext 时,它没有返回 MApplication 实例(或任何 MApplicationElement 实例)。 IApplicationContext 实例(eclipse 标准,显然不是 e4)似乎没有任何方法可以访问 e4 元素。 workbenchContext 在查询时返回 EModelService 的一个实例,但是(出于某种原因我无法弄清楚),无法从该服务访问根模型元素:已经必须访问 applicationElement(通常是 MUIElement 实例)寻找其他元素。

所以,也许我遗漏了一些东西,但似乎没有办法访问 MApplication 实例,除非它是通过一个应用程序提供的初始 mPart View 对象(通过注入(inject))。在创建用户界面/ View 之前,是否没有其他方法可以访问应用程序模型?

我需要注册某种类型的 EventBroker 吗?

最佳答案

调用生命周期@PostContextCreate时,MApplication尚未创建。

调用@ProcessAdditions生命周期方法时可用:

@ProcessAdditions
void processAdditions(MApplication app)

但是您应该注意,这还处于应用程序启动的早期阶段,因此其他内容可能不可用。您可能想要订阅事件代理中的 UIEvents.UILifeCycle.APP_STARTUP_COMPLETE 事件。这将在应用程序启动完成时调用。

关于java - eclipse E4 : how to access the MApplication instance (at start),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27614073/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com