一個SWT Application如何轉職成為RCP Appliactioin
昨天david問到如何將舊的swt應用轉成一個RCP應用,昨晚胃疼難忍,于是草草說了一下,就早早上床休息了,早上起來又想起這件事情,遂在這里說一下思路
下面說一下我的思路
(注:以下觀點未經證實,請自行斟酌使用)
一個舊的SWT應用,應該都是有一個main函數里初始化一些UI組件,然后run一個事件循環
在RCP中,由于是基于Eclipse的插件體系,也就是說,使用我前面那篇文章發布的RCP Application,是可以直接發布成Eclipse插件的
所以,對于UI組件的控制也要遵循Eclipse的插件體系的代碼要求,看看Hello RCP模板中的幾個類:ApplicationActionBarAdvisor、ApplicationWorkbenchAdvisor、ApplicationWorkbenchWindowAdvisor以及RCPPlugin,想起了什么?對,OSGI
我們只要將原swt的main函數中初始化的ui組件,放入到這幾個Advisor中進行初始化
將下拉菜單項的ui組件的初始化工作放入到ApplicationActionBarAdvisor的如下方法:











將其他UI組件初始化工作放入到ApplicationWorkbenchWindowAdvisor的如下方法:
















至于ApplicationWorkbenchAdvisor這個類,我想你一定想起了Eclipse中的Workbench概念
在這里,可以定義當這個RCP作為plugin的時候的Worbench的透視圖的一些屬性。
-----------------------------------
最后,基于Eclipse3.1的product方式的RCP程序將獲得同Eclipse相同的插件體系支持
也就是說:你的應用本身就是基于Eclipse Platform的,這樣,你的程序也可以接受插件插入了(如果你設計的好的話^_^)
另外,還有其他很多好處,比如在線升級功能的自動綁定啊,幫助功能的使用啊等等
想一想,你的程序將既能作為單獨的程序運行,又能作為Eclipse的插件運行,而且還跨平臺,think about it...
So....try it now, you will get more
posted on 2006-01-17 11:02 fisher 閱讀(1748) 評論(0) 編輯 收藏 所屬分類: Eclipse Tech