我正在使用基于EMF的第三方域模型和GEF编辑器进行编辑的Eclipse RCP应用程序上。
GEF uses the MVC pattern,如果我不必使用特定的布局在编辑器 View 上绘制模型图就足够了。我正在使用的域模型不包含任何可视信息(这本身是个好主意),但是我希望能够为其Figure
中的EditPart
分配坐标。这将使我更容易计算图形在布局中的位置。
现在,我偶然发现了马丁·福勒(Martin Fowler)的Presentation Model Pattern,这似乎与我要找的东西差不多。我还发现了-old-ish-tutorial on RCP UI testing(仅德语),它在Eclipse RCP上下文中使用此模式。
现在我想知道:鉴于GEF明确使用MVC,通常可以在GEF上下文中使用PM吗? MVVM是替代品吗?
请注意,由于多种原因,我无法使用GMF。
非常感谢!
最佳答案
是的,这绝对有可能,您有两种选择。
首先-实现您自己的图形符号模型。我建议您使用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编辑器进行编码。
关于model-view-controller - 是否可以将演示模型模式用于具有EMF域模型的基于GEF的RCP应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11327984/