简单RCP框架源码分析
关键字: RCP框架
在我们新建一个RCP应用程序框架时,eclipse会为我们自动生成若干个类:
网上也有很多关于“Hello RCP”的分析说明,但都聚集在类功能分析,没有源代码的分析。下面着重分析一下其中的某些不易理解的类以及其中涉及到的其它类的源代码。
- Application类: 是RCP应用程序的入口点,你可以把它想象成程序的控制器,类似于Model2架构中的控制器。它很简短,而且在不同的项目中变化不大;它所做的就是创建 一个工作台Workbench,同时将其于一个WorkbenchAdvisor联系起来。Workbench是RCP框架的一部分,一个RCP应用对应 一个Workbench,但一个 Workbench可以有多个Workbench窗口。
- ApplicationWorkbenchAdvisor类:继承了WorkbenchAdvisor类,提供了两个方法,其中createWorkbenchWindowAdvisor方法将创建窗口的工作交给了ApplicationWorkbenchWindowAdvisor类。
- WorkbenchAdvisor类: 该类不是一个接口,而是一个抽象类,它不包含任何的功能实现,因为将来很有可能在其中添加其它方法。Eclipse的设计者们希望每个RCP应用都实现 它,由平台来调用。Workbench和Workbench Window生命周期中的有一些重要事件,这些事件在WorkbenchAdvisor中都 有相应的方法,Platform调用这些方法从而执行你的定制代码。
表1. WorkbenchAdvisor提供的事件处理方法
方法
|
描述
|
参数
|
initialize
|
第一个被调用,用来初始化,比如解析命令行,注册适配器,声明图像等。
|
IWorkbenchConfigurer
|
preStartup
|
在初始化结束,但是在第一个窗口打开前调用。可以被用来设置一些选项来影响初始打开的编辑器和视图。
|
|
postStartup
|
在所有窗口已经被打开或恢复后,但是在事件循环开始前调用。它可以被用来启动自动处理器,打开提示或其他窗口。
|
|
preShutdown
|
在事件循环结束后,但在任何窗口被关闭前调用。
|
|
postShutdown
|
在关闭Workbench过程中,所有窗口被关闭后调用。它可以被用来存储当前的应用状态和清理任何由initialize创建的东西。
|
|
表2. WorkbenchAdvisor提供的事件循环钩子
方法
|
描述
|
参数
|
eventLoopException
|
在事件循环中如果有未检测的异常则调用给方法。默认的实现将记录错误信息。
|
Throwable
|
eventLoopIdle
|
时间循环时什么也不做时调用
|
Display
|
表3. WorkbenchAdvisor提供的信息获取方法,你可以在子类中覆盖
方法
|
描述
|
参数
|
getDefaultPageInput
|
返回新的Workbench页面的缺省输入,缺省值是null。
|
|
getInitialWindowPerspectiveId
|
返回新创建的Workbench Window的初始透视图。这个方法必须提供。
|
|
getMainPreferencePageId
|
返回第一个显示的首选参数页。缺省为null意味着首选参数页按字母顺序排序。
|
|
上面的WorkbenchAdvisor事件对大多数应用来说是足够了,但是在某些情况,RCP又提供了两个方法来控制你的应用窗口和控件如何被创建。它们被列在表4,但是我觉得很多程序不需要用到这些。
表4. WorkbenchAdvisor提供的高级方法
方法
|
描述
|
参数
|
openWindows
|
在启动时打开所有Workbench Window。缺省实现会恢复前面存储的Workbench状态。
|
|
其它的方法在eclipse3.1后都被覆盖了。
- ApplicationWorkbenchWindowAdvisor类:用来控制状态栏,工具栏,标题和窗口的大小等。但它将创建工具栏的任务交给了ApplicationActionBarAdvisor类。
- WorkbenchWindowAdvisor类:查阅Javadoc文档可知,它是配置workbench窗口的公共基类。当窗口被创建时,该类就会被创建,用来配置窗口。用户应该继承该类并覆盖其中的某些方法来满足特定的需求。
表5. WorkbenchWindowAdvisor提供的生命事件点
方法
|
描述
|
参数
|
preWindowOpen
|
在Workbench Window的构造器中调用。可以使用这个方法来指定窗口是否有菜单栏。然而,窗口的widget还没有创建,因此在这个方法中不能引用它们。
|
|
postWindowRestore
|
当一个窗口从保存的状态恢复时,但在打开前,被调用。
|
|
postWindowCreate
|
在窗口从保存状态恢复,或从scratch中创建后,但在打开前,被调用。
|
|
openIntro
|
在窗口打开前一刻被调用,它用来创建introduction组件(如果有的话)。
|
|
postWindowOpen
|
紧接着Workbench Window被打开后调用。它被用来组装窗口的widget,例如设置标题或修改它的大小。
|
|
preWindowShellClose
|
在Workbench Window被关闭前调用(从技术上来说,是在它的shell被关闭前)。这是唯一能够终止关闭动作的方法,所以,它可以用来显示“你确定吗”这样的对话框。
|
|
postWindowClose
|
在Workbench Window关闭后调用。它被用来清理任何由preWindowOpen创建的资源。
|
|
表5. WorkbenchWindowAdvisor提供高级方法
方法
|
描述
|
参数
|
createWindowContents
|
创建窗口的内容,覆盖该方法来定义用户自己的内容和布局。
|
Shell
|
createEmptyWindowContents
|
用来创建空页面的窗口,覆盖该方法来改变默认窗口背景
|
Composite
|
- IWorkbenchWindowConfigurer接 口:为配置workbench窗口提供了专门的方法,Window configurer类和要配置的workbench是一对一对应的,用户可以用get/set方法将任意状态和window configurer类相连。注意这些类只供主应用程序使用,该接口不能被实现。
- ApplicationActionBarAdvisor类:继承了ActionBarAdvisor类
- ActionBarAdvisor类:是配置工作台窗口action bars的公用基类。用户应该继承该类并覆盖其中的某些方法来满足特定的需求。
表7. ActionBarAdvisor提供的可以覆盖的方法
方法
|
描述
|
<p cla
分享到:
Global site tag (gtag.js) - Google Analytics
|
相关推荐
### Eclipse RCP 详细教程 #### 1. 富客户端平台 ##### 1.1. 概述 Eclipse RCP(Rich Client Platform)是一种基于Java的框架,它允许开发者构建高度可定制和可扩展的桌面应用。这些应用通常具有丰富的用户界面,...
这个“最详细的Eclipse RCP教程”显然旨在深入解析这一强大的开发平台,帮助初学者和经验丰富的开发者更好地理解和应用Eclipse RCP。 在Eclipse RCP中,开发者可以利用插件体系结构来构建模块化、可扩展的应用程序...
### Eclipse RCP中文入门教程详解 #### 一、Eclipse RCP简介 Eclipse RCP (Rich Client Platform) 是一种基于Eclipse框架构建富客户端应用程序的技术。它利用Eclipse平台的强大功能来创建高度定制化的桌面应用程序...
在本教程中,我们将详细介绍 Eclipse RCP 的开发过程、技术要点和注意事项,以帮助开发者快速掌握 Eclipse RCP 的开发技术。 一、Eclipse RCP 的技术要点 Eclipse RCP 的核心技术包括: 1. SWT(Standard Widget ...
本教程《Eclipse4-RCP 开发教程》详细介绍了如何利用Eclipse 4 RCP进行软件开发。 首先,Eclipse 4引入了全新的组件模型(E4 Model),它取代了E3时代的Plug-in System,简化了开发流程。E4 Model包括了应用程序...
这个"Eclipse-RCP培训教程.rar"显然是一份详细的教程资料,旨在帮助学习者掌握如何利用Eclipse RCP开发自己的桌面应用。Eclipse RCP以其模块化、可扩展性和丰富的开发工具集而闻名,广泛应用于软件开发领域。 首先...
《Eclipse RCP中文入门教程》很可能会涵盖上述概念的详细解释,以及如何创建一个基本的RCP应用的步骤。阅读器下载.htm可能提供了下载Eclipse RCP开发环境的链接,而E书说明.txt则可能是对教程的简单介绍或使用指南。...
Eclipse Rich Client Platform (RCP) 是一个强大的开发框架,用于构建桌面应用程序。...在实践中,你可以参考“rcp自学教程.doc”文档,它应包含了详细的步骤指导和实例分析,助你快速上手Eclipse RCP开发。
- **"RCP程序设计.pdf"**:可能包含对RCP设计原理的深入解释,以及如何创建和配置RCP项目的详细步骤。 - **"一个简单的RCP入门教程.pdf"**:适合初学者,逐步指导完成一个基础的RCP应用开发。 - **"Eclipse RCP...
【Eclipse RCP 插件开发自学教程 (Eclipse3.6)】 Eclipse RCP (Rich Client Platform) 是一个框架,允许开发者构建高度可定制和可扩展的桌面应用程序。本教程是针对Eclipse 3.6版本的,提供了一个详细的学习路径,...
在"一个简单的RCP入门教程.pdf"中,你可能会详细了解到以上各个知识点,并通过实例逐步引导你完成一个简单的RCP应用的开发过程。这个教程将帮助你从零开始,逐步掌握RCP开发的基本技巧,为后续的深入学习打下坚实...
本文将详细介绍如何使用Eclipse RCP进行插件开发的基础流程,包括项目的创建、配置以及不同运行模式的理解。 #### 二、创建Eclipse RCP项目 ##### 1. 创建插件项目 - **步骤一**:打开Eclipse IDE,选择“File” ...
在提供的资源中,"rcp自学教程.doc"和两个PDF文档可能包含了详细的步骤指导和示例代码,帮助你逐步学习和理解RCP开发。"org.salever.rcp.tech.zip"可能是一个包含示例代码或技术资源的压缩包,解压后可作为实战练习...
Eclipse RCP(Rich Client Platform)插件开发自学教程源码提供了一个全面的学习平台,用于理解和实践Eclipse RCP应用程序的构建。这个教程涵盖了多个章节,...记得配合教程网站上的详细说明进行学习,以获得最佳效果。
介绍非常详细,适合初学者学习,RCPRCPRCPRCPRCPRCPRCPRCPRCPRCPRCPRCPRCPRCP
在操作和维护方面,RCP-1500系列遥控面板提供了一个详细的菜单系统,包括菜单操作、状态画面、着色菜单、文件菜单、维护菜单和配置菜单等。用户可以通过这些菜单来进行高级的配置和设置,以确保设备的性能达到最佳。...