基于 Eclipse RCP 的复合应用开发 第一章
EclipseRCP与SpringOSGi:技术详解与最佳实践

EclipseRCP与SpringOSGi:技术详解与最佳实践Eclipse RCP与Spring OSGi:技术详解与最佳实践第⼀部分基础篇1 初识Eclipse RCP1.1 Eclipse平台概述1.2 Eclipse RCP概述1.3 Eclipse RCP的应⽤1.4 OSGi与Equinox1.5 SWT与JFace1.6 ⼩结2 搭建Eclipse RCP开发环境2.1 JDK的安装与配置2.1.1 下载JDK安装程序2.1.2 安装JDK运⾏程序2.1.3 配置JDK运⾏环境2.1.4 测试JDK安装状态2.1.5 卸载JDK应⽤程序2.2 安装Eclipse IDE2.2.1 Eclipse开发包2.2.2 Eclipse版本更新2.2.3 下载Eclipse2.2.4 安装Eclipse2.2.5 技术资源2.3 Maven的安装与配置2.3.1 Maven介绍2.3.2 下载Maven2.3.3 安装Maven2.3.4 测试Maven2.3.5 修改Maven的配置⽂件2.3.6 技术资源2.4 Maven和Eclipse的集成2.4.1 安装Maven Eclipse插件2.4.2 配置Maven Eclipse插件2.4.3 技术资源2.5 安装Spring IDE Plugin2.5.1 Spring IDE介绍2.5.2 安装Spring IDE插件2.5.3 技术资源2.6 安装WindowBuilderProPlugin2.6.1 WindowBuilder介绍2.6.2 安装WindowBuilder插件2.7 ⼩结3 SWT界⾯设计详解3.1 SWT介绍3.2 WindowBuilder插件初识3.2.1 设计视图3.2.2 源码视图3.2.3 结构视图3.3 SWT设计⾯板3.6 容器使⽤⼊门3.6.1 Composite3.6.2 Group3.6.3 ScrolledComposit3.6.4 SashForm3.6.5 TabFolder与TabItem3.6.6 CTabFolder与CTabItem 3.6.7 ViewForm3.6.8 CBanner3.7 容器使⽤进阶3.7.1 checkSubclass⽅法3.7.2 界⾯复⽤3.7.3 添加⾃定义的Component 3.7.4 背景模式3.7.5 带分隔条的SashForm 3.8 布局使⽤⼊门3.8.1 AbsoluteLayout3.8.2 FillLayout3.8.3 GridLayout3.8.4 FormLayout3.8.5 RowLayout3.8.6 StackLayout3.8.7 GroupLayout3.8.8 FlowLayout3.8.9 BoxLayout3.8.10 BorderLayout3.9 布局使⽤进阶3.9.1 使⽤AbsoluteLayout3.9.2 使⽤GridLayout3.9.3 StackLayout3.10 控件使⽤⼊门3.10.1 Label3.10.2 CLabel3.10.3 Separator3.10.4 Text3.10.5 StyledText3.10.6 Combo3.10.7 CCombo3.10.8 List3.10.9 Button3.10.10 DateTime3.10.11 Spinner3.10.12 Slider3.10.13 Scale3.10.14 Link3.10.15 ToolBar与ToolItem 3.10.16 CoolBar与CoolItem3.10.24 TableTree3.11 控件使⽤进阶3.11.1 创建Simple Table3.11.2 创建Lazy Table3.11.3 创建Virtual Table3.11.4 Virtual Table注意事项3.11.5 Virtual Table排序3.11.6 创建Lazy Tree3.11.7 创建Virtual Tree3.11.8 创建TreeVirtualDynamic3.11.9 创建POJOComposite3.11.10 如何与浏览器交互3.12 菜单使⽤⼊门3.12.1 Menu Bar组件3.12.2 Popup Menu3.12.3 MenuItem3.13 菜单使⽤进阶3.14 技术资源3.15 ⼩结4 JFace界⾯设计详解4.1 MVC设计思想4.1.1 MVC模式4.1.2 Java与MVC模式4.2 JFace与MVC模式4.2.1 JFace Viewer框架概述4.2.2 JFace Viewer框架机制4.3 JFace常⽤组件⼊门4.3.1 ComboViewer4.3.2 ListViewer4.3.3 TableViewer4.3.4 TreeViewer4.3.5 CheckboxTableViewer4.3.6 CheckboxTreeViewer4.3.7 TreeTableViewer4.3.8 TableViewer Composite4.3.9 Table Composite4.3.10 TreeViewer Composite4.3.11 Tree Composite4.4 JFace组件使⽤进阶4.4.1 数据绑定4.4.2 基于EditingSupport的可编辑表格4.4.3 基于ICellModifier的可编辑表格4.4.4 对话框编辑器4.4.5 其他表格标签4.4.6 Viewer浮动提⽰控件4.5 ⼩结5.2.2 ExpandableComposite5.2.3 Label与Text5.2.4 Hyperlink与ImageHyperlink5.2.5 Composite Separator5.2.6 Section5.2.7 Form与ScrolledForm5.3 Eclipse Forms使⽤进阶5.3.1 FormEditor与FormPage5.3.2 MasterDetailsBlock与IDetailsPage5.4 Eclipse Forms技术资源5.5 Nebula项⽬介绍5.6 安装Eclipse Nebula Plugin5.6.1 安装Eclipse Nebula Main Widgets5.6.2 安装Eclipse Nebula incubation Widgets5.6.3 加载Eclipse Nebula控件到WindowBuilder Pro Plugin中5.7 Nebula Main Widgets设计初识5.8 Nebula Incubation widgets设计初识5.9 Nebula设计经验5.10 Nebula技术资源5.11 ⼩结第⼆部分⾼级篇6 Eclipse RCP开发基础6.1 Eclipse概念6.1.1 欢迎界⾯6.1.2 ⼯作台6.1.3 透视图6.1.4 视图6.1.5 编辑器6.2 RCP应⽤程序设计6.2.1 RCP插件创建向导6.2.2 Plug-in Project6.2.3 Plugin Content6.2.4 Templates6.2.5 Sample Intro6.2.6 产品初次运⾏6.3 插件清单编辑器6.3.1 插件概述6.3.2 插件依赖项6.3.3 插件运⾏时6.3.4 插件扩展6.3.5 插件扩展点6.3.6 插件构建6.3.7 其他页⾯6.4 RCP Activator与Advisor类解析6.4.1 WorkshopAppActivator6.4.2 Application6.4.3 ActionBarAdvisor6.4.4 WorkbenchAdvisor6.4.5 WorkbenchWindowAdvisor7.1.1 帮助插件的Content向导页⾯7.1.2 帮助插件的Templates向导页⾯7.1.3 帮助插件的Sample Help Table of Contents向导页⾯7.2 维护Help Content7.2.1 帮助系统配置与资源⽂件的⽬录7.2.2 帮助系统配置与资源⽂件的关系7.2.3 帮助系统扩展7.3 添加帮助的菜单项7.4 帮助⽂件的创建7.5 ⼩结8 构建产品欢迎页⾯8.1 产品绑定欢迎页⾯8.1.1 欢迎页⾯扩展8.1.2 欢迎页⾯定义8.1.3 欢迎页⾯⾸页8.1.4 页⾯跳转链接8.2 欢迎页⾯请求8.2.1 创建IIntroAction8.2.2 添加IIntroAction链接8.3 添加动态内容8.3.1 动态页⾯创建8.3.2 动态数据创建8.4 创建页⾯扩展8.5 ⼩结9 构建产品多国语⾔9.1 插件清单的多国语⾔9.2 Java程序的多国语⾔9.2.1 Java程序的外部化字符串9.2.2 Java程序的多国语⾔包9.2.3 产品多国语⾔进阶9.3 帮助系统的多国语⾔9.4 Eclipse界⾯汉化9.5 切换软件系统语⾔9.5.1 添加⾃定义产品的config⽂件9.5.2 添加语⾔切换扩展点9.5.3 语⾔切换处理器9.6 ⼩结10 产品的运⾏与导出10.1 产品配置10.2 产品配置编辑器10.3 导出向导10.3.1 产品导出10.3.2 跨平台导出10.3.3 插件导出10.4 运⾏与导出进阶10.5 ⼩结11 Eclipse RCP扩展的使⽤11.1 ViewPart视图11.1.1 创建新插件11.1.2 视图向导11.2.1 透视图向导11.2.2 透视图代码11.2.3 透视图扩展11.2.4 透视图布局11.2.5 打开透视图11.3 EditorPart编辑器11.3.1 创建数据表单11.3.2 创建编辑器的输⼊11.3.3 创建编辑器11.3.4 创建视图树形组件11.3.5 编辑器扩展11.4 编程实现Action11.4.1 IAction11.4.2 ToolBar⼯具栏11.4.3 CoolBar⼯具栏11.4.4 ContentMenuBar菜单栏11.4.5 ⼯作台Action11.4.6 视图Action菜单栏11.4.7 视图Action⼯具栏11.4.8 编辑器Action⼯具栏11.5 扩展实现Action11.5.1 ⼯作台Action扩展11.5.2 视图Action扩展11.5.3 编辑器Action扩展11.6 Action的键盘绑定11.6.1 Commands扩展11.6.2 Bindings扩展11.7 Eclipse RCP设计进阶11.7.1 视图/编辑器之间通信11.7.2 创建状态栏项11.7.3 创建属性配置页⾯11.7.4 创建登录对话框11.8 ⼩结12 Eclipse RCP扩展点开发12.1 扩展点简介12.2 创建扩展点12.3 扩展点编辑器12.3.1 扩展点概述12.3.2 扩展点定义12.3.3 扩展点源码12.4 扩展点处理12.4.1 扩展点对象12.4.2 扩展点注册12.4.3 扩展点获取12.5 添加扩展12.6 使⽤扩展12.7 ⼩结第三部分实战篇13 Eclipse RCP与Spring OSGi 13.1 OSGi技术介绍13.2 Spring OSGi项⽬所需要的开发包13.2.1 下载Spring DM的开发包13.2.2 解压缩Spring DM的开发包13.2.3 创建Spring DM⽬标平台13.3 Spring OSGi项⽬的Maven管理13.3.1 创建Maven POM项⽬13.3.2 修改Maven项⽬类型13.4 Spring OSGi项⽬的模块化设计13.4.1 创建Spring DM业务项⽬13.4.2 设计Spring DM业务项⽬13.5 Spring OSGi项⽬转为插件项⽬13.6 Spring OSGi插件项⽬发布接⼝13.6.1 创建接⼝发布配置13.6.2 添加包的路径导出13.7 Eclipse RCP获取Spring OSGi服务13.7.1 创建Eclipse RCP UI插件13.7.2 获取Spring OSGi服务接⼝13.7.3 调⽤Spring OSGi服务接⼝13.8 Eclipse RCP与Spring OSGi的启动13.8.1 Eclipse应⽤程序启动选项13.8.2 启动Eclipse RCP产品配置13.8.3 启动基于Spring OSGi的RCP程序13.9 在Eclipse RCP中获取ApplicationContext和Bean 13.10 Spring OSGi的Maven插件项⽬打包13.10.1 PDE插件导出向导13.10.2 Maven插件项⽬的打包配置13.10.3 执⾏Maven插件打包13.11 ⼩结14 Eclipse RCP与数据访问14.1 SpringOSGi与Hibernate14.1.1 Hibernate简介14.1.2 数据访问插件⽬标14.1.3 数据访问插件设计14.2 插件如何引⼊第三⽅开发包14.2.1 如何获取第三⽅开发包14.2.2 如何引⽤第三⽅开发包14.3 将普通JAR转成插件格式14.3.1 导⼊向导14.3.2 BND⼯具14.4 创建数据库插件14.4.1 Maven POM配置⽂件14.4.2 properties配置⽂件14.4.3 Spring XML配置⽂件14.4.4 MAINFEST.MF配置⽂件14.5 创建连接池插件14.5.1 Maven POM配置⽂件14.5.2 properties配置⽂件14.5.3 Spring XML配置⽂件14.5.4 Java类设计14.7 创建Hibernate插件14.7.1 Maven POM配置⽂件14.7.2 properties配置⽂件14.7.3 Spring XML配置⽂件14.7.4 扩展点设计14.7.5 Java类设计14.7.6 MAINFEST.MF配置⽂件14.8 创建业务插件14.8.1 Spring XML配置⽂件14.8.2 Java类设计14.8.3 数据库SQL设计14.8.4 MAINFEST.MF配置⽂件14.8.5 添加BundleAnnotationSessionFactoryBean扩展14.9 启动OSGi Framework程序14.10 其他整合数据库的⽅式14.11 基于数据访问插件的RCP程序启动14.12 ⼩结15 Eclipse与Java的模块化设计15.1 基于编程语⾔的模块化15.1.1 Java语句的模块化设计15.1.2 Java⽅法的模块化设计15.1.3 Java类的模块化设计15.1.4 Java接⼝的模块化设计15.2 基于编程⽅法的模块化15.2.1 IoC编程的模块化设计15.2.2 AOP编程的模块化设计15.3 基于程序物理⽂件的模块化15.3.1 Package路径的模块化设计15.3.2 XML⽂件的模块化设计15.3.3 Properties⽂件的模块化设计15.3.4 JAR组件的模块化设计15.4 基于技术架构的模块化15.4.1 OSGi的模块化设计15.4.2 Eclipse插件的模块化设计15.4.3 JMS的模块化设计15.5 模块化的技术移植15.6 ⼩结思维导图防⽌博客图床图⽚失效,防⽌图⽚源站外链:)思维导图在线编辑链接:。
eclipsercp应用系统开发方法与实战

]Eclipse RCP应用系统开发方法与实战1-- RCP基本框架2008-12-30 13:32:46标签:[推送到技术圈]5.1.3 RCP基本框架一个基本的RCP应用程序已经搭建起来,尽管还非常稚嫩,却已经初具雏形。
探究一下RCP 的基本框架对于理解RCP大有好处。
从前面图5-6可以看出,Eclipse已经自动生成了Appl ication.java、ApplicationActionBarAdvisor.java、ApplicationWorkbenchAdvisor.j ava、ApplicationWorkbench- WindowAdvisor.java、Perspective.java这5个类文件。
有必要对这5个文件进行分析,以便更深刻地理解RCP的基本框架。
在分析之前,先来简单理解一下几个基本概念。
1.基本概念(1)Display应用程序一般只需要一个Display对象,该对象实际上是一个SWT对象,代表了底层图形系统的实现。
Display的主要任务是事件处理,它负责从操作系统的事件队列中读取事件,传递给RCP的事件监听器以便完成具体的任务。
需要注意的是,Display对象不代表应用程序窗口的任何可视控件,在应用程序主窗口打开之前,Display是不可获得的。
应用程序主窗口打开之后,才可以通过一个被称作Shell的对象获得。
Display对象的获得方法如下。
Display display = new Display();或者:Display display=Display.getCurrent();(2)Shell每一个窗口都有一个Shell对象。
Shell对象代表了与用户交互的窗口框架,并处理与窗口关联的诸如移动、改变大小等常见行为。
Shell对象的获得方法:Display display=Display.getCurrent();Shell shell = new Shell(display);或者:Shell shell=Display.getCurrent().getActiveShell();(3)WorkbenchWorkbench是工作台,通俗地说就是代表用户界面的UI元素。
EclipseRCP(Eclipse平台技术综述)

– 利用流行的Java编程语言编写各种工具。
8
周甫(zoofchow@)
Eclipse平台的主要功能
• Eclipse平台的主要角色是为工具提供商 提供一套使用和遵循的机制,使各种工 具能够无缝地集成。这些机制体现在明 确定义的API、接口、类和方法。
9
周甫(zoofchow@)
• 图中显示了Eclipse平台中的一些部件,其中加亮的部 件组成RCP(实际上还有许多其它的部件)。
5
周甫(zoofchow@)
Eclipse Platform
• Eclipse平台不仅是构建开发环境的基础,它还 是构建任意工具和应用程序的基础。RCP被用 于构建与软件开发无关的工具和应用程序.
• 从整体来讲,Eclipse平台包含了构建一个IDE所需的所 有功能。然而,Eclipse平台本身是由部件组成的,通 过使用这些部件的一个子集,可以构建任意的应用程 序。Eclipse富客户端平台(RCP)就是这样一个子集。
4
周甫(zoofchow@)
RCP与Platform
11
周甫(zoofchow@)
工作空间(Workspace)
• 各种插入到Eclipse平台中的工具都可以 对用户工作空间里的文件进行操作。工 作空间由一个或多个顶级项目组成,每 个项目映射到文件系统中用户指定的目 录。工作空间里不同的项目可以映射到 不同的文件系统目录或硬盘,尽管在缺 省情况下,所有项目都映射到工作空间 目录下子目录。
EclipseRCPTutorial(中文教程)

EclipseRCPTutorial(中文教程)(RCP教程)Tutorial(RCPEclipse RCP TutorialLars Vogel4.6((版本4.6)Version4.6Copyright?2007-2010Lars Vogel28.06.2010028.06.201翻译:廖永为(武汉纺织大学)2010-09-27Eclipse RCP这篇文章介绍了如何开发eclipse RCP应用程序(基于eclipse3.6平台eclipse Helios)。
目录1.Eclipse RCP (1)1.1概述 (1)1.2.RCP体系结构 (2)1.3.RCP的主要组成部分 (3)1.4.配置文件 (3)2.Eclipse安装 (4)2.1.Eclipse安装 (4)2.2.升级Java IDE (4)3.创建RCP应用程序 (5)3.1.创建RCP应用程序 (5)3.2.运行RCP应用程序 (9)4.启动过程和指导 (11)5.运行配置 (12)Overview””标签项 (12)5.1.“Overview5.2.检查运行时配置 (13)6.命令 (15)6.1.概述 (15)6.2.定义命令 (15)6.3.在菜单中使用命令 (18)7.系统托盘 (22)8.视图 (26)8.1.概述 (26)8.2.创建一个视图 (26)8.3.给透视图增加视图 (27)8.4.结果 (28)8.5.通过代码把视图添加到透视图 (28)8.6.编辑器/视图联合使用 (29)9.对话框 (30)9.1.概述 (30)9.2.使用预定义对话框 (30)9.3.选择 (31)9.4.用户定义的对话框 (33)10.区域帮助 (38)11.向导 (40)11.1.概述 (40)11.2.例子 (40)12.增加状态栏 (45)12.1.加上状态栏 (45)12.2.共享状态栏 (46)13.透视图 (50)13.1.给应用程序增加透视图 (50) 13.2.选择透视图 (52)14.产品和绑定 (54)14.1.应用程序和产品 (54)14.2.产品配置 (54)14.3.创建产品配置文件 (54)14.4.依赖项 (57)14.5.运行产品 (58)14.6.闪屏 (59)14.7.绑定你的产品 (60)14.8.定制启动图标和参数 (61)15.产品部署 (63)16.技能技巧 (66)16.1.保存用户布局 (66)16.2.查找不可用的依赖 (67)16.3.用你的RCP应用程序部署你自己的JRE (68)16.4.多用户设置 (68)17.进一步学习 (69)18.鸣谢 (69)19.问题讨论 (69)20.相关链接和文献 (70)20.1.源代码 (70)20.2.Eclipse资源 (70)20.3.vogella资源 (70)1.Eclipse RCP下面假设你已经了解如何使用eclipse IDE集成开发环境。
使用Eclipse-RCP进行桌面程序开发(一):快速起步

使用Eclipse RCP进行桌面程序开发(一):快速起步Posted on 2006-11-17 21:41 海边沫沫阅读(26857) 评论(42)编辑收藏所属分类: 拥抱Eclipse RCP 所谓RCP,就是Rich Client Platform的缩写,即富客户平台,是Eclipse进化的产物(自3.0版以后出现),是Eclipse组织向用户提供的强大的开放性开发平台,能够使用户方便地创建自己的基于Eclipse的应用程序,并且这些应用程序能够得到Eclipse的底层支持。
更重要的是,我们可以利用Java创建象Eclipse这么漂亮的桌面程序。
我相信,在未来的几年里,RCP一定会变得非常流行。
使用RCP,我们可以开发界面象Eclipse这样漂亮的桌面程序,比如医院管理系统啊、CAD软件等等。
遗憾的是,目前在国内基本上找不到关于RCP的中文资料,我们只能通过自己的探索来为我们的程序添加我们想要的功能。
下面让我们一步一步来建立一个Eclipse RCP程序,下面的内容可以说在Google 上一搜一大把,有些人会觉得乏味,但是没关系,这只是一个快速的起步。
选择“新建--项目”,选择“插件项目”:点下一步,输入项目名称,选择Eclipse版本,我这里选择的是3.2:点下一步,插件标识和插件名称可以更改,其他的内容都可以保持默认,一定要记得选中富客户机应用程序支持:点下一步,选中一个模板,这里选一个最简单的,到时候看源代码的时候便于理解:点下一步,改一下应用程序标题:点完成,我们可以在项目上面点右键,选择按Eclipse程序运行,就可以看到效果了:在这个程序中,窗口上显示的是一个透视图,透视图中含有一个编辑器区域,以后,我们可以逐步为这个程序添加菜单、工具条和为这个透视图添加视图、编辑器等等。
现在,这个程序只能在Eclipse环境下运行,而RCP的目标是创建可以独立运行的应用程序,我们的事情还没完呢。
Eclipse-RCP入门

Eclipse-RCP用于何处? Eclipse-RCP用于何处? IBM-Louts8 IBM-
Eclipse-RCP于我何用? Eclipse-RCP于我何用?
可以快速搭建桌面应用程序 使用Java语言编程 UI组件(widget)丰富 有可视化编程插件(SWTDesigner) 开源软件(版权、开发库)
1999年IBM开始开发Eclipse 2001年IBM发起创建Eclipse开源项目 同年,IBM发起并成立Eclipse协会 开源用户试图将Eclipse 作为通用富客户端使用,不 单单作为IDE。 2004年发布Eclipse3.0提出微小内核+插件的理念 2005年发布Eclipse3.1正式提出Eclipse-RCP的概念
Eclipse-RCP如何使用? Eclipse-RCP如何使用? Widget
Eclipse-RCP如何使用? Eclipse-RCP如何使用?
Example
Eclipse-RCP入门 Eclipse-RCP入门
快速搭建桌面应用程序
大纲
Eclipse-RCP它是什么? Eclipse-RCP怎么来的? Eclipse-RCP用于何处? Eclipse-RCP于我何用? Eclipse-RCP如何使用?
se-RCP它是什么? Eclipse-RCP它是什么?
Perspective应该包含哪些内容;
◦ 一组Viewer,一些Editor
如果通过配置产生一个Perspective; 如何在Perspective增加多个Viewer;
Eclipse-RCP如何使用? Eclipse-RCP如何使用? Layout
在composite中使用 setBounds FillLayout RowLayout GridLayout FormLayout
Eclipse RCP(中文)

Eclipse RCP的本教程介绍了如何开发Eclipse RCP应用程序。
它是基于Eclipse 3.6(Eclipse的太阳神)。
目录1。
Eclipse RCP的概况2。
Eclipse的插件架构2.1。
Eclipse IDE的越南难民。
Eclipse RCP的2.2。
Eclipse RCP的建筑2.3。
Eclipse RCP应用程序的一个主要组成部分2.4。
配置文件3。
安装3.1。
安装3.2。
更新一个Eclipse的Java IDE4。
创建您的第一个RCP应用程序4.1。
创建RCP应用程序4.2。
启动您的RCP应用程序5。
启动过程及顾问6。
运行配置6.1。
概述6.2。
检查运行时配置7。
命令7.1。
概述7.2。
定义命令7.3。
使用菜单中的命令8。
系统托盘9。
点击9.1。
概述9.2。
创建一个视图9.3。
添加你的观点的看法9.4。
结果9.5。
通过添加代码以透视9.6。
编辑/查看互动10。
现场协助和标签装饰11。
JFace的浏览器11.1。
概述11.2。
ComboViewer12。
添加一个状态行12.1。
设置状态行12.2。
共享状态线13。
透视13.1。
添加到应用程序的角度13.2。
选择的角度14。
产品及品牌14.1。
与产品应用14.2。
产品配置14.3。
创建您的产品配置14.4。
依赖性14.5。
启动您的产品14.6。
闪屏14.7。
品牌产品14.8。
自定义启动图标和发射参数15。
部署您的产品16。
技巧和诀窍16.1。
为用户节省布局16.2。
查找未使用的依赖16.3。
部署自己的JRE与您的RCP应用程序16.4。
多用户设置17。
问题与讨论18。
链接与文学18.1。
源代码18.2。
Eclipse资源18.3。
vogella资源1。
Eclipse RCP的概况Eclipse RCP的开发人员可以使用的Eclipse平台,建立灵活和可扩展的桌面应用程序。
Eclipse是建立在一个插件的体系结构。
插件是最小的部署和安装Eclipse的软件组件。
EclipseRCP教程

最近在客户端软件开发过程中,使用到了Eclipse RCP的若干技术,有种相见很晚的感觉。
尽管自己在日常开发中也使用了SWT中的若干技术,在运用了Theme之后看起来也让人眼前一亮,但是比起RCP 就相当于闭门造车了,例如下面两幅图片,就是SWT技术和RCP 技术开发出的不同界面,后者看起来是不是很炫呢,用流行的话来讲,就是使用户的体验更rich了,呵呵。
SWT界面:Eclipse RCP界面:好了,既然Eclipse RCP开发出的界面如此漂亮,那我们就可以借助Eclipse RCP平台中各类UI组件来改善应用程序上的UI缺陷,通过RCP平台上的各类丰富的GUI视图,来打造赏心悦目的应用程序。
但是在RCP开发的过程中,UI视图之间是相互依赖的,需要进行交互,目前国内教程对这一步骤往往语焉不详,下文就以实例的形式详细介绍Eclipse RCP View视图之间的交互机制,并总结了开发过程中的一些注意事项,避免大家绕了弯路,呵呵。
(一)下载最新的Eclipse RCP开发环境开发RCP的首要前提是下载RCP开发环境,从/上可以下载,下载之后是个zip格式文件,解压到任何目录下都可以直接运行,前提是装好jdk。
在Eclipse的官方网站上,针对不同的开发环境,已经为我们打好了不同的package,只要下载专门用来开发RCP的package即可。
当然如果你已经安装了Eclipse普通开发环境,想增加RCP相关的开发功能,需要通过Eclipse的update功能来添加就可以了,不过后者采用在线安装的方式,容易引起packge插件下载不全,导致开发时出现莫明其妙的错误,因此推荐第一种方案。
(二)新建并运行Eclipse RCP项目Eclipse安装并启动完毕之后,我们可以以插件的形式新增一个RCP模块,在该模块的基础上再添加不同的视图,这样就为下一步打下了良好的基础:在Eclipse的Package Explorer中单击右键,选择菜单第一项“new”,在弹出的子菜单中选择“other”,在对话框中如下图选择:在弹出对话框的“project name”栏中填入自己的项目名称,例如“hellorcp“,其余选项保持默认状态,点击下一步,在Plugin content对话框中“Rich Client Application”中,选择"YES",如下图所示:选择YES表示除了新建一个插件之外,还愿意将其转换成一个RCP应用,以便以后脱离Eclipse开发环境而独立部署,而插件是不能独立运行的,必须依附Eclipse而运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于 Eclipse RCP 的复合应用开发,第 1 章本书第一部分分析现有信息系统开发方法及其问题,介绍复合应用的概念、实例、需求分析、设计方法和实现技术。
第二部分详细介绍用 Eclipse 技术实现复合应用的基本方法。
第三部分介绍企业级复合应用平台的需求和 IBM 对应的产品 Lotus Expeditor 和 Lotus Notes 8,和在这些平台上进行企业级复合应用设计、开发、部署。
本书可供具有基本信息系统开发经验的人员了解复合应用系统的需求、设计、实现和运行技能,以及如何应用企业级复合应用平台设计开发复杂的企业级复合应用系统。
第 1 章首先介绍当前信息系统技术的现状,企业中信息系统不断增加产生的不能适应企业发展要求的问题,然后介绍复合系统的基本概念和应用实例。
在此我们推出了本书的前言和第 1、5 章供大家在线浏览。
更多推荐书籍请访问developerWorks 图书频道。
1.1 企业单一业务信息系统方法与问题目前多数企业开发信息系统的目的是使某(几)个业务处理流程自动化,可以称之为单一业务信息系统。
由于企业业务处理和数据的相关性,当企业中单一信息系统数量不断增多时,产生了数据不一致和用户使用不方便的问题。
相关信息系统数量的增加产生系统集成的要求。
目前主要有数据集成和应用集成两种方法。
这些方法可以暂时缓解信息系统数量增加与提高企业运行效率的矛盾,但并不能完全解决相关问题。
随着企业信息系统的不断发展,目前的系统开发和集成技术已经不能适应企业业务发展对信息系统的要求,需要新的信息技术突破。
1.1.1 面向流程的单一业务系统从范围和目标看,目前企业信息系统项目一般可以分成业务应用系统项目和信息系统集成项目。
业务应用系统项目以特定业务或部门的流程和业务功能为主线进行需求分析和开发。
如订单处理系统以订单流程中的订单生成、审批、付款、结单业务操作为单位进行设计和开发;公文处理系统以企业公文处理流程中的起草、编写、审批、传阅和存档处理为单位进行设计和开发。
大型信息系统项目可能跨越多个业务流程,含有多个子系统。
如 ERP 可以包含财务、生产管理、物流等多个子系统。
每个子系统处理相关业务流程。
这样开发的系统着眼于企业当前各个细化的流程和岗位操作,以及数据处理的自动化和计算机化。
这种方法适合业务流程和组织结构稳定、企业岗位分工较细、较明确的业务组织及其系统。
如针对银行储蓄所的柜员系统。
它为柜员提供各个业务操作界面,如图 1-1 所示,使所有业务信息得到计算机统一存储和自动化处理。
用户操作时所有信息来自后端核心业务应用系统和用户的输入。
柜员岗位的人员大部分工作时间只使用这个应用。
这种业务系统称为单一或独立业务系统。
图 1-1. 单一业务应用系统界面1.1.2 单一业务信息系统架构单一业务信息系统的主要功能是对输入的数据进行处理、存储和输出。
经过几十年的发展,信息系统经过了主机,小型机 / 工作站,客户机 / 服务器,Web 阶段,目前企业信息系统是多种结构混合的阶段。
应用界面一般由功能选择(菜单、导航栏)和主操作界面组成。
随着信息技术的发展规律,信息系统结构和用户操作界面经历了很大变化,开发方法也经过了非结构化、结构化、面向对象等多个阶段,但这类信息系统的基本思想和开发模式没有变化。
每个业务信息系统应用从结构上都可以分成界面处理、业务逻辑处理和数据处理三部分。
分别围绕特定业务操作相关的人机交互操作,数据处理和存储进行。
在信息系统技术的不同发展阶段,各部分代码所处的机器及其开发方法不同,但整个系统的逻辑结构基本一致。
图 1-2 中列出了从早期主机 / 小型机终端应用,PC 的客户机 / 服务器技术,到目前 Web 应用技术的基本架构,可以看到不同技术信息系统部署的物理结构和信息处理的逻辑结构之间的关系和区别。
图 1-2. 信息系统架构发展的各个阶段1.1.3 业务系统增加带来的集成需求传统的系统开发方法在企业中留下了各式各样的信息系统。
一个银行中可以有储蓄、贷款、收费、支付、外汇、统计、信用卡、电话银行、客户服务、会计财务、人事、绩效管理、审计、协作办公文档等十几甚至几十个信息系统。
随着企业信息系统数目不断增加,开发某个新的业务系统时经常需要其他信息系统中的数据和处理逻辑。
业务系统增多还带来许多使用和管理的不方便。
如用户需要记住很多账号和口令,经常需要手工将一个系统的数据转入另一个系统。
针对这些问题提出系统集成项目的需求,要求提高用户操作的效率,减少和消除企业不同信息系统中的数据不一致问题。
有些用户或开发商试图每隔若干年对企业信息系统进行全面更新,但这种方法在实践中常常由于涉及企业资金问题和投资回报而得不到认可。
现实中绝大多数企业的信息系统是随时间推移不断开发和投入使用的。
因此业务信息系统数量增加产生的集成需求,在不断发展的企业中将长期存在。
在现代经济中,不断发生的企业合并也使这种要求更加强烈。
1.1.4 应用集成与数据集成企业各个业务所涉及的信息相关性使企业的信息系统及其处理的数据具有相关性。
当企业有了一些系统后,后续系统开发项目中,都有使用某些现有应用中的数据和处理逻辑的要求。
针对这种要求,一般用如图 1-3 所示的数据集成和应用服务集成结构实现。
后续应用(应用 2)可以通过数据集成层或应用集成层访问以前开发应用(应用 1)提供的服务。
但用户所看到的界面仍然是针对新系统处理的某个业务操作的。
在现代扁平化的企业中,每个员工可能涉及多种业务流程。
这种集成方法使有些用户所面对的信息系统数量不断增加。
而新的后续应用需要考虑集成更多的数据和处理,使保持信息一致性的工作量越来越大。
图 1-3. 单一业务系统开发中的数据集成与应用集成在图 1-3 中假设“应用1 ”是一个现存的信息系统,“应用 2 ”是新开发的业务信息系统。
由于在开发“应用1 ”时几乎不会考虑以后开发的“应用2 ”的需求,所以在开发“应用2 ”时很难通过数据或应用集成直接重用“应用1 ”的程序。
实际项目中需要很多设计和开发工作才能实现对已有数据的抽取和对处理的包装,才能使新的应用可以利用已有应用的数据,同时保证不影响原有应用系统的运行。
随着项目中数据和应用集成要求不断增加,又出现了专门的集成技术和项目。
它试图提供企业信息系统的整体服务层 API 和数据框架,以达到减少每个项目中数据和应用集成工作的目的。
如图 1-4 所示,这种集成项目试图为企业各个信息系统前端提供一个中间层,来提供各种业务、流程和数据服务。
中间层可以是传统的消息总线或现在的企业服务总线(ESB)。
由于历史上的应用很难满足这种集成所要求的接口,因此在实践中更多地用于新应用的开发和大规模系统改造。
这种方式的集成需要抛弃一些传统应用。
图 1-4. 企业数据和应用服务集成1.1.5 特殊数据集成随着企业数据类型和数据量的增加,针对特定种类的数据集成得到广泛应用。
如针对 Web 网页内容集成的 RSS,它采用 XML 文件来描述一种框架,该框架将源自多个网站的 Web 内容组合在一起。
还可以进一步将多个频道组合放在一个 OPML 文件中。
特定的 RSS 阅读器或网站通过读取这些框架文件的内容,为用户提供访问这些内容的单一接口。
这样用户可以通过单一应用(阅读器)或网址访问多个来源的信息。
下面为一个频道 XML 的示例。
这个频道包含两个 Item 的内容简介和指向具体 Web 内容的连接。
内容的集成层次可以不断提高,例如,用 OPML 将若干频道的描述放在一起,可以通过工具从某个集成点深入访问各个数据源。
<?xml version="1.0"?> <rss version="2.0"><channel><title>Liftoff News</title><link>/</link><description>Liftoff to Space Exploration.</description><language>en-us</language><pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate><lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate><docs>/tech/rss</docs><item><title>Star City</title><link>/news/2003/news-starcity.asp</link><description>How do Americans get ready to work withRussians aboard the International Space Station?They take a crash course in culture, language and protocol at Russia's<a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>.</description><pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate></item><item><description>Sky watchers in Europe, Asia, and parts of Alaska andCanada will experience a<ahref="/headlines/y2003/30may_solareclipse. htm">partial eclipse of the Sun</a> on Saturday,May 31st.</description><pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate><guid>/2003/05/30.html#item572</guid></item></channel></rss>这种针对特定数据的集成方式可以暂时缓解企业应用和数据集成的压力。