RAP 可以讓開(kāi)發(fā)人員使用JAVA API和按照Eclipse 插件的開(kāi)發(fā)模式構(gòu)建基于AJAX的Web 2.0應(yīng)用程序,,是的,,你沒(méi)有看錯(cuò),其實(shí)RAP的工作原理是采用交叉編譯的方式將 Java 代碼生成JavaScript文件,,底層基于Qooxdoo AJAX框架,,這樣,我們就不必接觸JavaScript,、CSS和處理Http的細(xì)節(jié)了,,可以讓我們更關(guān)心程序的功能實(shí)現(xiàn),想起來(lái)的覺(jué)得很幸福,。 RAP和RCP 一樣,,運(yùn)行在Equinox框架上,Equinox是OSGI R4規(guī)范的實(shí)現(xiàn),,是一個(gè)非常優(yōu)秀和成熟的OSGi框架,,Eclipse 是通過(guò)這個(gè)框架實(shí)現(xiàn)靈活的擴(kuò)展性和插件的熱部署。RAP也支持Eclipse的大部分?jǐn)U展點(diǎn),,其實(shí)RAP和RCP在架構(gòu)上非常的類似,,下圖分別為RCP和RAP的架構(gòu)圖: 可以看出,這之間的整體架構(gòu)差別不大,,RCP是基于SWT的,,RAP是基于RWT的, RWT是實(shí)現(xiàn)了SWT功能的一個(gè)子集,。其實(shí)這之間的使用方式都差不多,。比如RWT也能和SWT一樣使用MVC的方式來(lái)創(chuàng)建表格,。 RAP可以使用Servlet 編譯,支持Servlet 2.3,、2.4和2.5規(guī)范,,并且可以通過(guò)打包成war文件部署在服務(wù)器上,,客戶端通過(guò)瀏覽器直接訪問(wèn),,不過(guò)這里的客戶端和服務(wù)器的實(shí)現(xiàn)也不一樣,,。下面分別是服務(wù)器和客戶端的實(shí)現(xiàn),。 服務(wù)器端: 客戶端: 客戶端的功能比較簡(jiǎn)單,是通過(guò)Qooxdoo程序從服務(wù)器上更新信息并繪制出相應(yīng)的組件顯示在瀏覽器中,?;旧现皇秦?fù)責(zé)提交和更新顯示數(shù)據(jù)的功能,服務(wù)器端的功能就比較復(fù)雜,,比如要管理插件的生命周期,,尋找新的插件并加載和管理系統(tǒng)的資源,還要處理多用戶環(huán)境,,在不同Sessions之間處理 OSGI bundles 的關(guān)系,。 RWT VS SWT: 控件: RWT實(shí)現(xiàn)了SWT 中的大部分基本控件,使用方法大同小異,,也提供了CTabFolder,、CBanner自定義控件,RWT中的Tree和Table功能和SWT的的差不多,,支持排序,、過(guò)濾和直接編輯單元格,使用方式也一樣的,??梢灾苯訌?/font>SWT代碼復(fù)制到RWT程序中使用。布局: RWP同樣可以像SWT一樣使用布局,,布局的數(shù)據(jù)在服務(wù)器上計(jì)算處理,,我們基本上不用擔(dān)心跨瀏覽器出現(xiàn)布局混亂的問(wèn)題了,目前RWP支持下面的布局: 1 GridLayout,
2 RowLayout 3 FillLayout 4 FormLayout 5 StackLayout RWT中布局采用的計(jì)算算法和SWT一樣,。 1?SelectionListener
2 ControlListener 3?ShellListener 4?MenuListener 5?ModifyListener 6?VerifyListener ? RWT附加功能: http://localhost:8080/rap?startup=foo&var1=value1&var2=value2 可以調(diào)用 1 HttpServletRequest request = RWT.getRequest();
2 String var1 = request.getParameter( "var1" ); 3 String var2 = request.getParameter( "var2" );
RAP.JFace vs RCP.JFace RAP的JFace實(shí)現(xiàn)了RCPJFace的所有視圖查看器,,比如TableViewer,、TreeViewer等; 支持大多數(shù)的視圖概念,,像:ContentProvider,、LabelProvider、ColorProvider,、ViewerFilter,、DecoratingLabelProvider, 支持文本裝飾,,比如文本框前面加個(gè)小燈泡提示 支持所有JFace的標(biāo)準(zhǔn)對(duì)話框,,也支持自定義對(duì)話框。 支持向?qū)ы?yè) 支持附加視圖,,比如 Outline,,Properties視圖 編輯器支持:可使用多頁(yè)編輯器,支持繼承自ISaveablePart的視圖 支持透視圖:可支持透視圖切換器,,透視圖擴(kuò)展點(diǎn),。 支持Eclipse 3.3的菜單框架:包括Commands和Handler,支持采用表達(dá)式來(lái)控制菜單是否可見(jiàn)和是否可用 支持Form表單樣式 還有一個(gè)殺手級(jí)的特性: 支持在后臺(tái)運(yùn)行Job,,可以通過(guò)UI界面執(zhí)行長(zhǎng)時(shí)間任務(wù),,支持Progress View 視圖。 如果你很喜歡RCP中JFace的Data Binding功能的話,,在RAP中也可以實(shí)現(xiàn),,通過(guò)RAP的附加插件可以讓你擁有RCP的數(shù)據(jù)綁定功能,并且可以運(yùn)用到目前所有的RAP控件中,, |
|
來(lái)自: sdyjmc > 《我的圖書(shū)館》