<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    邋遢居

    我的Java天堂

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      61 Posts :: 2 Stories :: 90 Comments :: 0 Trackbacks

    #

    昨天(2005-12-16 20:20)給遠(yuǎn)方的她打了一個(gè)電話。當(dāng)時(shí)她還在回家的路上。隨便聊了一些東西。挺happy。
    posted @ 2005-12-17 10:01 Jet Geng 閱讀(403) | 評(píng)論 (2)編輯 收藏

                                                            RCP學(xué)習(xí)筆記(一) Viewer合作類的模式

    Viewer是邏輯對(duì)象(或叫做領(lǐng)域模型)和顯示對(duì)象之間的一個(gè)橋梁。他的主要的任務(wù)就是根據(jù)邏輯對(duì)象來(lái)填充窗體組件。一般需要三個(gè)類來(lái)完成Business Object 在窗體組件中的顯示。我們這里同過(guò)使用TableView來(lái)演示這部分的功能。

    TableViewer的責(zé)任是用特定的對(duì)象填充到Table窗體組件中。是我們最終在窗體要看到的對(duì)象。如下圖所示的一部分:
    tableviewer.gif

    IStructuredContentProviderITableLabelProvider的實(shí)現(xiàn)類是用來(lái)幫助TableViewer來(lái)完成這個(gè)任務(wù)的。

    1、  IStructuredContentProvider的任務(wù)是“根據(jù)給定的對(duì)象,返回一個(gè)對(duì)應(yīng)的領(lǐng)域?qū)ο蟆?/span>1。是通過(guò):public Object[] getElements(Object arg0)2方法實(shí)現(xiàn)的。

    2、  ITableLabelProvider 的任務(wù)是“返回展現(xiàn)領(lǐng)域?qū)ο蟮乃璧膱D標(biāo)和文字”。這兩個(gè)任務(wù)分別是通過(guò)public Image getColumnImage(Object element, int columnIndex);

    public String getColumnText(Object element, int columnIndex);這兩個(gè)方法實(shí)現(xiàn)的。他們的傳入?yún)?shù)都是:Object element, int columnIndexElement表示當(dāng)前行所要展現(xiàn)的數(shù)據(jù)對(duì)象,columnIndex表示的當(dāng)前處理的列號(hào),他是從零開始記的。

    知道了他們之間分配的職能后,我們就可以看看他們是怎么協(xié)作的了。在TableView的需要顯示的輸入對(duì)象改變了(調(diào)用了setInput方法可以觸發(fā)待顯示領(lǐng)域?qū)ο蟮母淖儯@就會(huì)觸發(fā)TableViewInputChange事件,這時(shí)候TableView就會(huì)去調(diào)用他本身的refresh3方法。最終會(huì)在getRawChildren方法中調(diào)用IStructuredContentProvider實(shí)現(xiàn)類中的getElements方法或的一個(gè)Object[]。供以后創(chuàng)建Item時(shí)使用。整個(gè)調(diào)用過(guò)程可以用下面的strack圖來(lái)表示:
    gettreetrack.gif
    通過(guò)調(diào)用IStructuredContentProvider獲的了一個(gè)對(duì)象數(shù)組后,就會(huì)根據(jù)對(duì)象數(shù)組來(lái)創(chuàng)建顯示的Item。我們可以先看一下ITableLabelProviderTableLabelProviderITableLabelProvider的一個(gè)實(shí)現(xiàn)類)。createItem.gif

    在更新Item的時(shí)候提供每個(gè)TableView需要的TextImage就好了。他們最終在TableViewerdoUpdateItem方法中調(diào)用ITableLabelProvidergetColumnTextgetColumnImage方法。

     

    要實(shí)現(xiàn)一個(gè)在TableView中顯示特定對(duì)象只需要實(shí)現(xiàn)IStructuredContentProvider實(shí)現(xiàn)類的getElements方法。和ITableLabelProvidergetColumnText方法。

    下面是我示例中的代碼:

    TableLabelPrivatetablelable.gif

    TableContentPrivate
    contentprivate.gif




    Viewer也都是采用ContentProvideLabelProvide的協(xié)作方式來(lái)工作。

    其他的

    參考文獻(xiàn):

    1、  Contributing to Eclipse 中文版 Page 290

    2、  org.eclipse.jface.viewers. IStructuredContentProvider.java

    3、  這個(gè)方法繼承自StructuredViewer。可參考StructuredViewer.java



    posted @ 2005-12-11 11:24 Jet Geng 閱讀(1817) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共7頁(yè): 上一頁(yè) 1 2 3 4 5 6 7 
    主站蜘蛛池模板: 国产成人精品免费大全| 精品免费人成视频app| 亚洲成AV人在线观看天堂无码| 久久免费的精品国产V∧| 久久亚洲精品专区蓝色区| 亚洲AV无码一区二区三区在线观看| www在线观看播放免费视频日本| 久久精品国产亚洲AV无码娇色 | 无人在线观看免费高清视频| 337P日本欧洲亚洲大胆精品| 亚洲色图在线观看| 国产高清免费的视频| 免费在线观看黄网站| 风间由美在线亚洲一区| 亚洲av无码一区二区三区乱子伦| 免费在线看v网址| 香蕉免费看一区二区三区| 中文日韩亚洲欧美制服| 亚洲色婷婷一区二区三区| 成人毛片免费在线观看| 99视频在线观看免费| 亚洲AV日韩AV一区二区三曲| 国产在线观看免费不卡| 日本免费一区二区三区| 一级全免费视频播放| 国产亚洲精品VA片在线播放| 日本红怡院亚洲红怡院最新| 国产91久久久久久久免费| 91九色精品国产免费| 中文成人久久久久影院免费观看| 亚洲欧美成人综合久久久| 2022年亚洲午夜一区二区福利 | 老司机午夜免费视频| 亚洲人成无码网WWW| 成人无码区免费A片视频WWW| 两个人的视频www免费| 青娱乐在线视频免费观看| 亚洲av无码专区在线| 香蕉视频在线观看亚洲| 国产精品入口麻豆免费观看| 在线观看免费黄网站|