基于Eclispe RCP的复合应用开发

一、复合应用系统概念

1、复合应用系统――基于应用系统粒度上的复合

复合应用,英文为Composite Application,是多个单一业务应用和各种工具软件在使用界面的集成。

1)      将若干传统独立的应用在同一界面上集成,并且互相联动,构成更加复杂的应用组合。这种组合为用户提供了一个复合优化的单一工作界面,为某个业务处理同时操作多个应用的组合界面,称为应用组合或工作空间。一个应用组合中各个应用可以相互传递数据和操作,协同完成一个业务处理

2)      将若干应用组合根据某种框架进一步复合,这个框架可以根据用户业务的要求动态的展示某个组合应用,协调多个应用组合的展现和操作内容。

3)      复合应用中,原来的独立应用表现为应用组合中的应用构件,可以独立开发和部署,并与其它应用一起形成应用组合。

 

复合复合应用和传统应用间的关系

复合应用可以将用户完成一个任务所需的所有应用和信息放在一个界面中,以便于用户操作,从而更快、更有效地完成工作。多个操作界面的统一管理,可以为用户在不同任务和工作间的动态切换提供方便、灵活的手段,同时使用户在若干任务并行的情况下,即时发现和处理对业务影响最大的任务,为各个岗位提供完善服务。

应用复合应用技术,可以将企业的各个信息系统项目的实施在一个整体规划下不断开发、更新和改进,使各个系统成为整个系统工程的有机部分。

2、复合应用系统的类型和技术

 

基于Web和富客户端/桌面的复合应用

Web复合技术包括Google GadgetFirefox PluginWordPress等等,桌面专有技术包括Eclipse RCPGoogle桌面、联众游戏平台等等。

3、复合应用系统的设计和开发特点

复合应用系统开发分为两个层次的开发:框架和应用构件。开发方式适合敏捷开发,首先构造框架,验证基本用户界面和运行环境,同时逐步细化各个构件的要求。

应用构件设计原则:

ü        应用构件之间可以互相通讯

ü        构件之间松藕合,可以灵活应用于SOA架构

ü        构件或资源可以复用

ü        不同的构件可以组装在一个客户端窗体中,以获得更加丰富的用户体验

ü        统一的界面风格

ü        事物型构件的信息取自不同的信息源

ü        支持诸如验证、角色和数据保密等安全措施

ü        在设计应用构件时应考虑框架、网络访问、组件粒度、组件属性、组件动作、组件数据类型等问题

二、Eclipse RCP对复合应用系统的支持

1、Eclispe RCP是优秀的复合应用的框架

Eclispe RCP是开发JAVA桌面系统的最佳选择,适合对界面交互程度高,信息集成性强的应用。Eclispe的插件结构使RCP成为天然的复合应用的框架和平台,RCPView对应各个应用界面构件,Perspective对应应用组合,每个员工需要的业务可以由一系列的透视图开发。

Eclispe RCP可以集成多种开发技术,如WindowsCom组件、Java SwingWeb应用。

Eclispe 的自动更新机制适合各种应用构建的部署和升级。

2、Eclispe RCP 框架特点

(1)    应用由Pespective展示,一个Perspective由多个View组成,View是实际的业务构件,Perspective仅负责组件的组装。

(2)    SWT内置Browers类,提供对Web应用的支持,Browers类提供一个execute(String script) 方法可以执行JavaSrcipt方法,通过编写JavaSrcipt脚本可以实现对浏览器内内容的读取、修改等操作

(3)    Eclipse APIorg.eclipse.swt.awt下有一个类SWT_AWT,实现了SWTAWT桥的作用,从而可以在SWT组件中嵌入AWTSwing组件。

(4)    通过JINI可以访问Windows COM组件

开发项目用SWINGRCPSWT.JFACE的分析 第一个SWT程序 下面让我们开始一个SWT程序。(注意:以下的例子和说明主要针对Windows平台,其它的操作系统应该大同小异)。首先要在Eclipse安装文件中找到SWT包,Eclipse组织并不提供单独的SWT包下载,必须下载完整的Eclipse开发环境才能得到SWT包。SWT是作为Eclipse开发环境的一个插件形式存在,可以在${你的eclipse安装路径}\plugins路径下的众多子目录下去搜索SWT.JAR文件,在找到的JAR文件中包含了SWT全部的Java类文件。因为SWT应用了JNI技术,因此同时也要找到相对应的JNI本地化库文件,由于版本和操作平台的不同,本地化库文件的名称会有些差别,比如SWT-WIN32-2116.DLL是Window平台下Eclipse Build 2116的动态库,而在Unix平台相应版本的库文件的扩展名应该是.so,等等。注意的是,Eclipse是一个开放源代码的项目,因此你也可以在这些目录中找到SWT的源代码,相信这会对开发很有帮助。下面是一段打开空窗口的代码(只有main方法)。 import com.e2one.example; public class OpenShell{ public static void main(String [] args) { Display display = new Display(); Shell shell = new Shell(display); shell.open(); // 开始事件处理循环,直到用户关闭窗口 while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } } 确信在CLASSPATH中包括了SWT.JAR文件,先用Javac编译例子程序。编译无错后可运行java -Djava.library.path=${你的SWT本地库文件所在路径} com.e2one.example.OpenShell,比如SWT-WIN32-2116.DLL件所在的路径是C:\swtlib,运行的命令应该是java -Djava.library.path=c:\swtlib com.e2one.example.OpenShell。成功运行后,系统会打开了一个空的窗口。 剖析SWT API 下面再让我们进一步分析SWT API的组成。所有的SWT类都用org.eclipse.swt做为包的前缀,下面为了简化说明,我们用*号代表前缀org.eclipse.swt,比如*.widgets包,代表的是org.eclipse.swt.widgets包。 我们最常用的图形构件基本都被包括在*.widgets包中,比如Button,Combo,Text,Label,Sash,Table等等。其中两个最重要的构件当数Shell和Composite。Shell相当于应用程序的主窗口框架,上面的例子代码中就是应用Shell构件打开一个空窗口。Composite相当于SWING中的Panel对象,充当着构件容器的角色,当我们想在一个窗口中加入一些构件时,最好到使用Composite作为其它构件的容器,然后再去*.layout包找出一种合适的布局方式。SWT对构件的布局也采用了SWING或AWT中Layout和Layout Data结合的方式,在*.layout包中可以找到四种Layout和与它们相对应的布局结构对象(Layout Data)。在*.custom包中,包含了对一些基本图形构件的扩展,比如其中的CLabel,就是对标准Label构件的扩展,上面可以同时加入文字和图片,也可以加边框。StyledText是Text构件的扩展,它提供了丰富的文本功能,比如对某段文字的背景色、前景色或字体的设置。在*.custom包中也可找到一个新的StackLayout布局方式。 SWT对用户操作的响应,比如鼠标或键盘事件,也是采用了AWT和SWING中的Observer模式,在*.event包中可以找到事件监听的Listener接口和相应的事件对象,例如常用的鼠标事件监听接口MouseListener,MouseMoveListener和MouseTrackListener,及对应的事件对象MouseEvent。 *.graphics包中可以找到针对图片、光标、字体或绘图的API。比如可通过Image类调用系统中不同类型的图片文件。通过GC类实现对图片、构件或显示器的绘图功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值