介紹
前面也簡單的介紹了一下插件開發的相關知識,下面主要就介紹一下GEF的相關使用。因爲最近使用到編輯器這部分的操做,所以就跳過其餘的內容,先介紹下GEF的相關知識。
什麼是GEF?
GEF的英文全稱是Graphical Editing Framework,也就是圖形化編輯框架。它幫助咱們輕鬆的建立一些模型,並提供富圖形化的特性。有一張圖已經不知道被翻過踩過多少遍了,可是真的就是這張圖表達了GEF標準的MVC架構思想。
能夠看到,上面最顯眼的三個部分就是Model,Controller以及View.這三個部分,也夠成了GEF插件開發的核心。
在GEF中,每個模型都有本身的Editpart,也就是Controller,也有本身的Model,這個Model一般包含了模型的屬性以及相關的信息。而Figure則是本身的一種展示方式。
好比經典的兩種圖形,一種是用於模型的建立,一種用鏈接模型的連線。
而每個模型的Editpart都會綁定一些動做,這些動做被放在EditPolicy中,也就是一些動做策略裏面。當有屬性事件發生時,就會觸發這個策略對應的操做,從而修改模型的屬性。模型屬性會觸發一些監聽事件,致使圖形Figure的重繪。
另一張圖,就重繪的響應機制:
這裏就不得不提Draw2D了。Draw2D是一種基於SWT的2D繪圖框架,它有效的幫助咱們完成了圖形可視化的工做。
這裏面的LWS也就是Draw2D的核心,每次圖形的響應時間都會傳輸到這裏,經過分發器找到相應的圖形,進行響應。
在GEF能夠編輯接近全部的圖形,在你的模型中,你既能夠簡單的修改模型的特性,也能夠進行一些複雜的操做。全部的修改操做都符合通常性的操做習慣,好比拖拽,刪除,複製,粘貼,或者從菜單或工具欄上觸發。
學習資源
第一種就是GEF自己帶有的一些的學習文檔以及樣例。
GEF SDK在Eclipse的Help裏面提供了在線幫助文檔。經過查看Draw2D Developers Guide,和GEF Developer Guide能夠查閱一些基本的使用指南。
另外呢,在 http://www.eclipse.org/gef上也有不少GEF的相關資料,好比一些代碼,樣例以及文檔。
適合GEF的應用程序
GEF能夠開發不少種應用程序,幾乎對於每一種圖形都沒有限制。最多見的程序就是建模工具了,好比企業流程、應用模型、以及一些UI界面。
也有不少用於設計報表、網站,表單文檔。也可使用圖形化編輯器來修改一些代碼的樣例,配置,服務器等等。、
有不少優秀的開發產品,好比
MDE for Struts
爲Struts開發的基於Eclipse的插件設計器,經過模型能夠建立一些JSP,java , xml ,ant腳本等等文件,也能夠經過模型生成一些樣例代碼
Eclipse Desginer
這個工具是基於SWT的設計工具,可以幫助咱們可視化的完成一些RCP應用程序UI部分的編輯