Eclipse華麗轉(zhuǎn)身之控件表格工廠
Eclipse插件開(kāi)發(fā)
書歸正傳,接演前文~(Eclipse插件開(kāi)發(fā)之簡(jiǎn)單控件封裝——那些年冗長(zhǎng)的裹腳布)上回我們介紹了對(duì)象編輯器的封裝,對(duì)象編輯器之外就是控件工廠的封裝,而在眾多類型的控件工廠中,想必大家最關(guān)心的,莫過(guò)于對(duì)槽點(diǎn)滿滿的原生Tree/Table的封裝。這回我們便好好來(lái)說(shuō)道說(shuō)道~
在此之前,我們還是要簡(jiǎn)單介紹一下控件工廠。
控件工廠
根據(jù)不同的UI需求,我們框架封裝了許多控件工廠來(lái)完成靈活的應(yīng)用需求。
IControlFactory控件工廠,因?yàn)橛幸恍┛丶沁\(yùn)行時(shí)才會(huì)被創(chuàng)建的,而且要?jiǎng)?chuàng)建的控件也有可能不確定,所以提供一個(gè)這樣的工廠用來(lái)創(chuàng)建控件,下圖為它的類結(jié)構(gòu)圖。
AbstractControlFactory是IControlFactory的基類。這個(gè)基類在實(shí)現(xiàn)IValueContaier的同時(shí)還實(shí)現(xiàn)了IValueChangeListener和IValidateListener這樣主要是通過(guò)Proxy的模式,只在內(nèi)部的控件中添加自己作為L(zhǎng)istener。
表格工廠
我們知道,無(wú)論是SWT的Table還是JFace的TableViewer/TreeViewer,都不能滿。我們廣泛需求,比如修改數(shù)據(jù)。而在我們開(kāi)發(fā)過(guò)程中,表格往往是個(gè)非常普遍多次使用的控件,所以這里就要引入我們的表格工廠的封裝了。那么,我們先簡(jiǎn)述以下表格工廠相關(guān)的幾個(gè)概念(構(gòu)建器、數(shù)據(jù)轉(zhuǎn)換器、備忘錄)。
表格構(gòu)建器Builder分為KTableBuilder和KTreeBuilder,其實(shí)他們是使用了第三方表格組件KTable來(lái)進(jìn)行構(gòu)造表格。
先來(lái)說(shuō)一下KTable表格工廠的構(gòu)建器KTableBuilder,下圖為Builder的關(guān)系類圖;
當(dāng)需要使用一個(gè)KTableBuilder的時(shí)候我們一般直接new一個(gè)對(duì)象出來(lái),可以看下它三種構(gòu)造函數(shù)中帶參數(shù)的一種;public KTableBuilder(KTable r_KTable, IKTableColumn[] r_Columns, ITableDataProvider r_TableDataProvider, IAdaptable r_Adaptable) { this.setTableColumns(r_Columns); this.setDataProvider(r_TableDataProvider); this.build(r_KTable,r_Adaptable); }其中的ITableDataProvider就是數(shù)據(jù)提供者接口,為表格提供數(shù)據(jù)和排序。然后表格構(gòu)建器通過(guò)doBuild方法來(lái)繪制表格。數(shù)據(jù)轉(zhuǎn)換器Translator數(shù)據(jù)轉(zhuǎn)換器,可以將數(shù)據(jù)轉(zhuǎn)換成復(fù)雜控件使用的數(shù)據(jù),如表格使用的列表數(shù)據(jù);舉一個(gè)例子來(lái)理解什么是Translator,例如Stuido的邏輯流文件(*.bizx文件),用文本編輯器開(kāi)打后可以看到圖形化編輯器中的圖元的信息都是使用XML規(guī)范來(lái)描述的,比如一個(gè)運(yùn)算邏輯圖元屬性如下圖;
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
即日-10.29立即報(bào)名>> 2024德州儀器嵌入式技術(shù)創(chuàng)新發(fā)展研討會(huì)
-
10月31日立即下載>> 【限時(shí)免費(fèi)下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
-
即日-11.13立即報(bào)名>>> 【在線會(huì)議】多物理場(chǎng)仿真助跑新能源汽車
-
11月14日立即報(bào)名>> 2024工程師系列—工業(yè)電子技術(shù)在線會(huì)議
-
12月19日立即報(bào)名>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
即日-12.26火熱報(bào)名中>> OFweek2024中國(guó)智造CIO在線峰會(huì)
推薦專題
- 1 Intel宣布40年來(lái)最重大轉(zhuǎn)型:年底前裁員15000人、拋掉2/3房產(chǎn)
- 2 因美封殺TikTok,字節(jié)股價(jià)骨折!估值僅Meta1/5
- 3 宏山激光重磅發(fā)布行業(yè)解決方案,助力智能制造產(chǎn)業(yè)新飛躍
- 4 國(guó)產(chǎn)AI芯片公司破產(chǎn)!白菜價(jià)拍賣
- 5 具身智能火了,但規(guī)模落地還需時(shí)間
- 6 國(guó)產(chǎn)英偉達(dá)們,抓緊沖刺A股
- 7 三次錯(cuò)失風(fēng)口!OpenAI前員工殺回AI編程賽道,老東家捧金相助
- 8 英偉達(dá)的麻煩在后頭?
- 9 將“網(wǎng)紅”變成“商品”,AI“爆改”實(shí)力拉滿
- 10 智慧貨架管理引領(lǐng)零售新風(fēng)尚
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市