Eclipse4- 使用LifeCycleHandler监听E4应用程序的启动
来源:互联网 发布:kpi数据分析 编辑:程序博客网 时间:2024/05/22 05:16
在Eclipse 3.x平台中,如果你需要在程序的插件加载后执行一些任务,比如弹出用户登录对话框,你可以在对应的Application.java的start方法中添加。但在E4中,简化了Application等相关类,而是使用了org.eclipse.e4.ui.workbench.swt插件中的E4Application负责工作区模型的创建和GUI的启动,你没法简单修改了,不过我们可以使用LifeCycleHandler Hook E4应用程序启动,你只需要在plugin.xml添加“lifeCycleURI”属性就行。
<extension id="product" point="org.eclipse.core.runtime.products"> <product name="client" application="org.eclipse.e4.ui.workbench.swt.E4Application"> <property name="appName" value="client"></property> <property name="applicationXMI" value="client/Application.e4xmi"></property> <property name="applicationCSS" value="platform:/plugin/client/css/default.css"></property> <property name="lifeCycleURI" value="platform:/plugin/client/client.handlers.StartupLifeCycleHandler"></property> </product></extension>
LifeCycleHandler.java只是一个POJO对象,我们可以在方法上添加Eclipse特有的注解@PostContextCreate,这个注解标记该方法在插件启动后执行。
下面是实现例子,很简单的:
import javax.inject.Inject;import org.eclipse.e4.core.contexts.IEclipseContext;import org.eclipse.e4.ui.workbench.lifecycle.PostContextCreate;import org.eclipse.jface.window.Window;/** * * @author 刘尧兴 * @version at 2011-7-13 */@SuppressWarnings("restriction")public class StartupLifeCycleHandler { @PostContextCreate public void startup(IEclipseContext context) { context.set("login", "admin".equals(System.getenv("user"))); }}在E4Application.java是这样处理的:
String lifeCycleURI = getArgValue(E4Workbench.LIFE_CYCLE_URI_ARG,applicationContext, false);if (lifeCycleURI != null) { lcManager = factory.create(lifeCycleURI, appContext); if (lcManager != null) { // Let the manager manipulate the appContext if desired ContextInjectionFactory.invoke(lcManager,PostContextCreate.class, appContext, null); }}// Create the app model and its contextMApplication appModel = loadApplicationModel(applicationContext,appContext);appModel.setContext(appContext);
0 0
- Eclipse4- 使用LifeCycleHandler监听E4应用程序的启动
- eclipse4.0(e4)的例子跑起来
- Eclipse4 E4 tool 如何设置PartStack 可调节
- Android之应用程序监听开机启动自启动应用程序
- e4
- E4
- E4
- E4
- E4
- E4
- E4
- E4
- E4
- 监听启动的进程
- 监听手机的启动
- 监听应用的启动
- eclipse4.2 Juno使用
- eclipse4.4.2使用maven
- 时间字符串与时间戳互转
- HTMLParser使用详解(5)- 扩展 HTMLParser 对自定义标签的处理能力
- 库卡的功能函数和子程序(可能是完整的吧)完整列表
- 海思3518c平台 实现 华为WCDMA 拨号
- Android View如何获取焦点
- Eclipse4- 使用LifeCycleHandler监听E4应用程序的启动
- 使用AjaxFileUpload.js实现文件异步上传
- 12个球称三次找坏球
- Ruby on Rails 国际化demo
- FOUSHAN SPS FOR KUKA
- SWT初尝试——使用SWT开发一个智能搜索二手车小工具
- HMM学习最佳范例七:前向-后向算法1
- 最短路 (HDU 2544)
- ipconfig不是内部或外部命令 怎么办