基于 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而运行。
Eclipse RCP应用系统开发方法与实战
Eclipse RCP应用系统开发方法与实战1.1Eclipse简介目前Eclipse在系统开发领域中受到空前关注,国内外许多软件公司纷纷开始采用Eclipse作为开发平台。
那么,什么是Eclipse?Eclipse能给我们带来什么呢?1.1.1Eclipse的起源和发展Eclipse的前身是IBM的Visual Age。
由于意识到Visual Age存在难以扩展、底层技术较为脆弱、很难与WebSphere Studio软件集成等诸多问题,进一步发展甚为困难,同时也面临包括Symantec公司的Visual Café、Borland公司的JBuilder等开发工具的竞争压力,IBM决定创建一个更开放的,并且可以为IBM其他开发工具提供支持的一体化开发平台。
1998年11月,IBM 专门成立了一个项目开发小组,开始开发该平台,2000年新一代开发平台诞生,这就是大家所熟悉的Eclipse。
2000年11月,IBM做出了一个重大决定,将Eclipse采用开放源码的授权和运作模式发布,以增强业界对Eclipse的关注度并加快其推广应用速度。
随后,IBM于2001年12月向外界宣布,捐赠价值4千万美元的Eclipse源码给开源社区;成立由成员公司组成的Eclipse 协会(Eclipse Consortium),以便支持并促进Eclipse开源项目。
事实证明,IBM的决策非常英明。
Eclipse受到广泛关注,蜂拥而至的用户使得其下载服务器一度阻塞,给业界带来了久违的震撼!IBM趁热打铁,在EclipseCon2004上宣布成立一个独立的、非盈利性的基金会,由该基金会负责管理和指导Eclipse开发,目前其成员多达近百家知名公司,其中包括Borland、Rational Software、Red Hat、Sybase、Google和Oracle等业界巨头。
Eclipse开发状态非常活跃,目前成熟稳定的版本是3.2,正在开发的版本是3.3,已经成为业界主要的非微软软件开发平台。
Eclipse+RCP应用系统开发
经济管理学院 信息管理教研室 陈冈
Eclipse RCP应用系统开发
领先的、高水 准的开发技术, 尽在Eclipse RCP!
Eclipse RCP应用系统开发
有一种声音如是说!
北大青鸟 APTECH J2EE 高级讲师邬继成: 结合 2006 年 11 月底去西安招聘的经历, 我发现许多学校并没有开设 Java、.Net 的课 程,而是以 C/C++ 居多。我不是说 C/C++ 不 重要,但也不能忽视一个事实:Java 和 .Net 相关的职位,比 C/C++ 的职位要多得多。是 不是人才,市场说了算。例如我们公司,主要 是 J2EE 技术为主,但这次招的人中,基本上 没有人会用 Java。不可否认,很多公司期望毕 业生“一来就能干活”,更多不会 JAVA 的毕 业生被拒之门外。
Eclipse RCP应用系统开发
1.2 Eclipse RCP
1.2.1 Eclipse RCP平台 RCP是基于Eclipse项目的一个开发富客户端应用 的框架,目的在于为开发人员提供一种功能强大的、 快速的、可扩展的应用平台。 1.2.2 什么是RCP RCP是Rich Client Platform的缩写。Rich Client 大概在20世纪90年代初期开始使用,其经典的开发 工具有Visual Basic和Delphi。类似于VB、Delphi这 样的可视化开发环境使得开发富客户端程序变得简单 而有趣味,相信这是很多人的体会。但是,狼来了!
(Visual Basic .Net)
基本描述:一种面向对象的语言, 在微软.Net框架中使用。 学习理由:最具争议的是 目前是否为最流行的且是几 种必须掌握的语言之一。Huckaby说: “目前是被广泛优先采用语 言之一的。” 相关工作指数:6506
eclipse_rcp教程
简单RCP框架源码分析关键字: RCP框架在我们新建一个RCP应用程序框架时,eclipse会为我们自动生成若干个类:网上也有很多关于“Hello RCP”的分析说明,但都聚集在类功能分析,没有源代码的分析。
下面着重分析一下其中的某些不易理解的类以及其中涉及到的其它类的源代码。
1.Application类:是RCP应用程序的入口点,你可以把它想象成程序的控制器,类似于Model2架构中的控制器。
它很简短,而且在不同的项目中变化不大;它所做的就是创建一个工作台Workbench,同时将其于一个WorkbenchAdvisor联系起来。
Workbench是RCP框架的一部分,一个RCP应用对应一个Workbench,但一个Workbench可以有多个Workbench窗口。
2.ApplicationWorkbenchAdvisor类:继承了WorkbenchAdvisor类,提供了两个方法,其中createWorkbenchWindowAdvisor方法将创建窗口的工作交给了ApplicationWorkbenchWindowAdvisor类。
3.WorkbenchAdvisor类:该类不是一个接口,而是一个抽象类,它不包含任何的功能实现,因为将来很有可能在其中添加其它方法。
Eclipse的设计者们希望每个RCP应用都实现它,由平台来调用。
Workbench和Workbench Window生命周期中的有一些重要事件,这些事件在WorkbenchAdvisor中都有相应的方法,Platform调用这些方法从而执行你的定制代码。
表1. WorkbenchAdvisor提供的事件处理方法表2. WorkbenchAdvisor提供的事件循环钩子表3. WorkbenchAdvisor提供的信息获取方法,你可以在子类中覆盖上面的WorkbenchAdvisor事件对大多数应用来说是足够了,但是在某些情况,RCP又提供了两个方法来控制你的应用窗口和控件如何被创建。
eclipse Rcp
将Eclipse插件转换为RCP应用程序(上)有不少朋友问到如何把一个已有的Eclipse插件转换为RCP应用程序,其实这个过程并不复杂,因为RCP 应用也是基于插件的结构,可以说RCP 就是精简后的Eclipse平台,只是我们要对这个平台做一些定制工作。
将任何一个传统的Eclipse插件项目转换到RCP可以分为两个步骤,这篇先介绍第一个步骤:建立应用程序。
在GEF入门系列(三、应用实例)里我曾做过一个精简的GEF应用程序(下载),这一篇里我就一步一步的把这个例子转换为RCP应用程序(点击下载转换后的项目打包)。
应用程序(Application)是通过扩展org.eclipse.core.runtime.applications扩展点建立的,其作用是让 Eclipse知道你的RCP需要什么样的功能,比如界面上有哪些视图,菜单和工具条,应用程序窗口的初始大小等等。
在plugin.xml里添加应用程序的定义很简单,像下面这样指定一个id和一个类名就可以了。
<extensionid="myapplication"point="org.eclipse.core.runtime.applications"><application><run class="com.example.application.MyApplication"/></application></extension>接下来我们的主要任务是实现这个类,MyApplication必须实现org.eclipse.core.runtime.IPlatformRunnable接口,这个接口只定义了一个run()方法,对于Eclipse Platform来说这个方法就相当于传统java程序的main()方法,是入口方法。
所有RCP应用程序里这个方法的实现几乎是完全一样的,即启动 Workbench,并把一个WorkbenchAdvisor实例作为参数传给它,如下所示:public class MyApplication implements IPlatformRunnable {public Object run(Object args) throws Exception {Display display = PlatformUI.createDisplay();try {int returnCode = PlatformUI.createAndRunWorkbench(display, new MyWorkbenchAdviso r());if (returnCode == PlatformUI.RETURN_RESTART) {return IPlatformRunnable.EXIT_RESTART;}return IPlatformRunnable.EXIT_OK;} finally {display.dispose();}}}所以应用程序的定制实际上是通过这个WorkbenchAdvisor实例实现的。
RCP中文入门教程
RCP中文入门教程赵阳 2005.12.26简单地讲, 一个RCP应用就是一个可独立于Eclispe IDE开发环境运行的Eclipse 插件.下面我们以一个简单的例子开始我们的RCP旅程.一、新建插件工程因为RCP应用本身就是一个Eclispe插件, 所以从新建一个Eclispe插件工程开始.1)启动Eclispe, 从Eclispe的 File菜单创建一个插件工程:File à New à Project à Plug-in Development à Plug-in Project点击Next, 进入New Plug-in Project插件向导:在Project Name中输入工程名称:simplebrowser (最好小写)勾选”Create an OSGi bundle mainfest”使用OSGi打包清单.OSGi是Eclipse 3.0 以上版本用于动态装载插件的标准, 在Eclipse 2.1中是不需要的.最好选中它.点击Next按钮.修改Plug-in ID 及其他插件属性值. 这里采用默认值, 在”Rich Client Application”一栏中, “Would you like to create a rich client application ?”一项选择”Yes”设置创建的插件为RCP应用. 点击Next.在模板中选择最基本的Hello Rcp模板, 点击“Finish”按钮, Eclispe将会创建一个简单的RCP应用并且自动打开插件清单编辑器的主页面. 在这里你可以方便的配置你的RCP应用, 免去手工编写和修改配置文件的麻烦.的RCP应用运行时的样子.2)工程创建完成后, Eclipse将自动生成以下内容:l Application类l ApplicationActionBarAdvisor类l ApplicationWorkbenchAdvisor类l ApplicationWorkbenchWindowAdvisor类l SimplebrowserPlugin 类l Perspective类l plugin.xml 文件l build.properties 文件a)Application类Application类是RCP应用的主程序, 相当于整个RCP应用的控制器.Application类的职责是创建一个工作台(Workbeanch)然后添加一个工作台顾问类(WorkbeanchAdvisior). 它是启动RCP应用运行的第一个程序.这个类实现了 Eclipse 的 IPlatformRunnable 接口. 对于绝大多数的RCP应用, 这个类的代码都是不用修改的.工作台(Workbeanch)是RCP框架的一部分, 一个RCP应用只能有一个工作台, 但是可以有多个工作台窗口(WorkbeanchAdvisior). 工作台的结构如下:b)Advisor类ApplicationActionBarAdvisor, ApplicationWorkbenchAdvisor和ApplicationWorkbenchWindowAdvisor这三个类是 RCP应用的三个核心Advisor类. 它们都继承于相应的抽象Advisor父类. 是RCP应用生命周期中非常重要的三个类.ApplicationWorkbenchAdvisor在主程序Application类的run()方法中引用了 ApplicationWorkbenchAdvisor 类.这个 Workbench Advisor 类对 Workbench 的外观进行了配置. ApplicationWorkbenchAdvisor 继承了WorkbenchWindowAdvisor抽象类, 插件工程向导自动填充了createWorkbenchWindowAdvisor和getInitialWindowPerspectiveId方法体, 我们同样可以覆写( override )父类的其他方法. 这个类的方法会在工作台( Workbench )的生命周期的各个关键时刻由RCP平台调用. 是最重要的一个Advisor类.下面是对Workbench Advisor 类中几个重要的方法的简要说明:方法说明initialize 在启动工作台 ( Workbench ) 前进行初始化.这个方法有只有一个参数: IWorkbenchConfigurerpreStartup 在初始化完成之后, 打开第一个窗口之前调用, 在这里可以对打开编辑器和视图的初始化参数进行设置.postStartup 在所有窗口打开或恢复以后开始事件循环之前调用. 在这里可以进行一些类似自动批处理的工作.preShutdown 在事件循环结束以后, 关闭任何一个窗口之前调用postShutdown 在所有窗口关闭之后, 关闭工作台 ( Workbench ) 之前调用, 可以用来保存当前应用的状态, 清理 initialize方法创建的内容现在我们不需要对这个类进行任何修改. ApplicationWorkbenchWindowAdvisor ApplicationWorkbenchWindowAdvisor 继承了WorkbenchWindowAdvisor类, 这个类主要负责对 Worbench Window 进行控制, 例如状态栏, 工具条, 标题, 窗口尺寸等. 这个类中的方法在 Workbench Window 的生命周期中起着重要作用.方法说明preWindowOpen 在 WorkBench Window 的构造函数中调用, 用于设置窗口的一些特征, 如是否显示状态栏. 但是这个时候还没有创建任何窗体控件, 所以在这里还不能引用它们. postWindowRestore 在窗口恢复到以前保存的状态之后, 打开窗口之前调用..这个方法在新建窗口, Workbench第一次运行, 以及没有保存窗口状态的情况下都不会调用. 在这里可以调用IWorkbench.close()方法关闭Workbench 和所有打开的Workbench Window.postWindowCreate 在窗口创建以后, 打开以前调用. 或者是窗口恢复到以前保存的状态后, 在执行postWindowRestore方法之后调用. openIntro Intro就是你第一次打开Eclispe的时候看到的内容, 这个方法的默认的实现是:如果IWorkbenchPreferences . SHOW_INTRO属性被设置为True, 那么在第一次打开窗口的时候将会调用这个方法, 在Intro显示过之后该属性将会设置为False. 后来, 只有在WorkbenchConfigurer.getSaveAndRestore()方法返回True,并且关闭窗口时intro仍然显示的时候才会调用这个方法. postWindowOpen 在 Workbench 窗口打开之后调用, 可以在这里开/关(Tweak)窗体控件, 例如设置Title, 改变窗口尺寸等等. preWindowShellClose 这个方法在Workbench窗口关闭之前 ( 严格的讲是它的Shell被关闭之前 ) 由关联到这个窗口的ShellListener调用.如果窗口由于其他什么原因已经关闭了, 则不会调用这个方法.如果这个方法返回false, 那么关闭Shell的请求将会被忽略, 所以, 这个是唯一的一个可以阻止用户关闭窗口行为的地方, 也是提示用户是否保存当前工作和设置的最佳场所. postWindowClose 在Workbench窗口关闭之后调用, 这个时候窗口中的控件都已经被清除了. 在这里可以清除由. postWindowOpen方法创建的内容.createWindowContents 这个方法用来创建一个窗口的内容,默认的实现添加了一个菜单栏, 一个工具条, 一个状态栏,一个透视图栏, 和一个快速视图栏. 这些控件的可见性可以使用 IWorkbenchWindowConfigurer中的setShow*方法进行设置.可以通过在子类中覆写( override ) 这个方法来实现自定义的窗口内容和布局, 但是必须要调用IWorkbenchWindowConfigurer.createPageComposite. .方法.这个方法只有一个参数: Shell createEmptyWindowContents 创建并且返回在窗口没有页面显示的时候要显示的控件.如果返回的是Null, 则会使用默认的窗口背景. 覆写这个方法可以实现自定义的窗口背景. 默认的实现是返回Null .这个方法只有一个参数: Composite插件工程向导自动帮我们填充了createActionBarAdvisor和preWindowOpen方法体, 在 preWindowOpen 方法中我们看到向导隐藏了窗口的工具条和状态栏, 并且设置了窗口的大小和标题栏上显示的文字:public void preWindowOpen() {IWorkbenchWindowConfigurer configurer = getWindowConfigurer();configurer.setInitialSize(new Point(400, 300));configurer.setShowCoolBar(false);configurer.setShowStatusLine(false);// 设置窗口标题栏文字configurer.setTitle("Hello RCP");}在这个类的方法中常常需要使用到Configuer接口对窗口进行配置, 在方法体中直接调用getWindowConfigurer()方法就可以直接获得IWorkbenchWindowConfigurer 对象了, 就像向导在preWindowOpen()中所做的一样.ApplicationActionBarAdvisorActionBarAdvisor 类继承了ActionBarAdvisor类. 这个类负责为Workbench Window 的Action Bar ( 菜单, 工具条和状态栏等 ) 创建Action. 也可以通过插件清单 plugin.xml 文件动态地提供action.这个类中主要有下面几个方法:方法说明参数IWorkbenchWindow makeActions 创建在 fill 方法中使用的 action , 这个方法用来通过 key binding 服务注册 action并且添加到关闭窗口时要清除的 action列表中.fillMenuBar 填充窗口的主菜单IMenuManager fillCoolBar 填充窗口的主工具栏ICoolBarManager fillStatusLine 填充窗口的主状态栏IStatusLineManagerString isApplicationMenu 这个方法在使用OLE对象做编辑的时候使用,根据传入的菜单ID返回指定的菜单是应用的菜单还是OLE对象的菜单.在菜单合并期间, 应当保留应用的菜单,至于其他的菜单最好可能从 Window 中删除掉.现在我们不需要对这个类进行任何修改.以上列出来的三个 Advisor 类中的方法基本上都是不能够在客户端直接调用的, 而是由 RCP 框架掉用的. 关于这一点在相应的 API 文档中有更为详细的说明.插件工程向导自动为我们实现了Advisor 子类必须实现的各个方法, 根据实际需要我们可以覆写 ( override ) 以上各表中方法来实现我们的意图. 关于这些方法的详细资料请查询相应父类的API文档.c)SimplebrowserPlugin 类Plugin类继承了AbstractUIPlugin抽象类并且是一个单例 ( singleton ) 类.这个类提供了对插件 Preferences , dialog store 和 image registry 的支持, 前面两个对象提供了保存插件和对话框设置的有效途径, 后者为整个插件提供了可能在插件中频繁使用的 Image 资源 . 由此可以看出, 这个类主要用来存储插件的全局信息. 由于是单例类, 也是放置插件中其他类要用到的静态工具方法的好地方.现在我们不需要对这个类进行任何修改.d)Perspective 类这是RCP应用的默认的透视图. 实现了IPerspectiveFactory接口, 并且通过org.eclipse.ui.perspectives扩展点的className属性指定.透视图是一套可见的视图, 编辑器, 和菜单等. 在RCP应用中, 必须定义至少一个透视图并且设置为默认的透视图.所有启动RCP应用后希望用户看到的视图或编辑器都必须在这个类的createInitialLayout方法中设置.e)Plugin.xml 文件Plugin.xml文件是 Eclipse 的扩展点清单, 这个文件用来定义和使用 Eclipse 扩展点. 扩展点是关联 Eclipse 插件的基本方式. 例如, 这里的 Application 类就是通过org.eclipse.core.runtime.application 扩展点定义的.Eclipse 提供了插件清单编辑器, 使用这个编辑器可以方便的修改 plugin.xml 文件的内容, 使用这个编辑器可以减少手工编辑这个 xml 文件的工作和错误. 在使用插件向导创建完工程后你看到的就是这个编辑器.f)build.properties 文件在导出插件的时候这个文件指定了要build的内容和相关资源的路径. 如果你向应用新增了一些资源, 如图标文件, 要记得把他们添加到 build.properties 文件的bin.include 一节中.在插件清单编辑器的 Build Configuration 页面可以很方便的在导出应用前对这个文件进行配置.二、添加视图基本上Hello RCP模板创建的是一个空的RCP应用, 要实现我们自己的应用界面就需要创建我们自己的视图 (View) 并且添加到当前的透视图中. 在这里我们使用了设计器.1)创建视图在这里我们用设计器来创建一个RCP视图:在Eclispe中打开RCP插件工程, 执行以下操作:File à New à Other à Designer à RCP à ViewPart à Next在这里, Name是指视图类的类名, 视图名称名称是显示在视图标题中的文字, 完成输入后点击 Finish 按钮. Eclipse将会自动打开BrowserView视图类的源代码视图,点击Design选项卡进入设计器视图.把 SWT Controls 中的 Browser 控件拖到右边的RCP视图中, 添加Browser控件.在Property Edtor 中选中container在下面的 properites 页中选择 Layout 为GridLayout(AWT), 让浏览器控件自动充满整个视图.2)添加视图到当前透视图中没有添加到透视图中的视图是无法显示的.打开Perspective类的源代码, 这个类是我们默认的透视图. 在它的createInitialLayout 方法中添加以下代码:layout.addView( BrowserView.ID,IPageLayout.TOP,IPageLayout.RATIO_MAX,IPageLayout.ID_EDITOR_AREA );把视图添加到当前透视图中.3)添加视图的扩展点.在刚才添加的代码中, layout 的AddView 方法是通过视图的ID ( BrowserView.ID ) 来找到我们的视图的. 这个ID值存储在于插件清单的Extension中, Eclipse 正是通过这些扩展点来管理插件的.在包资源管理器 ( Package Explorer ) 的树形视图中, 双击 plugin.xml 文件打开插件清单编辑器, 点击 Extensions 选项卡打开扩展点清单管理页面:点击 Add…按钮打开扩展点选择视图,在扩展点清单中选中 org.eclipse.ui.views 扩展点, 点击Finish按钮, 回到插件清单编辑器, org.eclipse.ui.views 扩展点已经添加到清单中.选中刚才添加的 org.eclipse.ui.views 单击鼠标右键, new à category 新建一个视图分类, 视图分类是用来分类和组织视图的, 它有三个属性: id ,name 和parentCategory, 前两个属性用来唯一标识视图分类, 后一个属性用来组织分类的树型结构. 建议至少为你的视图添加一个分类 ( Category ) . 这里采用系统默认值.以用样的方式, 选中刚才添加的 org.eclipse.ui.views 单击鼠标右键, new à view 添加视图:选中刚才添加的视图, 在右边编辑视图扩展点的属性:在Id一栏填写视图类中的ID值 : simplebrowser.views.BrowserView .( 注:习惯上, 这个ID值和类的完整包路径是相同的. )在Name一栏填写要显示在视图标题栏上的名称 : Simple Browser在Class 一栏填写视图类(含包路径的完整类名) : simplebrowser.views.BrowserView 在icon 一栏可以指定显示在视图标题栏上的图标 (16X16象素) .4)运行RCP应用在OverView页面点击“Lanch an Eclipse application”链接, 你就会看到我们的视图已经显示出来了.5)手工添加视图如果你没有设计器, 也可以通过直接继承 org.eclipse.ui.part.ViewPart 抽象类来创建视图类, 并且使用和上面相同的方法把视图添加到当前透视图中.6)使用添加扩展点向导添加视图用上面的方式添加视图是因为设计器生成的代码比较简洁. 其实Eclipse提供了很好的模板和向导来创建和添加视图.双击Plugin.xml文件打开插件清单编辑器, 点击 Extensions 选项卡, 进入扩展点清单页面:点击Add…按钮添加扩展点:选择 org.eclispe.ui.views 扩展点和Sample View 模板, 点击Next按钮:钩选”Add the view to the resource perspective ”点击Finish按钮, Eclipse将自动创建视图类并且添加相应的扩展点到插件清单中.按照前面的方法在 Perspective 类的createInitialLayout方法中添加视图到透视图中, 启动RCP就会看到新建的视图了.7)一点润饰在插件OverView页面点击“Lanch an Eclipse application”会发现透视图下方有一个空的视图区域, 这是EditorArea, 在 Perspective 类的createInitialLayout方法中添加layout.setEditorAreaVisible(false); 把它隐藏掉.现在 Perspective 类的代码变成了这个样子:public class Perspective implements IPerspectiveFactory {public void createInitialLayout(IPageLayout layout) {// 关掉Editor Area ,// 如果没有用到Editor的话, 请执行这一句// 否则在透视图中会有一片空白.layout.setEditorAreaVisible(false);// 添加Browser视图layout.addView( BrowserView.ID,IPageLayout.TOP,IPageLayout.RATIO_MAX,IPageLayout.ID_EDITOR_AREA );// 添加SampleView视图/*layout.addView( "simplebrowser.views.SampleView",IPageLayout.TOP,IPageLayout.RATIO_MAX,IPageLayout.ID_EDITOR_AREA );*/}}现在RCP打开的窗口的标题还是”Hello RCP” ,在ApplicationWorkbenchWindowAdvisor 类的preWindowOpen() 方法中修改它, 并且覆写父类的postWindowCreate() 方法在应用启动后让窗口自动最大化:代码如下:/*** 这个方法将在Workbench Window的构造函数中调用,* 可用来在创建窗口前设置窗口的选项:* 例如: 是否含有菜单栏, 状态栏等.*/public void preWindowOpen() {IWorkbenchWindowConfigurer configurer = getWindowConfigurer();configurer.setInitialSize(new Point(400, 300));configurer.setShowCoolBar(false);configurer.setShowStatusLine(false);// 设置窗口标题栏文字configurer.setTitle("Simple Browser");}/*** 这个方法在窗口恢复到以前保存的状态(或者新建一个窗口)之后,* 打开窗口之前(调用).*/public void postWindowCreate() {super.postWindowCreate();//设置打开时最大化窗口getWindowConfigurer().getWindow().getShell().setMaximized(true);}现在运行RCP应用就顺眼多了.J三、发布应用刚才建立的RCP应用现在还不能独立运行, 要发布一个独立的RCP应用, 你应当:1)新建product 文件,File à New à Other à Product Configuration à Next à输入文件名à FinishEclispe 将会创建一个新的product configuration 文件并且自动打开productconfiguration 编辑器.在编辑器中进入OverView 页面:在ProductID下拉列表中选择我们创建的RCP插件的ID;在Appliction 下拉列表中选择我们创建的RCP应用的Application主程序在Product Name一栏中输入Product 的名称.在编辑器中进入Configuration 页面:点击Add…按钮, 在弹出的列表中选中我们刚才创建的RCP插件: mybrowser, 点击Ok 把我们的RCP插件添加到Product的插件列表中.点击Add Required Plug-ins按钮把RCP应用所依赖的插件全部添加进来.在编辑器中进入Branding 页面:在Lancher Name 一栏中输入可执行程序的名称, 在Windows操作系统中这个名称就是你的可执行的exe文件的名称.在Window Images一栏中选择RCP应用的图标. 16x16的图标是显示在应用的标题栏上面的图标, 32x32的图标是在切换应用程序的时候显示的图标. 如果你没有指定的话将自动放大16x16的图标来做显示. 建议两个都指定.2)导出RCP应用在编辑器中进入 OverView 页面:点击“Eclipse Product export wizard”链接打开Eclispe Product 导出向导.在 Root directory 中指定RCP应用的根目录,在 Export Destination 的 Directory 中指定要导出的位置.点击 finish 完成导出.转到你刚才指定的导出位置, 你会发现刚才指定的RCP应用的根目录. 进入这个目录你就能看到在前面指定的可执行文件. 双击那个可执行的文件就”应该”可以启动这个RCP应用了…但是在启动的时候会发现产生了”Class not find”的异常, 提示找不到PlugIn类.这是由于在导出的时候生成的Jar包中没有包含相应的class文件. 关于这个问题网上有不少关于build.properties文件的讨论, 但是我发现下面的方法也许更加简单有效 :3)导出JAR包回到Eclispe, 进行以下操作:File à Export…à JAR file à Next打开JAR文件导出向导:在JAR file 一栏输入要导出Jar文件的位置和文件名, 选中要导出的RCP工程, 打开Src目录, 只选中plugin.xml 文件, 清除该目录下其他文件前面的选中状态, 因为这些文件在RCP应用运行时是不需要的. 所以不用导出. 点击Next. 在下一个屏幕中保留默认设置, 再点击Next, 进入JAR打包向导的最后一个界面.RCP 中文入门教程Page 21 of 21选中"Use existing manifest from workspace" 项, 点击 Browse.. 按钮, 在弹出的对话框中, 选中RCP工程中 META-INF 目录下的 MANIFEST.MF 文件. 点击 OK 按钮回到向导界面. 点击 Finish 按钮, Eclipse 将会编译工程并打包到刚才指定的Jar文件中.转到导出的RCP应用的根目录, 打开 plugins 目录, 你会发现一个包含RCP应用名称和版本好的JAR包, 如mybrowser_1.0.0.jar . 把刚才导出的JAR文件重名为这个文件名. 复制到 plugins 目录中并且覆盖这个JAR包.回到RCP应用的根目录, 双击那个可执行文件, 就会顺利的启动RCP应用了.四、参考资料Rich Client Tutorial Part 1 (/articles/Article-RCP-1/tutorial1.html )Rich Client Tutorial Part 2 (/articles/Article-RCP-2/tutorial2.html )Rich Client Tutorial Part 3 (/articles/Article-RCP-3/tutorial3.html ) PDF 文件使用 "pdfFactory" 试用版本创建。
Eclipse平台架构技术分析及基于RCP的应用研究
Eclipse平台架构技术分析及基于RCP的应用研究摘要由于eclipse提供了一个开放灵活的框架,eclipse技术现在广为流行,基于eclipse构架的应用越来越多。
本文先对eclipse的结构进行了剖析,分析了eclipse使用的技术及实现原理。
最后给出了一个基于eclipse rcp应用的工程实例。
关键词eclipse;插件;嵌入式;rcp●0引言eclipse是一个具有先进软件设计和实现技术的开发框架。
应用软件在eclipse中被称为“插件〞。
它们在架构中互开工作,完美的集成。
随着eclipse3.0加强了对rcp(rich client program)开发的支持,eclipse已成为广为业界所支持的开放性标准软件开发环境,业界已成事实的工业标准。
eclipse的特点:跨平台;提供了gui和非gui;语言中立;基于插件的开放的、可扩展的平台。
●1. eclipse技术剖析1.1eclipse体系结构概述eclipse的结构体系如下列图所示:图1 eclipse体系结构图eclipse类似于“软总线〞的体系结构,eclipse的核心局部(platform runtime)类似于一条“即插即用〞的“总线〞,它提供了许多的“插槽〞(扩展点:extension point)。
其余的局部都可看成类似于外部设备的“插件〞〔plug-in〕,可随时加载和卸载。
更为灵活的是每个插件又提供了“插槽〞可继续安装其他的插件。
eclipse分为eclipse平台、jdt、pde、其他的插件几个局部。
其中eclipse平台是整个系统的根底,eclipse的核心。
jdt是提供了用于编辑、查看、编译、调试和运行java代码的专门插件。
pde构建于eclipse平台和jdt之上,提供了专门开发插件的工具。
eclipse平台是在其上创立插件扩展的核心框架和效劳的名称,是一个通用的根底架构。
平台由平台运行时、工作空间、工作台、帮助、小组、调试构成。
基于Eclipse RCP的应用开发
个企业级 的客户端应用 ,那 么他们 需要 具有优 秀的开发技术和丰 富的开 发经验 来设计 并实现所有这些特性 .但 是并不 是 所有 的开发 团队都 具有 这样 的能力 。
幸 运 的是 E ls C 提 供 了一 个 满 足 所 ci e R P p 图1E s c 结构 ;cp e R P的 J i
目的。 等 国际企业。这些 国际企业 或多或少都
个子集 ( 如图 ) ,从E l s30 ci e . 版本开 始 . p
E ls 项 目组对代码进 行了重构 。 IE ci e p 将 D 与 Wo bn h( r ec 工作 台)彻底分离 实现 k 了一个G nr r ec . eei Wok nh 使得R P c b C 应用 中不再 有IE D 的影子。 而其它的可选部件
E l s C ci e R P的组成部分 p
E ls C 是 E ls lfr ci e R P ci e Pa om的一 p p t
以 软件PP 插 达到 n ( 件的即 用) B la C 、 M l lNk、 y s 插即 的 Oa 、 A 旧 、n 、 O_ S a r n t e a be
时 环 境 ,扩 展 点 的思 想 更 是使 得 用 户 可
以方便 地搭建各种类型 、用途 的应 用程 序 以及该应用程序特有 的扩展 点。可 以
说 ci e R P 是 设 计 用 来 被 扩 展 的 。 E lp C 就 s
5 强大的开发工具支持和完善的本 .
c l i p s e
P 0 r mme - rg a r 65
维普资讯
特 别策 划
W or kPI ce a
,
M aest 0 r
eclipse rcp 编程 -回复
eclipse rcp 编程-回复Eclipse RCP (Rich Client Platform) 是一种用于构建桌面应用程序的框架,使开发人员能够基于Eclipse平台开发功能强大且个性化的应用程序。
本文将以以中括号内的内容为主题,一步一步回答关于Eclipse RCP 编程的问题。
什么是Eclipse RCP?Eclipse RCP是Eclipse基于插件化架构的一个桌面应用开发框架。
开发人员可以使用Eclipse RCP来构建具有丰富用户界面的功能强大的Java应用程序。
Eclipse RCP提供了一个可扩展的架构,使开发人员能够利用Eclipse平台的核心功能,并通过插件机制来添加自定义功能。
为什么选择Eclipse RCP?选择Eclipse RCP开发桌面应用程序有以下几个优势:1. 强大的插件机制:Eclipse RCP框架采用插件化架构,使开发人员可以将应用程序分解为独立的模块,通过插件的方式来实现功能的扩展和定制。
这种模块化的设计使得应用程序更易于维护和扩展。
2. 成熟的生态系统:Eclipse平台作为一个开源社区,拥有庞大的开发者社区和丰富的插件库。
使用Eclipse RCP开发应用程序可以充分利用这些已经存在的插件和工具,提高开发效率。
3. 丰富的用户界面:Eclipse RCP提供了丰富的GUI组件库,可以轻松构建出现代化的用户界面。
开发人员可以利用Eclipse的界面设计器创建界面,也可以使用自定义的SWT和JFace组件。
4. 跨平台性:Eclipse RCP框架是基于Java的,因此可以在多个操作系统上运行。
开发人员只需编写一次代码,即可在Windows、MacOS和Linux等系统上部署应用程序。
如何开始使用Eclipse RCP?以下是使用Eclipse RCP开始开发桌面应用程序的步骤:1. 下载并安装Eclipse IDE:从官方网站( IDE。
确保选择与您的操作系统和Java版本兼容的版本。
eclipse插件开发培训-RCP
OSGI
• 从Eclipse3.0起其插件体系架构就重构为基 于OSGI规范来实现的; • OSGI是Eclipse-RCP的基础;
OSGi R4规范
• OSGi规范的核心组件是OSGi框架。这个框架为应用程序(被叫做组 件(bundle))提供了一个标准环境。整个框架可以划分为一些层次: – L0: 运行环境 – L1: 模块-定义类的装载策略 – L2: 生命周期管理 安装、开启、关闭、更新和卸载
• RCP-APS(高级项目管理)
著名的Eclipse-RCP应用
• IBM-Louts8
著名的Eclipse-RCP应用
• NASA火星探测器操作系统
谁在做Eclipse-RCP方面的应用?
• • • • • IBM现有5大产品线 BEA所有产品线 普元EOS开发平台 北京芒果软件工作室-思维图软件 国内大量大型软件公司都纷纷成立团队开 始做Eclipse-RCP方面的研究和研发,例如 清华紫光,华为,神州数码等;
Perspective
• Perspective应该包含哪些内容;
– 一组Viewer,一些Editor
• 如何通过配置产生一个Perspective? • 如何在Perspective增加多个Viewer?
Perspective
• <extension • point="org.eclipse.ui.perspectives"> • <perspective • name="Myprice Perspective" class="com.niis.myprice.frame. Perspective" • id="com.niis.myprice.perspective"> • </perspective> • </extension>
极好的Eclipse_RCP零基础学习(带图解)
Eclipse RCP入门最近做了一个基于RCP的项目,感受颇深,觉得RCP有希望扭转Java桌面应用的颓势。
在项目中积累了一点经验与心得,拿出来与大家分享,希望能给RCP初学者一点帮助。
我研究Eclipse 插件开发已经有一段时间了,但是我并没有很系统的学习过Eclipse的插件开发,往往只是做项目需要临时学的一点,所以讲的东西难免粗陋,请见谅。
一、Eclipse简介Eclipse最初是由IBM捐献给开源社区的,目前已经发展成为人气最旺的Java IDE。
Eclipse插件化的功能模块吸引了无数开发者开发基于Eclipse的功能插件。
事实上,Eclipse 已经超越了一般Java IDE的概念。
Eclipse是一个平台,一个开放的平台,你可以为Eclipse 添加任何你想要的功能,比如播放音乐,观看电影,聊天……这些不是天方夜谭,而是已经实现的事实。
虽然Eclipse可以添加很多附加功能,可以编辑C/C++,可以编辑Word文件,可以开发UML等等,但是Eclipse最基本,也是最强大的功能还是Java IDE。
二、RCP简介RCP的全称是Rich Client Platform,可以把它看成是Eclipse的骨架,其他的插件是器官与血肉。
我们可以把这个骨架拿过来填入自己的器官和血肉,这样就创造了我们自己的“Eclipse”!使用RCP来开发Java桌面应用可以把开发的焦点转移到系统的逻辑功能上,而不是界面上。
我们自己的程序可以继承Eclipse的风格与功能,而不用自己去编写诸如菜单,工具条,子窗口等等的界面元素。
甚至我们可以把Eclipse本身的功能插件,比如Console拿来放在自己的程序里,这样就避免了很多重复开发。
三、知识准备我写这篇文章并不是面向Java的初学者,而是面向有一定Eclipse使用基础的开发者。
所以我假设你已经具备一下基本知识:1、Java基础2、用过Eclipse进行开发3、SWT/JFace开发基础(可选)如果你还不具备上述条件,那么看我的文章你会看的很郁闷,建议你先去学习这些基本知识。
01 Eclipse RCP(一)(概述)
• Eclipse现在的主人
全世界
– Eclipse基金会以投票形式,决定Eclipse的发展方向。 – 2004年发布Eclipse3.0提出微小内核+插件的理念,为全球企业级开 发提供了全新的方式。 – 2005年发布Eclipse3.1正式提出Eclipse-RCP的概念。 – 2007年7月1日Eclipse3.3发布
• •
•
•
件热插拔和管理能力; 基于Java之上,Eclipse-RCP天生就是在Java EE体系之内; 拥有B/S的业务简单扩充性,部署简易性,客 户端瘦小性等特点; 又拥有C/S的用户界面表现丰富,客户端单机 运行,拥有一定运算能力等特点; Eclipse-RCP是一个C/S与B/S结合的产物;
• 在Java领域,Sun将关注点重新放在了客户端。
---JavaOne2007大会
• 在Eclipse基金会以及以IBM为首的一批全球软件
巨头的带领下,我们有理由相信,Eclipse社区可 以继续保持它的高速增长。 • 在Eclipse 2008大会上,MircroSoft承诺将与 Eclipse展开深度合作. • 客户端/服务器模式(C/S)模式将回归企业级应 用,但此次回归将带来全新的企业级应用模式。
周甫(zoofchow@)
17
Eclipse-RCP优势(2)
•
• •
•
• •
Eclipse-RCP为开发人员完成完成项目中需要的80%的代码,开发 人员之需要集中经历完成20%的核心功能代码; Eclipse-RCP使产品天生就支持操作系统的迁移; Eclipse-RCP使产品拥有强大的可在线升级功能功能,真正做到应 须而变; Eclipse-RCP使产品拥有高度的客户体验一致性,减少了后续产品 的用户培训; Eclipse 社区发布了强大的性能调整工具,帮助开发者在产品发布 之前,对自己的Eclipse-RCP产品进行性能调整; Eclipse-RCP 在Windows平台拥有强大的OLE功能,可以方便开发 者在Windows平台上与Office等软件集成开发;
eclipse rcp 编程
eclipse rcp 编程Eclipse RCP(Rich Client Platform)是一种基于Java的开发框架,专门用于构建现代化的可扩展桌面应用程序。
它提供了一套强大的工具和库,使开发者能够快速简便地构建功能强大的应用程序。
本文将介绍Eclipse RCP的概念、特点和使用方法,以及步骤来构建一个简单的Eclipse RCP 应用程序。
Eclipse RCP最初是以Eclipse IDE为基础开发的,用于创建插件和扩展Eclipse IDE的功能。
然而,随着时间的推移,Eclipse RCP已经成为一种独立的开发框架,并广泛用于构建各种类型的应用程序,包括企业级应用程序、科学数据分析工具和图形编辑器等。
Eclipse RCP具有以下特点:1. 丰富的UI库:Eclipse RCP提供了一套丰富的UI库,包括窗口、菜单、工具栏和对话框等。
这些UI组件具有良好的可定制性,可以根据应用程序的需求进行个性化配置。
2. 插件化架构:Eclipse RCP采用插件化架构,使开发者能够通过插件的方式扩展应用程序的功能。
每个Eclipse RCP应用程序都由多个插件组成,每个插件负责一项特定的功能。
3. 易于分发和安装:Eclipse RCP应用程序可以很容易地打包成一个独立的可执行文件,并通过简单的安装程序进行分发和安装。
这种特性使得应用程序的部署变得非常简便。
接下来,我们将一步一步地演示如何构建一个简单的Eclipse RCP应用程序。
第一步:创建Eclipse RCP项目首先,我们需要在Eclipse IDE中创建一个新的Eclipse RCP项目。
在Eclipse IDE的菜单中,选择“File -> New -> Project”,然后选择“Plug-in Development”类别下的“Eclipse 4 RCP Application”项目模板。
按照向导的指示填写项目名称和其他细节,并创建项目。
- 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>这种针对特定数据的集成方式可以暂时缓解企业应用和数据集成的压力。