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导入工程部分的源代码。
(未完...)
分享到:
相关推荐
10. **RCP应用生命周期**:从启动到关闭,Eclipse RCP应用有一套完整的生命周期管理,包括启动配置、初始化、运行以及退出阶段。 11. **插件开发**:开发Eclipse RCP应用涉及创建插件项目、定义插件依赖、编写插件...
通过使用Eclipse RCP,开发者可以创建高度可定制和扩展的应用程序,这些应用不仅具有强大的功能,而且还能与其他Eclipse插件无缝集成。 ##### Eclipse Workbench Eclipse Workbench 是 Eclipse RCP 的核心组成部分...
### Eclipse RCP 详细教程 ...以上介绍了Eclipse RCP的基本概念和创建第一个RCP程序的过程。后续章节将继续深入探讨更多高级主题和技术细节,包括如何添加组合键、系统托盘、外观设计、与编辑器交互等内容。
1. 安装Eclipse IDE for RCP and RAP Developers版本,这是一个专门为RCP开发定制的集成开发环境。 2. 创建一个新的Eclipse RCP项目,选择适当的模板,如“Basic”或“Feature-Based”。 3. 配置项目的运行时环境,...
#### RCP应用的启动过程 当启动一个RCP应用时,Eclipse首先加载核心插件,然后根据插件之间的依赖关系加载其他插件。工作台(Workbench)会初始化并加载所有已注册的透视图、编辑器、视图等。一旦初始化完成,用户...
- 应用启动:启动过程包括加载插件、初始化工作台等步骤。 - 用户交互:通过视图和编辑器处理用户输入。 - 事件处理:使用Eclipse的事件模型,监听并响应用户操作或系统事件。 - 应用关闭:正确关闭资源,保存...
创建完成后,开发者可以在 Eclipse 内部或者独立运行 RCP 应用,通过运行配置中的 "Launch an Eclipse application" 来启动程序,从而测试应用的基本功能。 2.3. 应用程序 VS 产品 应用程序(Application)是开发...
Eclipse Rich Client Platform (RCP) 是一个...通过深入学习"Eclipse RCP 应用系统开发方法与实战",开发者不仅可以掌握构建复杂桌面应用的技能,还能了解到如何利用Eclipse RCP的灵活性和强大功能来满足各种定制需求。
这个工程包“Eclipse RCP工程包(内附抽取的场景重现)”显然包含了用于演示或重现特定问题的示例代码,可能是针对Eclipse RCP开发者在开发过程中遇到的问题。虽然具体的描述链接已经失效,但我们可以根据Eclipse ...
Eclipse RCP利用Eclipse IDE的强大功能,使得开发过程更加高效和便捷。 在Eclipse RCP开发中,你需要了解以下关键知识点: 1. **MVC模式**:Eclipse RCP遵循Model-View-Controller设计模式,这有助于分离业务逻辑...
1. **Perspective**:透视图是Eclipse RCP中的视图组织方式,可以根据不同的工作场景定制不同的视图布局。 2. **View**:视图是UI中的一个区域,展示特定的数据或功能,例如 Outline 视图、Console 视图等。 3. **...
开发者会学习如何创建第一个RCP应用,包括定义插件项目、构建基本UI结构和启动配置。 其次,"使用Eclipse RCP进行桌面程序开发(一):快速起步.doc"文档将引导读者迅速进入实战阶段,讲解如何搭建开发环境,配置...
Eclipse RCP 提供了一种灵活的方式来构建应用程序,支持高度定制化,并且能够很好地与现有Eclipse插件生态系统集成。 #### 二、Eclipse RCP 特性 - **插件式架构**:Eclipse RCP 基于插件架构,这意味着开发者可以...
总的来说,Eclipse RCP是开发复杂、可扩展桌面应用的强大工具,尤其适合那些需要集成多种功能和定制化界面的项目。Kepler SR2的发布旨在提高开发者的生产力和用户体验,确保应用的稳定性和可靠性。通过深入理解和...
接着,我们会学习如何创建一个新的Eclipse RCP项目,包括配置项目设置、导入所需的库和插件,以及编写基本的启动类。此外,还会涉及插件开发,包括编写Plugin.xml文件以声明插件依赖和贡献点,以及实现IApplication...
它利用Eclipse平台的强大功能来创建高度定制化的桌面应用程序。通过RCP,开发者能够创建出功能丰富且界面友好的应用程序。 #### 二、RCP应用概述 根据提供的文档描述,一个RCP应用本质上是一个可以在脱离Eclipse ...
- **运行配置**:创建一个新的运行配置,选择“Run As”>“Eclipse Application”来启动RCP应用。 - **调试应用**:使用Eclipse的调试工具检查和修改应用的行为。 ##### 4.3 规约 - **命名约定**:遵循Eclipse的...