model-view-controller - 是否可以将演示模型模式用于具有EMF域模型的基于GEF的RCP应用程序?

标签 model-view-controller mvvm eclipse-emf eclipse-gef presentation-model

我正在使用基于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/

相关文章:

Php Custom Mvc - 如何检查函数是否获取参数?

model-view-controller - 403 - 禁止 : Access is denied. ASP.NET Core MVC IIS 客户端证书 SSL

wpf - 在 MVVM 中的查看模式和编辑模式之间切换?

安卓架构组件 : How is LiveData in the repository observed by a ViewModel

eclipse-emf - 如何创建对现有模型对象的引用?

java - 将基于 XML 的域模型描述转换为类似 EMF 的域模型

java - .Net 中的 Struts、JSF 等 MVC 框架

spring - 在具有共享服务的单个应用程序中使用 Apache cxf 和 spring mvc

java - 单例与依赖注入(inject)

url - 将 java.net.URI 转换为 org.eclipse.emf.common.util.URI