GEF學習筆記(一) eclipse的GEF相關項目說明
首先、感謝八進位的辛勤勞動和奉獻。這幾天開始對GEF發生興趣,八進位的GEF系列對我學這些的協助很大入門很快。自己也就順手把周末學習的東西記錄下來。協助後來學人。我會把這幾天所學陸續寫出希望大家支援。目前、正在為八進位例子發愁,我對NodePart增加了ResizeEditPolicy,但是不知為何滑鼠拖動時有個灰色的地區在隨著變化,但滑鼠釋放時,NodeFigure的尺寸不發生變化,是否是因為在refreshVisuals中固化了Size,代碼學習中….
eclipse的GEF相關項目說明。
各項目的簡介:
Draw2D:建立了2維的圖形庫(樹狀圖形組件Figure),負責顯示2維的圖形展示。
GEF: (Graphical Editing Framework)建立標準的MVC構架,代碼利用Draw2D作為自己的View部分,主要代碼實現複雜的樹狀(於Model分別對應) 的控制器。實現的架構具有很高的可複用等特性,例如:將圖形組件功能分解為多個EditPolicy,這樣使用者可以通過installEditPolicy介面來定製,以及擴充自己的某一功能特徵。
EMF: (Eclipse Modeling Framework)首先在一個輕量級項目以及項目初期開發,Model常常採用擁有Property的Java對象來簡單明了表示【即 Plain Old Java Objects (POJOs)】。EMF定義了一套Ecore元模型,使得Model具有易於維護、易於擴充、易於資料交換等特性的Model Framwork。因此、在實際中大型的項目中往往會採用Draw2D+GEF+EMF的方式來實現整體的MVC模式。例如:ROSE的最新版本 IBM.Rational.Software.Architect就是採用了這種構架。
GMF: (Graphical Modeling Framework )使用了GEF和EMF,建立了兩個之間的橋樑架構,同時實現了一些領域上的典範應用,如UML圖,甘特圖,腦圖等。(項目進行中中這些功能還未完備。可以用來參考以實現自己的一個標準的GEF+EMF的應用)。
各項目依賴關係:
如:使用者可以有以下幾種用法:
EMF: Model管理層
Draw2D: 二維圖形展現
Draw2D + GEF: 二維圖形的簡單編輯模組
Draw2D + GEF + EMF: 二維圖形的編輯模組
Draw2D + GEF + EMF + GMF:基於GMF提供的圖形編輯功能之上擴充