我正在开发一个GEF View
(后来将演变为GEF Editor
),我正在GEF Book的帮助下这样做。
在本书的第8.1章(“GEF模型”)中,构建了一个模型,其中混合域信息和表示信息 (其中)慷慨地承认):GenealogyElement
是其余模型对象的abstract
超类(但只有一个)。
GenealogyElement
负责其子类(Person
,Marriage
)等的位置和位置更改,这些更改本身包含实际的域信息。顺便说一下,源代码可以在books website找到。
我不介意自己这样做(即使这可能是“糟糕的风格”),但我使用的是第三方模式,我无法改变,即我无法改变要扩展的班级ThirdPartyNode
,例如ExampleElement
。
当然,一种选择是针对第三方编写我自己的模型,创建abstract
类ExampleElement
,并让新类ExampleNode
扩展{{1} }和ExampleElement
。我可能最终会这样做,但是真的想首先包含不同的可能性,因为创建另一个模型是很多打字,并且可能是多余的(不是吗?)。
我可以选择分离两种信息类型吗?
提前致谢!
答案 0 :(得分:1)
我解决了类似的问题,创建了一个包含表示数据的不同模型(即:元素的位置)和对实际数据模型的引用。 您只需仔细考虑数据模型如何通知其对编辑器的更改。