GEF:如何使用预定义的第三方模型将域信息与演示信息分开?

时间:2012-03-16 21:28:54

标签: model-view-controller view model eclipse-rcp eclipse-gef

我正在开发一个GEF View(后来将演变为GEF Editor),我正在GEF Book的帮助下这样做。

在本书的第8.1章(“GEF模型”)中,构建了一个模型,其中混合域信息表示信息 (其中)慷慨地承认):GenealogyElement是其余模型对象的abstract超类(但只有一个)。

GenealogyElement负责其子类(PersonMarriage)等的位置和位置更改,这些更改本身包含实际的域信息。顺便说一下,源代码可以在books website找到。

我不介意自己这样做(即使这可能是“糟糕的风格”),但我使用的是第三方模式,我无法改变,即我无法改变要扩展的班级ThirdPartyNode,例如ExampleElement

当然,一种选择是针对第三方编写我自己的模型,创建abstractExampleElement,并让新类ExampleNode扩展{{1} }和ExampleElement。我可能最终会这样做,但是真的想首先包含不同的可能性,因为创建另一个模型是很多打字,并且可能是多余的(不是吗?)。

我可以选择分离两种信息类型吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

我解决了类似的问题,创建了一个包含表示数据的不同模型(即:元素的位置)和对实际数据模型的引用。 您只需仔细考虑数据模型如何通知其对编辑器的更改。