基於easyui開發Web版Activiti流程定制器詳解(五)——Draw2d詳解(一)


背景:

       小弟工作已有十年有余,期間接觸了不少工作流產品,個人比較喜歡的還是JBPM,因為出自名門Jboss所以備受推崇,但是現在JBPM版本已經與自己當年使用的版本(3.X)大相徑庭,想升級也不太容易,后來得知JBPM的老大轉戰到了Activiti,處於對JBPM的喜歡所以研究了一下Activiti,發現Activiti不但保留下JBPM優秀的DNA而且還進行了優化,相比之前JBPM設計更簡單更清晰更容易掌握。

       三年前Activiti開始進入公司的正式項目中並且表現非常良好,但是它的Web版的定制器無法滿足我們的需求,可能是由於當初Activiti剛發布不久這方面的成型的產品比較少,所以沒有找到合適的替代產品,那該怎么辦呢?經過一番的思想斗爭,小弟決定先自己做一個Demo,如果可行則自己研發。

       經過研究其他工作流引擎的定制器,小弟發現找到一個能夠支持多瀏覽器的繪圖腳本庫很關鍵,所以開始在網上瘋狂的尋找,俗話說:黃天不負有心人,最后終於發現一個新大陸——Draw2d,但是接下來一個問題來了,這個腳本庫是收費的,怎么辦?誰叫咱們是做JAVA出身的呢!對免費的開源的情有獨鍾,后來在網上找到早期的版本是免費的,下載下來研究一番發現功能基本夠用,哈哈哈。。。。搞定!

       好了羅嗦的這么多,就是想引出本篇的主人公——Draw2d,至於它有多牛可以訪問官網了解一下,不過現在都是收費的而且比早期的版本功能強大很多。

      下面進入正題,詳細講解一下Draw2d,講解之前請注意以下內容都是基於Draw2d早期版本而且都是本人通過研讀代碼獲得(由於收費所以沒有文檔,只能靠自己),如果與現在版本有出入或者理解錯誤的地方請指正。

 

Draw2d類圖:

 

 以上是Draw2d中各種組件(如:窗口、對話框、菜單、圖形、線的起點和終點、注釋等等)類圖,這些組件在繪圖時經常用到,其中帶顏色的類是本設計器使用的組件(后面的章節會着重介紹)。

 

 

 

 以上是Draw2d中連接線類圖,設計器中的連接線就是Connection擴展而來,一個Connection實例一般由三個部分組成:Color、ConnectionDecorator和ConnectionRouter。

Color:定義連接線的顏色(RGB)

ConnectionRouter:定義連接線是折線還是曲線等

ConnectionDecorator:定義連接線是否有箭頭

后面會重點介紹,這里不在贅述。

 


 以上是Draw2d中畫布類圖,繪圖時在畫布上添加圖形(上面提到的類的實例)即可實現相應圖形的繪制。Draw2d中已經內置了WorkFlow類型的畫布這為定制器的開發帶來了很大的方便。



 這幅圖是Draw2d中指令類圖,Draw2d中使用了Command模式響應事件處理,方便實現自定義工具欄功能按鈕,如:設置顏色、設置文本功能等等。

 

除了以上類圖中展示的類,Draw2d中還有很多靜態工具方法和工具類(如:XML解析、序列化/反序列化、ArrayList、String等),這里不在過多的展開查看源代碼很容易理解,有問題的話可以給我留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM