GEF(Graphical Editor Framework) Eclipse項目入門系列(1)---概述

來源:互聯網
上載者:User

GEF的英文全稱是Graphical Editor Framework。GEF的中文書籍在市面上面基本沒有的。但是很多的Eclipse的二次開發項目可能卻需要用到Eclipse的GEF的相關技術。GEF是一個Eclipse的項目之一,著名的XMind軟體(http://www.xmind.net/)就是基於GEF開發的,如下圖所示意,做出來的介面非常的漂亮和靈活,另外,WindowBuilder工具(http://www.eclipse.org/wb)也是基GEF開發的,此外Apache的一個BPEL的一個項目也是基於GEF開發的。上面只是其中三個例子,類似的其他的例子非常的多,筆者就不在一一列舉。

基於GEF的 XMind的工作空間的效果展示



既然現在我們已經知道了GEF能做什麼了,那麼GEF的架構是如何組成的呢。換句話說,學習GEF需要學習和瞭解哪些技術呢。各位看官,且聽筆者慢慢給你娓娓道來。

GEF Eclipse項目主要由三大部門組成:Draw2D, Zest 和 GEF。 讀者看到這可能就會感到奇怪了,為什麼GEF Eclipse項目還包括GEF自身呢。其實很好理解,就是用GEF這一部分代替整個的GEF Eclipse項目,就好比,我們有的時候,用北京來代替中國一樣,只是一個名稱罷了。下面分別介紹下面這個三個組成部分:

(1) Draw2D

Draw2D是一個輕量級的畫圖架構。所謂的輕量級是相對於重量級而言的,輕量級是指這些被Draw2D繪製的圖形(figure)是有純Java對象繪製出來的,和具體的作業系統資源沒有直接的聯絡。而重量級意思就是每一個SWT的widgets(組件)都是和具體作業系統資源相關的API。廢話少說,那麼Draw2D主要的功能是什麼呢。說白了,Draw2D主要用來顯示圖形資訊,所以的Draw2D圖形都是在SWT的畫布(canvas)裡面顯示的,需要注意的是,其沒有提供互動的行為。

(2) Zest 

Zest 是建立在Draw2D架構之上的一個架構。其提供了類似於Jface的功能(Jface相對於SWT來說)。使用Zest 能非常容易的把一個Java的模型和Draw2D的圖形綁定在一起。

(3)GEF 

GEF 也是建立在Draw2D架構之上的一個架構。提供了非常非常豐富的API,能夠讓使用者和圖形介面進行互動,比如拖拽畫板(palette),列印,對圖形介面的實物操作(比如,圖形畫錯了,取消或者復原)等。

總之,下面一幅圖,代表了作者的千言萬語。


下面是一些其他參考文章:

http://www.cnblogs.com/bjzhanghao/archive/2005/02/09/103595.html
http://www.eclipse.org/articles/Article-GEF-Draw2d/GEF-Draw2d.html
http://wiki.eclipse.org/GEF_Description
http://wiki.eclipse.org/GEF_Description2

筆者的後續文章,將分別一一介紹Draw2D,Zest和GEF的相關技術,並結合一些實際的例子,敬請期待。。。。。。。




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.