1

我正在开发一个 Eclipse RCP 应用程序,使用基于 EMF 的第三方域模型和 GEF 编辑器进行编辑。

GEF使用 MVC 模式,如果我不必使用特定布局在编辑器视图上绘制模型图,这将是公平的。我正在使用的域模型不包含任何视觉信息(这本身就是一个好主意),但我希望能够Figure在他们EditPart的 s 中为 s 分配坐标。这将使我更容易计算图形在布局中的位置。

现在我偶然发现了 Martin Fowler 的Presentation Model Pattern,这似乎正是我正在寻找的东西。我还找到了一个关于 RCP UI 测试(仅限德语​​)的老式教程,它在 Eclipse RCP 上下文中使用了这种模式。

现在我想知道:看到 GEF 明确使用 MVC,通常是否可以在 GEF 上下文中使用 PM?MVVM 是替代方案吗?

请注意,出于多种原因,我无法使用 GMF。

非常感谢!

4

1 回答 1

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,它将为您处理所有命令、撤消和重做。所以,就像对你之前的问题的评论一样,我建议你使用 GMF。

哦,对不起,我没有注意到你写的关于 GMF 的内容。

然后,第二个选项是让图形模型从域模型继承,然后针对这个模型编写 GEF 编辑器。

于 2012-07-04T14:41:25.377 回答