花了三周時(shí)間,給公司寫了一個(gè)基于Flex的web流程設(shè)計(jì)器原型系統(tǒng)。既然是原型系統(tǒng),肯定有很多細(xì)微之處不完善的,但作為未來(lái)產(chǎn)品組件一部分,其預(yù)研和構(gòu)架部分,還是拿得出手的。
Flex本身在圖形化方面提供了很良好的支持,但是要想實(shí)現(xiàn)Model與視圖的分離、Command的處理等基礎(chǔ)事情,這個(gè)就無(wú)法與Eclipse GEF比了。
于是首先不得不模擬GEF,在底層提供一套Model-EditPart的MVC構(gòu)架,以及Command Framework框架。這兩個(gè)基本框架一搭建,就可以很好的解決“Model”、“View”、“Action”之間的響應(yīng)和處理,以及圖形的顯示和渲染。
改天有時(shí)間,把這套構(gòu)架的思路和實(shí)現(xiàn),與大家分享一下,先show一下圖片吧:
拖拽本身其實(shí)并不復(fù)雜,主要如何解決Model與View之間的映射和響應(yīng),這個(gè)是最主要關(guān)鍵。同時(shí),在Pallete中的Activity圖標(biāo)和類型是要能夠很容易擴(kuò)展的。
所有的Model都需要實(shí)現(xiàn)toXML和fromXML接口,這樣就可以很容易實(shí)現(xiàn)對(duì)象與xml的映射。當(dāng)然,Model本身也需要引入一些Listener機(jī)制,讓視圖和其他編輯組件,可以在Model更改后響應(yīng)變化。
對(duì)于屬性Panel,原本是設(shè)計(jì)成“動(dòng)態(tài)配置化加載”的,沒(méi)想到,F(xiàn)lex本身對(duì)動(dòng)態(tài)加載Class竟然支持的不理想,造成這一塊沒(méi)法良好的實(shí)現(xiàn),寒。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
