轉帖:http://www.ibm.com/developerworks/cn/opensource/os-eclipse-richajax1/
作為一種使基于 Web 的應用程式更加生動的方法,Asynchronous JavaScript + XML (Ajax) 和 Web 2.0 的概念已經在開發社群中廣泛應用。富 Ajax 平台 (RAP) 是一種使用 Eclipse 開發模型來建構啟用 Ajax 的 Web 應用的方式。本文将介紹 RAP,說明如何設定 RAP 開發環境,提供一些示範以及一些易于了解的示例。
RAP 項目旨在使開發人員能夠使用 Eclipse 開發模型建構富 Internet 應用程式。“Eclipse 開發模型” 的确切含義是什麼?RAP 允許開發人員使用豐富的 Java™ 庫和 Eclipse API 建構基于浏覽器的 Ajax 應用程式。它通過提供 SWT、JFace 和 Eclipse Workbench 的基于 Web 的實作來提供此項功能。本文的目的在于通過一些簡單示例介紹 RAP。
![]() |
|
設定兩個步驟
RAP 的設定非常簡單,隻需要執行兩個步驟:下載下傳 RAP 并配置 Eclipse 以使用 RAP。
第 1 步:下載下傳 RAP
從 Eclipse.org 獲得 RAP。建議您擷取最新的穩定裡程碑版本。對于本文,我們使用的是 1.0 發行版。下載下傳了包含 RAP 目标平台的歸檔檔案後,将其解壓縮到所選目錄中(參見圖 1)。此目錄十分重要,因為這将是您在下一步中設定目标平台時使用的目錄。
圖 1. RAP 目标
第 2 步:設定目标平台
Eclipse Plug-in Development Environment (PDE) 将使用目标平台的概念。目标平台隻是由一組表示待開發内容(也就是目标)的插件組成的。預設情況下,目标平台被設為針對目前運作的 Eclipse 執行個體。這意味着目前開發的插件應當運作在目前運作的執行個體中。目标平台的靈活之處在于它可以被更改。例如,您可以将目标平台設為針對 Eclipse V3.2 安裝或者甚至其他産品的運作時(這種技巧使您不管開發什麼内容都可以使用最新的 Eclipse)。
在本例中,我們以 RAP 平台為目标,因為我們要針對它進行開發。為此,需要将目标平台首選項 (Window > Preferences... > Plug-in Development > Target Platform) 設為第 1 步中 RAP 插件的解壓縮目錄(參見圖 2)。
圖 2. 将 RAP 設為目标平台
現在您已經正确設定了目标平台,可以開發 RAP 應用程式了。但是在開始檢視代碼之前,讓我們先來看一個簡單示範,了解 RAP 可以做什麼并熟悉如何啟動基于 RAP 的應用程式。
![]() |
|
![]() |
![]()
|
示範
體驗 RAP 的第一步是檢視一個示範。要與 RAP 互動,需要建立一個啟動配置來啟動 RAP。為此,需要打開 Run 對話框 (Run > Open Run Dialog...) 并建立一個新的 OSGi 架構啟動配置。完成後,需要確定這些 VM 參數已設定:
-Dorg.osgi.service.http.port=8000 -Dosgi.noShutdown=true
(參見圖 3)。這些參數将使 RAP 可以在端口 8000 上啟動并阻止 Eclipse 在 RAP 啟動後立即關閉。
圖 3. RAP 啟動配置
最後,可以啟動浏覽器并指向
http://localhost:8000/rap?startup=controls
來檢視控件示範(參見圖 4)。該示範基于 SWT Examples 集合中著名的
ControlExample
。
圖 4. RAP 控件示範
![]() |
![]()
|
示例應用程式
我們将檢視兩個示例,它們都是基于 PDE 所提供的一些 Rich Client Platform (RCP) 模闆。
Hello World 示例
傳統的程式設計示例通常都是 Hello World 示例。我們首先将說明運作簡單 RAP 應用程式的方法。
圖 5. RAP 版 Hello World
RAP 版與 RCP 版的主要差别在于插件依賴性和應用程式入口點。如果檢視插件清單(參見清單 1),我們可以看到具有不同的依賴性。
清單 1. RAP Hello World 依賴性 (MANIFEST.MF)
|
注意到對
org.eclipse.rap.ui
的依賴性了麼?那是類似于 RCP 庫中的标準
org.eclipse.ui
插件的 RAP 插件。如果熟悉 OSGi 和
Import-Package
檔案頭,則根本無需依賴于特定的插件;您可以隻依賴需要的包。這十分重要,因為您可以用一種既能在 RAP 中工作又能在 RCP 中工作的方法來構造代碼。例如,如果檢視 RAP(參見清單 2)和 RCP(參見清單 3)中的工作區顧問程式 (workbench advisor) 代碼,則會看到相似的代碼和導入包。
清單 2. RCP 工作區顧問程式
|
清單 3. RAP 工作區顧問程式
|
RAP 與 RCP 應用程式之間的另一個主要差别是入口點(類似于 Java 語言中的
main(String[] args)
方法)。在 RCP 中,我們有用于定義
IApplication
(注意,對于早于 Eclipse V3.3 的版本,此接口被稱為
IPlatformRunnable
)的
org.eclipse.core.runtime.applications
擴充點。RAP 中與 RCP 應用程式等效的是
org.eclipse.rap.ui.entrypoint
擴充點,該擴充點将定義
IEntryPoint
。如果檢視 RCP 上下文(參見清單 4)和 RAP 上下文(參見清單 5)中的典型入口點代碼,您會發現存在相似之處。在兩個例子中,我們都将建立一個視圖和工作區以運作工作區顧問程式。
清單 4. RCP 應用程式入口點 (org.eclipse.core.runtime.applications)
|
清單 5. RAP 應用程式入口點 (org.eclipse.rap.ui.entrypoint)
|
RCP 郵件示例
著名的 RCP 郵件 示例(參見圖 6)在經過少量更改後能夠在 RAP 環境内運作(參見圖 7)。此示例表明視圖、透視圖、編輯器等工作區概念可以在 RAP 中使用(有關概念映射,請參見表 1)。您可以獲得郵件示例和先前示例的 源代碼 進行修改。
表 1. 比較 RAP 與 RCP
RAP | RCP |
---|---|
OSGi(伺服器端) | OSGi |
Standard Widget Toolkit (SWT) | RAP Widget Toolkit (RWT) |
JFace | JFace |
工作區 | Web 工作區 |
圖 6. RCP 郵件示例
圖 7. RAP 郵件示例
![]() |
![]()
|
結束語
本文通過幾個簡單的示例和示範介紹了 RAP。RAP 允許在 Eclipse 中重用您現有的技能并建立富 Internet 應用程式。RAP 還使您可以用能夠在桌上型電腦 (RCP) 和浏覽器 (RAP) 之間重用的方法構造代碼。實質上,RAP 現在将把 Eclipse 引入到浏覽器和 Web 2.0 陣營中。