隨筆 - 59, 文章 - 4, 評論 - 184, 引用 - 7
          數據加載中……

          一個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的如下方法:

              protected void makeActions(IWorkbenchWindow window) {
              }



              
          protected void fillMenuBar(IMenuManager menuBar) {
              }


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

              public void preWindowOpen() {

                  IWorkbenchWindowConfigurer configurer 
          = getWindowConfigurer();

                  configurer.setInitialSize(
          new Point(400300));

                  configurer.setShowCoolBar(
          false);

                  configurer.setShowStatusLine(
          false);

                  configurer.setTitle(
          "Hello RCP");

              }


          至于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 閱讀(1750) 評論(0)  編輯  收藏 所屬分類: Eclipse Tech

          主站蜘蛛池模板: 南华县| 绥江县| 山东| 瓮安县| 铁岭市| 明光市| 驻马店市| 绵阳市| 仲巴县| 洛隆县| 舞阳县| 罗源县| 克什克腾旗| 穆棱市| 乌兰县| 聊城市| 洛浦县| 上蔡县| 巩留县| 三门峡市| 台安县| 潜江市| 子长县| 昌平区| 万载县| 温宿县| 新宾| 佳木斯市| 洛扎县| 加查县| 阿合奇县| 西丰县| 土默特左旗| 仙居县| 嘉兴市| 大连市| 白朗县| 赣州市| 九江县| 江城| 宜章县|