Eclipse RCP 定制启动过程
问题:一个RCP程序,打包好后,如何双击某个工程文件,用这个RCP程序加载这个工程?换一个说法就是如何用Eclipse打开一个已有工程。
解决思路
Eclipse平台目前是这样的,要打开一个已有的工程,先运行Eclipse程序,然后选择File菜单下面的Import来完成这个操作。RCP是基于Eclipse平台的,如何能开发出一个RCP应用程序,这个程序能够直接打开一个已有的工程?
要完成这项功能,需要定制RCP的启动过程,Eclipse RCP程序都要实现IApplication这个接口,看看接口的源码(省略了部分注释):
package org.eclipse.equinox.app;
/**
* Bootstrap type for an application. An IApplication represent executable
* entry points into an application. An IApplication can be configured into
* the Platform's org.eclipse.equinox.applications extension-point.
*
* <p>
* Clients may implement this interface.
* </p>
*
* @since 1.0
*/
public interface IApplication {
public static final Integer EXIT_OK = new Integer(0);
public static final Integer EXIT_RESTART = new Integer(23);
public static final Integer EXIT_RELAUNCH = new Integer(24);
public Object start(IApplicationContext context) throws Exception;
public void stop();
}
从IApplication接口可以看出,要定制RCP的启动过程,就需要在重写start()方法上做文章了。现在再回到如何打开Eclipse已有工程这个问题上面。初版预计有以下步骤:
- 读取工程文件的路径参数(例如.project文件),该参数可以从start()方法的参数IApplicationContext context中获取。
- 打开一个指定的workspace,我们可以规定这个workspace只能有0个或1个工程。
- 将该工程加入到打开的workspace中,如同Eclipse导入工程的工程。
上面的几个步骤都是只需要在start()方法里面实现的过程,比较笼统,需要进一步细化,完善其中的细节。
1. 读取工程文件路径的,示例代码如下:
public Object start(IApplicationContext context) throws Exception {
// log the arguments
String[] arguments = (String[]) context.getArguments().get(IApplicationContext.APPLICATION_ARGS);
Log.info("arguments.length = " +arguments.length);
if(arguments.length > 0) {
Log.info("Arguments[0] = " +arguments[0]);
}
return super.start(context);
}
2.打开指定工作区(workspace),可以参照Eclipse启动参数,我们输入以下命令就可以让它启动后进入指定的工作区。
引用
eclipse.exe -data workspace-name
3.过程最复杂的就是如何把这个工程加入到我们打开的workspace中了。具体实现过程打算参考eclipse导入工程部分的源代码。
(未完...)
分享到:
相关推荐
以及Eclipse RCP扩展的使用和扩展点的开发,掌握这些技术知识的读者将能构建一个结构完整的Eclipse RCP软件,并解决软件开发过程中遇到的故障;实战篇(第13-15章)详细讲解了Eclipse RCP与Spring OSGi框架、...
Eclipse RCP富客户端平台,基于Eclipse开发的。
Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT
Eclipse rcp 实现文本内容对比功能,可自己选取对比的文件进行比较
eclipse rcp应用系统开发方法与实战源代码.zip
EclipseRcp 例子程序
eclipse rcp check table
Eclipse RCP 软件打包发布方法。之前花了5分下了一个教材,更不不好用。现在自己摸索写了一个,绝对赞~
clipse RCP允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序,可重用Eclipse中已存在的方法和编码模式。俗话说,万事开头难。Eclipse RCP入手可能会比较困难、费时。接下来我们将主要讲述如何让RCP工作 ...
EclipseRCP教程EclipseRCP教程EclipseRCP教程
Eclipse RCP入门,初级的RCP开发介绍。
eclipse RCP的mp3工程,非常棒的一个rcp应用程序,学习学习,快来下
Eclipse RCP培训.zip
网络中最全面最合适学习或开发...包含eclipse rcp开发入门教程; eclipse rcp基础教程;eclipse rcp开发自学教程; eclipse rcp开发培训教程及ppt等相关资料;教程中包含一步步操作实例,包含对开发原理的讲解与说明;
eclipse rcp开发插件详解,快速开发eclipse插件,资源很好
通过例子学习EclipseRCP开发通过例子学习EclipseRCP开发
Eclipse RCP允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序,可重用Eclipse中已存在的方法和编码模式。俗话说,万事开头难。Eclipse RCP入手可能会比较困难、费时。接下来我们将主要讲述如何让RCP工作. ...
ECLIPSE RCP项目开发源程序(中文注释)
Eclipse Rcp comon Navigator demo 一个简单的例子, 可以运行, 但是还要加入大量的 代码 扩展它, 主要要熟悉eclipse的常用 扩展点
documents and samples about Eclipse RCP developments.