1

我正在使用基於EMF的第三方域模型以及GEF編輯器進行編輯的eclipse RCP應用程序。對於具有EMF域模型的基於GEF的RCP應用程序,是否可以使用演示模型模式?

GEF uses the MVC pattern,如果我不必在編輯器視圖中使用特定的佈局繪製模型圖,那將是公平的。我使用的領域模型不包含任何視覺信息(這本身就是一個好主意),但我希望能夠在他們的EditPart s中爲座標Figure指定座標。這將使我更容易計算佈局中圖形的位置。

現在我偶然發現了Martin Fowler的Presentation Model Pattern,這看起來就像我正在尋找的東西。我還發現了一個 - old-ish - tutorial on RCP UI testing(僅限德語​​),它在eclipse RCP上下文中使用這種模式。

現在我想知道:是否通常可以在GEF上下文中使用PM,看到GEF明確使用MVC? MVVM是另一種選擇嗎?

請注意,由於多種原因,我無法使用GMF。

非常感謝!

回答

1

是的,這絕對有可能,你有兩種選擇。

首先 - 實現您自己的圖形符號模型。我會用你喜歡appreach提示:

modelElement : ModelElement 1..1 
x   : int   1..1 
y   : int   1..1 

然後在EditingDomain裝載兩個模型(EMF將解決你跨文檔引用),創建所有缺失的圖形符號元素等。

另一種選擇是使用GMF或Graphiti。他們有你正在尋找的模型,這將大大簡化你的生活。以學習另一個怪物框架爲代價(在GMF的情況下)。 Graphiti很容易(相對於GEF/GMF),但IMO不那麼靈活。 GMF,順便說一句,會給你一個'免費的'TransactionalEditingDomain,它將處理所有的命令,撤消和重做。所以,正如在你的評論previous question,我會建議你使用GMF。

哦,對不起,我沒有注意到你寫的關於GMF的內容。

然後,第二個選項是讓圖形模型從域模型繼承,然後將GEF編輯器編碼爲此模型。

相關問題