訂閱
糾錯(cuò)
加入自媒體

Eclipse華麗轉(zhuǎn)身之控件表格工廠(chǎng)

2020-08-26 10:48
EAWorld
關(guān)注

KTree表格工廠(chǎng)

Eclipse華麗轉(zhuǎn)身之控件表格工廠(chǎng)

AbstractKTreeFactory和AbstractKTableFacotory區(qū)別不大。通過(guò)UI界面可以看到區(qū)別,“參數(shù)”和“返回值”就好比一個(gè)樹(shù)的跟節(jié)點(diǎn)root,而參數(shù)param1和參數(shù)param2為“參數(shù)”root的子節(jié)點(diǎn)。AbstractKTreeFactory中是使用KTreeBuilder來(lái)構(gòu)造表格的,KTreeBuilde中有一個(gè)重要的屬性ITreeNode,下圖是它的類(lèi)關(guān)系圖:

Eclipse華麗轉(zhuǎn)身之控件表格工廠(chǎng)

DefaultTreeNode實(shí)現(xiàn)了ITreeNode的接口并且繼承了AbstractPropertyAwareElement(能夠監(jiān)控屬性改變的類(lèi),當(dāng)屬性改變時(shí),會(huì)發(fā)出相應(yīng)的信息通知所有的監(jiān)聽(tīng)者),KTreeBuilder類(lèi)里面有一個(gè)方法叫做setRootNode()可以設(shè)置樹(shù)的根節(jié)點(diǎn),而ITreeNode的子類(lèi)都可以構(gòu)造自己的節(jié)點(diǎn)然后通過(guò)setParent()的方法設(shè)置父類(lèi)節(jié)點(diǎn),或者調(diào)用add()方法來(lái)添加自己的孩子節(jié)點(diǎn),其中重要的是DefaultTreeNode的setUserObject()方法,它是用來(lái)為每個(gè)節(jié)點(diǎn)set一個(gè)對(duì)象的方法。我們來(lái)看一個(gè)示例(邏輯流出入?yún)⒌臄?shù)據(jù)轉(zhuǎn)換器BusinessLogicTranslator):

Eclipse華麗轉(zhuǎn)身之控件表格工廠(chǎng)

Table表格工廠(chǎng)

Eclipse華麗轉(zhuǎn)身之控件表格工廠(chǎng)

AbstractTableFactory和AbstractKTableFactory基本很相像,看下一它的類(lèi)關(guān)系圖如下:

Eclipse華麗轉(zhuǎn)身之控件表格工廠(chǎng)

在AbstractTableFactory中構(gòu)造表格的TableBuilder可以從上類(lèi)圖中看出來(lái),其實(shí)是就是封裝了eclipse自身的TableViewer,而不是AbstractKTableFactory中封裝的KTable,這是兩者之間本質(zhì)的區(qū)別。

IKTableColumn

說(shuō)完了表格工廠(chǎng)以后,我們回頭再來(lái)看之前表格工廠(chǎng)里提到的一個(gè)方法getCloumns(),在這個(gè)方法中返回的是IKTableColumn []的數(shù)組。上文圖中的表格列都是最基本的輸入框也就是KPropertyTableColumn,除此之外還有哪些Column的封裝呢?

Eclipse華麗轉(zhuǎn)身之控件表格工廠(chǎng)

通過(guò)此圖列舉的類(lèi)不難看出,表格Column的常用封裝都可以滿(mǎn)足了,無(wú)論是下拉框、復(fù)選框、還是帶有圖片的Column。那么下一篇我們就來(lái)詳細(xì)說(shuō)一下,表格工廠(chǎng)Column的封裝,除此之外還有更為復(fù)雜的Column封裝(如圖),以及其他幾個(gè)控件工廠(chǎng)的介紹。

Eclipse華麗轉(zhuǎn)身之控件表格工廠(chǎng)

 - end -  


<上一頁(yè)  1  2  3  
聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀(guān)點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

    掃碼關(guān)注公眾號(hào)
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)