Eclipse Rich Client Platform (RCP) 為富客戶機提供了一個極為靈活且功能豐富的架構。但是它的一個缺點是不能輕鬆地從其他源連結 RCP 應用程式中的業務對象。如果使用者能夠在其他應用程式中單擊某個連結並被帶到 RCP 應用程式中,並且已經開啟了該連結所引用的業務對象,那將十分有協助。例如,假定有一個用於處理費用申請的 RCP 應用程式。可能產生有關到期償付的報表並以試算表的形式發布(或者是在內部網中,或者作為富文字文件,或者作為電子郵件,或者其他形式等等)。該報表可能對每個到期申請使用一個引用編號。報表不會強制使用者把該引用編號複製並粘貼到 RCP 應用程式的搜尋對話方塊中,而是包含啟動 RCP 應用程式的超級連結 URL,該 URL 將把使用者直接引導到對應的費用申請。本文將說明如何完成上述過程。
讀者應當擁有編寫 Eclipse 外掛程式的經驗,以及 Windows® 註冊表和 TCP 協議的一般知識。雖然本文提供的樣本針對 Windows 作業系統,但是在其他動作系統中也可以實現相同的功能。
解決方案概述
讓我們從整體上查看解決方案的工作原理,然後進行細分並討論如何?各個部分。
遵循圖 1 中的流程:
假定使用者已經在案頭中開啟 RCP 應用程式。
然後假定此使用者在他的常用郵件客戶機中收到了一封電子郵件,該郵件中包含連結 rcp://claim=25222 — 這是指向到期申請的引用 (1) 。
該使用者單擊連結,這將啟動該使用者的預設瀏覽器以處理請求 (2)。
該瀏覽器知道它不能在本機開啟此 URL,因此它將查詢 Windows 註冊表以確定應當怎樣委託該操作 (3)。
註冊表將尋找 rcp:// 協議並確定有一個與它綁定在一起的批次檔 (4)。
此批次檔將被執行 (5),這將觸發獨立的 Java™ 客戶機 (6),捕捉 URL 的參數,並因此向 RCP 應用程式中內嵌的 TCP 伺服器發出一個本地 TCP 調用 (7)。
該 TCP 伺服器將解析來自該 URL(即,claim=25222)的參數並請求 RCP 應用程式開啟相應的業務對象 (8)。
然後將在 RCP 應用程式 UI 中向使用者呈現所請求的業務對象 (9)。
圖 1. 使用 URL 開啟 RCP 應用程式的流程式控制制
此過程涉及到許多步驟,但幸運的是,每個步驟都相對簡單並且可以根據您的環境和應用程式進行調整。最後幾步將協助解決如何使 RCP 應用程式獲得 Windows 焦點之類的細節。