Model view controller GEF:如何使用预定义的第三方模型将域信息与表示信息分离?
我正在开发一个GEFModel view controller GEF:如何使用预定义的第三方模型将域信息与表示信息分离?,model-view-controller,view,model,eclipse-rcp,eclipse-gef,Model View Controller,View,Model,Eclipse Rcp,Eclipse Gef,我正在开发一个GEF视图(稍后将演变为GEF编辑器),我是在 在本书的第8.1章(“GEF模型”)中,构建了一个模型,该模型混合了领域信息和表示信息(这一点得到了广泛承认):generalogyElement是其余模型对象(但只有一个)的抽象超类 generalogyElement负责位置及其子类(Person,Marriage)等的位置更改,这些子类本身包括实际的域信息。顺便说一句,源代码可以在上找到 我不介意自己这样做(即使这可能是“糟糕的风格”),但我使用的是一个第三方模型,我不能修改它,
视图
(稍后将演变为GEF编辑器
),我是在
在本书的第8.1章(“GEF模型”)中,构建了一个模型,该模型混合了领域信息和表示信息(这一点得到了广泛承认):generalogyElement
是其余模型对象(但只有一个)的抽象
超类
generalogyElement
负责位置及其子类(Person
,Marriage
)等的位置更改,这些子类本身包括实际的域信息。顺便说一句,源代码可以在上找到
我不介意自己这样做(即使这可能是“糟糕的风格”),但我使用的是一个第三方模型,我不能修改它,也就是说,我不能将类ThirdPartyNode
更改为扩展,比如说,examplelement
一种选择当然是针对第三方编写我自己的模型,创建一个抽象
类ExampleElement
,并让一个新类ExampleNode
扩展ExampleElement
和ThirdPartyNode
。我可能会这样做,但我真的希望首先包括不同的可能性,因为创建另一个模型需要大量的输入,而且可能是多余的(不是吗?)
我如何区分这两种信息类型
提前谢谢 我解决了一个类似的问题,创建了一个包含表示数据(即:元素的位置)和对实际数据模型的引用的不同模型。
您只需仔细考虑数据模型如何通知编辑器的更改。 谢谢!你能给我一个创建这样一个模型的起点吗?一些基本代码或类/方法示例?那太好了。你的回答证实了我关于解决这个问题的基本想法,但是——特别是在“参考实际数据模型”的情况下——我不知道如何开始。你可以看看ecore模型编辑器:你可以在ecore工具库中找到它