1. 程式人生 > >寫了一個Flex的web流程設計器原型系統

寫了一個Flex的web流程設計器原型系統


花了三週時間,給公司寫了一個基於Flex的web流程設計器原型系統。既然是原型系統,肯定有很多細微之處不完善的,但作為未來產品元件一部分,其預研和構架部分,還是拿得出手的。

Flex本身在圖形化方面提供了很良好的支援,但是要想實現Model與檢視的分離、Command的處理等基礎事情,這個就無法與Eclipse GEF比了。

於是首先不得不模擬GEF,在底層提供一套Model-EditPart的MVC構架,以及Command Framework框架。這兩個基本框架一搭建,就可以很好的解決“Model”、“View”、“Action”之間的響應和處理,以及圖形的顯示和渲染。

改天有時間,把這套構架的思路和實現,與大家分享一下,先show一下圖片吧:



拖拽本身其實並不複雜,主要如何解決Model與View之間的對映和響應,這個是最主要關鍵。同時,在Pallete中的Activity圖示和型別是要能夠很容易擴充套件的。



所有的Model都需要實現toXML和fromXML介面,這樣就可以很容易實現物件與xml的對映。當然,Model本身也需要引入一些Listener機制,讓檢視和其他編輯元件,可以在Model更改後響應變化。



對於屬性Panel,原本是設計成“動態配置化載入”的,沒想到,Flex本身對動態載入Class竟然支援的不理想,造成這一塊沒法良好的實現,寒。