RAP 可以让开发人员使用JAVA API和按照Eclipse 插件的开发模式构建基于AJAX的Web 2.0应用程序,是的,你没有看错,其实RAP的工作原理是采用交叉编译的方式将 Java 代码生成html、JavaScript和CSS文件,底层基于Qooxdoo AJAX框架,这样,我们就不必接触JavaScript、CSS和处理Http的细节了,可以让我们更关心程序的功能实现,想起来的觉得很幸福。
RAP和RCP 一样,运行在Equinox框架上,Equinox是OSGI R4规范的实现,是一个非常优秀和成熟的OSGi框架,Eclipse 是通过这个框架实现灵活的扩展性和插件的热部署。RAP也支持Eclipse的大部分扩展点,其实RAP和RCP在架构上非常的类似,下图分别为RCP和RAP的架构图:
可以看出,这之间的整体架构差别不大,RCP是基于SWT的,RAP是基于RWT的, RWT是实现了SWT功能的一个子集。其实这之间的使用方式都差不多。比如RWT也能和SWT一样使用MVC的方式来创建表格。
RAP可以使用Servlet 编译,支持Servlet 2.3、2.4和2.5规范,并且可以通过打包成war文件部署在服务器上,客户端通过浏览器直接访问,不过这里的客户端和服务器的实现也不一样,。下面分别是服务器和客户端的实现。
服务器端:
客户端:
客户端的功能比较简单,是通过Qooxdoo程序从服务器上更新信息并绘制出相应的组件显示在浏览器中。基本上只是负责提交和更新显示数据的功能,服务器端的功能就比较复杂,比如要管理插件的生命周期,寻找新的插件并加载和管理系统的资源,还要处理多用户环境,在不同Sessions之间处理 OSGI bundles 的关系。
RWT VS SWT:
控件:
RWT实现了SWT 中的大部分基本控件,使用方法大同小异,也提供了CTabFolder、CBanner自定义控件,RWT中的Tree和Table功能和SWT的的差不多,支持排序、过滤和直接编辑单元格,使用方式也一样的。可以直接从SWT代码复制到RWT程序中使用。
布局:
RWP同样可以像SWT一样使用布局,布局的数据在服务器上计算处理,我们基本上不用担心跨浏览器出现布局混乱的问题了,目前RWP支持下面的布局:
GridLayout, RowLayout FillLayout FormLayout StackLayout
RWT中布局采用的计算算法和SWT一样。
事件处理:
目前RWT支持以下事件类型:
SelectionListener ControlListener ShellListener MenuListener ModifyListener VerifyListener
RWT附加功能:
RWT提供了附加的API可以方便管理web 环境,我们可以调用RWT.java的getLifeCycle静态方法获得程序的生命周期控制类,直接操作程序的生命周期; 可以通过getResourceManager静态方法获得资源管理的控制类,手工管理系统资源,通过getSessionStore方法管理session资源;通过getRequest 方法处理用户的请求getResponse处理服务器的响应。假如我们从下面URL中得到请求的参数内容:
http://localhost:8080/rap?startup=foo&var1=value1&var2=value2
可以调用
HttpServletRequest request = RWT.getRequest(); String var1 = request.getParameter( "var1" ); String var2 = request.getParameter( "var2" );
RAP.JFace vs RCP.JFace
RAP的JFace实现了RCPJFace的所有视图查看器,比如TableViewer、TreeViewer等;
支持大多数的视图概念,像:ContentProvider、LabelProvider、ColorProvider、ViewerFilter、DecoratingLabelProvider,
支持文本装饰,比如文本框前面加个小灯泡提示
支持所有JFace的标准对话框,也支持自定义对话框。
支持向导页
支持附加视图,比如 Outline,Properties视图
编辑器支持:可使用多页编辑器,支持继承自ISaveablePart的视图
支持透视图:可支持透视图切换器,透视图扩展点。
支持Eclipse 3.3的菜单框架:包括Commands和Handler,支持采用表达式来控制菜单是否可见和是否可用
支持Form表单样式
还有一个杀手级的特性: 支持在后台运行Job,可以通过UI界面执行长时间任务,支持Progress View 视图。
如果你很喜欢RCP中JFace的Data Binding功能的话,在RAP中也可以实现,通过RAP的附加插件可以让你拥有RCP的数据绑定功能,并且可以运用到目前所有的RAP控件中,
也许你看到这里的时候,上面的信息有些过时了,那有什么办法呢,Eclipse 组织的动作发展太快了,而且理念也非常的超前,应该听说过E4吧,Eclipse 的下一代开发工具,可以在Web 浏览器中打开Eclipse 进行开发了。持续关注Eclipse的发展,希望NetBeans不要落后的太远。
- 大小: 19.1 KB
- 大小: 25.7 KB
- 大小: 26.7 KB
分享到:
- 2009-05-20 09:30
- 浏览 5426
- 评论(5)
- 论坛回复 / 浏览 (5 / 7251)
- 查看更多
相关推荐
将RCP工程转成RAP工程,在浏览器中运行。
Eclipse IDE for RCP and RAP Developers(eclipse-rcp-2022-06-R-linux-gtk-x86_64.tar.gz) 适用于Linux x86_64: A complete set of tools for developers who want to create Eclipse plug-ins, Rich Client ...
Instant Eclipse 4 RCP Development How-to 不错的一本书
Eclipse IDE for RCP and RAP Developers(eclipse-rcp-2022-06-R-macosx-cocoa-aarch64.dmg) 适用于macOS aarch64: A complete set of tools for developers who want to create Eclipse plug-ins, Rich Client ...
Eclipse IDE for RCP and RAP Developers(eclipse-rcp-2022-06-R-macosx-cocoa-x86_64.dmg) 适用于macOS x86_64: A complete set of tools for developers who want to create Eclipse plug-ins, Rich Client ...
Eclipse IDE for RCP and RAP Developers(eclipse-rcp-2022-06-R-linux-gtk-aarch64.tar.gz) 适用于Linux aarch64: A complete set of tools for developers who want to create Eclipse plug-ins, Rich Client ...
Eclipse IDE for RCP and RAP Developers(eclipse-rcp-2022-06-R-win32-x86_64.zip) 适用于Windows x86_64: A complete set of tools for developers who want to create Eclipse plug-ins, Rich Client ...
将RAP自带的Mail例子代码进行解析,前提是需要会一点插件和RCP的开发
本人只会用RCP开发个C/S的程序,最近看到RAP项目想试一下,在百度上看了很多文章关于如何部署RAP到Tomcat,有些文章已经过时的了,还是没能理解清楚,最后弄了2天时间,搞来搞去没办法调试出来,最后都想放弃了。...
Eclipse IDE for RCP and RAP linux x86_64 适用于 RCP 和 RAP 开发的工具,需要JDK11及以上运行环境。
Eclipse For RCP and RAP Developers开发包主要针对开发Eclipse插件,Eclipse RCP(富客户端应用程序),RAP(富客户端ajax应用程序)的程序员,还包含CVS、Mylyn和xml编辑器,EGit分布式版本控制等插件。...
Eclipse IDE for RCP and RAP Developers (includes Incubating components) Version: 2020-06 (4.16.0) Build id: 20200615-1200
This firstPress title demonstrates the functionality and benefits of Eclipse RAP as well as shows the sweet spots of RAP, especially focusing on single sourcing RCP and web applications, which can be ...
Eclipse 4书 这是来自vogella GmbH和的Eclipse RCP培训课程的示例代码。运行应用程序克隆项目并将所有项目导入Eclipse IDE。 然后打开目标平台项目的target-platform.target文件,并将此目标定义设置为工作空间的...
CodeMirror Eclipse 使您能够在三个上下文中使用 codemirror:Eclipse SWT、RCP 和 RAP。 它在 SWT 浏览器中嵌入了 javascript codemirror 编辑器。 它提供了几个功能: 仅使用带有 SWT/RWT 的 codemirror。 这是...
EntireJ 是一个 RAD 快速应用开发环境,用于构建高度可伸缩的企业级应用,基于 RCP/RAP、JavaFX 平台以及 Android 和 iOS 移动平台。使用强大的声明式特性。 标签:EntireJ J2EE框架
RCP goes web2.0 --- The Rich Ajax Platform
可以直接安装 ...Eclipse IDE for Java Developers ...Eclipse IDE for RCP and RAP Developers Eclipse Modeling Tools Eclipse IDE for Scientific Computing Eclipse IDE for Scout Developers