前面介绍了一些文字性的东西,现在还是来看看代码,这样才感觉踏实
1. Application
Application的作用就是应用程序或产品(product)的入口,它和Java系统中,类定义的main()方法作用一样. 当Runtime启动的时候,应用程序开始运行,应用程序退出的时候,Eclipse关闭.
PDE向导使用 Hello RCP 模板产生了edu.swust.cs.soapfirewall.Application 类,如下。 Applications必须实现 IPlatformRunnable接口,这个接口定义了一个 run()方法,可以把这个方法想像成 main() 方法.
java 代码
- public class Application implements IPlatformRunnable {
- public Object run(Object args) throws Exception {
- Display display = PlatformUI.createDisplay();
- try {
- int returnCode = PlatformUI.createAndRunWorkbench(
- display, new ApplicationWorkbenchAdvisor());
- if (returnCode == PlatformUI.RETURN_RESTART) {
- return IPlatformRunnable.EXIT_RESTART;
- return IPlatformRunnable.EXIT_OK;
- } finally {
- display.dispose();
- }
- }
- }
关键的代码就是创建了一个 Display 对象,并调用PlatformUI.createAnd RunWorkbench(Display, WorkbenchWindowAdvisor)方法启动了一个Eclipse工作台 .它会打开一个窗口,并一直循环下去,止到有事件触发退出应用程序.在returning前,必须dispose创建的Display,因为SWT都是使用的本地的API,所以必须释放系统分配的资源,MyEclipse用起来会,系统会越用越慢,估计就是这个原因.
application 类必须和 Eclipse Runtime的 applications扩展点建立联系起来,这就是前面所说的基于部署的扩展。这样才使得 Runtime知道要运行哪一个应用程序。在RCP中,许多组件都是通过这种联系建立起来,你下面的透视图和视图,都必须通过基于部署的扩展来实现。
2. WorkbenchAdvisor
在上面application的代码中,Application类会实例化一个WorkbenchAdvisor 对象,并传递给 PlatformUI.createAndRunWorkbench()方法.
像它的名字一样, WorkbenchAdvisor 告诉工作台怎样显示,显示什么等信息。在RCP应用程序中,很多地方用这种模板模式来构建UI组件。WorkbenchAdvisor做了两件事:
java 代码
- public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
- private static final String PERSPECTIVE_ID =
- "edu.swust.cs.soapfirewall.perspective";
-
- public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
- IWorkbenchWindowConfigurer configurer) {
- return new ApplicationWorkbenchWindowAdvisor(configurer);
- }
- public String getInitialWindowPerspectiveId() {
- return PERSPECTIVE_ID;
- }
- }
-
3. Perspective
初始透视图是通过扩展标识定义的. 透视图类必须实现IPerspectiveFactory 接口,并在createInitial Layout(IPageLayout)方法添加实际的布局代码.现在这个代码空的,将在后面补充.
java 代码
- public class Perspective implements IPerspectiveFactory {
- public void createInitialLayout(IPageLayout layout) {
- }
- }
4.2.4. WorkbenchWindowAdvisor
在应用程序中,每一个窗口都有一个 WorkbenchWindowAdvisor ,它的作用是也是告诉窗口如何渲染.在 Window advisors根据窗口的生命周期定义了多个切入点函数,如preWindowOpen()窗口打开前 ,postWindowCreate()创建窗口结后等,可以在不同的方法创建窗口的内容,了解窗口的生命周期是很有必要的,可以让你规划后,在何时才能创建相应的对象,有效的避免窗口中的组件还没有被创建,就已经在使用了.
在 ApplicationWorkbenchWindowAdvisor定制了soapfirewall窗口.在preWindowOpen() 方法中,设置了初始窗口的大小,容器表题栏 ,状态栏和工具栏.
java 代码
- public class ApplicationWorkbenchWindowAdvisor extends
- WorkbenchWindowAdvisor {
-
- public ApplicationWorkbenchWindowAdvisor(
- IWorkbenchWindowConfigurer configurer) {
- super(configurer);
- }
-
- public ActionBarAdvisor createActionBarAdvisor(
- IActionBarConfigurer configurer) {
- return new ApplicationActionBarAdvisor(configurer);
- }
-
- public void preWindowOpen() {
- IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
- configurer.setInitialSize(new Point(250, 350));
- configurer.setShowCoolBar(false);
- configurer.setShowStatusLine(false);
- configurer.setTitle("soap防火墙");
- }
- }
5. ActionBarAdvisor
ActionBarAdvisors 创建了窗口需要的actions(动作),并且定义了它们显示的位置.createActionBarAdvisor() 里会创建action.在实际的开发中,应该将你窗口所用到的所有action都在这个方法中实例化.
org.eclipsercp.hyperbola/ApplicationActionBarAdvisor
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
super(configurer);
}
protected void makeActions(IWorkbenchWindow window) {
}
protected void fillMenuBar(IMenuManager menuBar) {
}
}
6. 应用程序启动过程
对于刚开发RCP应用的来说,这个可以说是最痛的问题,经常会遇到抛出空指针的问题,所以了解应用程序的过程是非常有必要。下面的应用程序启动序列图很好的表示了这个过程
- 描述: 应用程序启动序列图
- 大小: 48.1 KB
分享到:
- 2007-02-15 02:26
- 浏览 2067
- 评论(0)
- 论坛回复 / 浏览 (0 / 3914)
- 查看更多
相关推荐
- **程序VS产品**:区分程序与产品的概念,产品是RCP应用程序的打包形式,包含特定的配置和依赖。 - **维护LAUNCH配置**:学习如何管理和修改程序的启动配置。 - **可能的APPLICATION ID 错误**:解释应用程序ID...
本文将详细阐述实现RCP应用程序的基本步骤,同时参考《Eclipse插件RCP中文入门教程.pdf》中的内容,帮助你更好地理解和掌握RCP开发。 1. **安装Eclipse IDE for RCP and RAP Developers** 开始RCP开发前,首先需要...
这种模块化设计使得应用程序能够灵活扩展,同时保持代码的高内聚和低耦合。在RCP应用中,工作台(Workbench)作为整体架构的中心,负责管理窗口、视图、编辑器等元素。 书中的内容可能涵盖了以下知识点: 1. **...
- **插件开发环境(PDE)**:Eclipse内置的工具集,用于开发、调试和管理RCP应用程序和插件。 - **菜单和工具栏**:通过命令模型(Command Framework)添加自定义菜单项和工具栏按钮,实现用户界面操作。 3. **...
1. **模块化**:RCP应用程序由一系列独立的插件组成,每个插件负责特定的功能,这使得代码组织清晰,易于维护和扩展。 2. **可定制性**:通过插件系统,用户可以根据需求自定义工作台布局,添加或移除功能。 3. **...
通常,这样的入门教程会涵盖如何设置开发环境,创建一个新的RCP项目,理解RCP的基本架构,以及如何编写和运行一个简单的RCP应用。 【标签】"源码"和"工具"表明了这篇内容可能包含了实际的代码示例以及可能使用的...
- 这可能是针对初学者的基础教程,涵盖了RCP的基本概念和术语,逐步指导读者进行简单的RCP应用开发。 - 可能会讲解如何配置开发环境,如安装Eclipse IDE,安装RCP插件,以及如何使用插件开发工具(PDE)。 通过这...
### Eclipse RCP 入门示例介绍 #### 一、Eclipse 概述 Eclipse 是一款由 IBM 开发并贡献给开源社区的集成开发环境...RCP 的引入不仅简化了 Java 桌面应用程序的开发过程,也为开发者提供了更多创新的可能性。
RCP,全称为Rich Client Platform,是Eclipse项目的一个核心组成部分,它提供了一个框架和一组服务,用于构建功能丰富的桌面...通过本套资料的学习,你将能够熟练地构建自己的RCP应用程序,实现功能丰富的桌面应用。
2. **基本结构**:RCP应用程序基于工作台(Workbench)模型,包括窗口(Window)、透视图(Perspective)、视图(View)和编辑器(Editor)。理解这些基本元素的职责和交互方式是入门的关键。 3. **插件开发**:RCP...
13. **部署和发布**:最后,了解如何打包、部署和发布RCP应用程序也非常重要。这涉及到理解产品配置、更新站点和打包策略。 通过深入学习和实践这些知识点,初学者可以逐步掌握RCP程序设计,并能开发出高效、可扩展...
- **创建产品配置**:解释了如何为现有的插件项目创建产品配置文件,以便将其转换成一个完整的Eclipse RCP应用程序。 - **创建特征项目**:指导如何为该应用程序创建特征项目。 - **在产品配置中输入特征依赖项**:...
Eclipse RCP(Rich Client Platform)插件开发是构建基于Eclipse框架的应用程序的核心技术之一。本指南旨在帮助开发者从零开始掌握Eclipse RCP插件开发的基础知识及实战技巧。 ##### Introduction Eclipse RCP 是...
- **主界面透视图和视图**:透视图是RCP应用程序的主要布局,包含多个视图,用于展示数据或执行特定功能。 - **系统托盘和定时提示**:系统托盘图标和定时气泡提示可以增强应用的用户体验,提醒用户有关信息或操作。...
3. **定义产品配置**:产品配置定义了RCP应用的基本结构,包括主窗口、启动类等。在"Plug-ins"视图中,右键点击项目,选择"New" -> "Product Configuration"。 4. **添加视图和编辑器**:RCP应用由多个视图(View)...
《Eclipse RCP中文入门教程》很可能会涵盖上述概念的详细解释,以及如何创建一个基本的RCP应用的步骤。阅读器下载.htm可能提供了下载Eclipse RCP开发环境的链接,而E书说明.txt则可能是对教程的简单介绍或使用指南。...
Eclipse RCP(Rich Client Platform),作为Java桌面应用程序开发的一种先进方法,近年来获得了广泛的关注与应用。本文将从RCP的基础入手,深入探讨其核心概念和技术要点,旨在为初学者提供一个清晰的入门指南。 **...
RCP,全称Rich Client Platform,是Eclipse框架提供的一种用于构建桌面应用程序的开发平台。它允许开发者基于Eclipse的核心技术构建功能丰富、可扩展且具有现代用户界面的客户端应用程序。本文档将引导你逐步了解RCP...
RCP允许开发者利用Eclipse的强大功能来创建功能丰富的、自定义的、独立的应用程序,而不局限于Eclipse集成开发环境(IDE)内部。在本教程中,我们将深入探讨如何使用RCP进行开发,通过一个简单的实例来开启你的RCP之旅...
通过以上介绍,我们可以看到Eclipse RCP是一个非常强大且灵活的框架,它不仅能够加速桌面应用程序的开发,还能让开发者专注于业务逻辑而不是繁琐的界面设计。对于希望利用Eclipse平台构建复杂应用的开发者来说,掌握...