我有一个模型,其中一个模型对象在显示的图表中多次表示。考虑以下模型:
- 有很多分区
- 每个分区都有 x SourcePorts 和 y DestinationPorts
- 每个 SourcePort 都可以连接到 DestinationPort
- 已选择一个分区
我想将其可视化,以使所选分区位于中心:
- 左侧显示所有可见的分区,并绘制了所有源端口
- 中心是选定的分区,其中所有端口均已绘制
- 右侧显示所有可见的分区,并绘制了所有目标端口
- 端口之间的所有连接均已绘制
- 用户可以操纵端口和连接(添加/删除端口和连接)
所以我的分区模型映射到多个图形。普通分区绘制两次(左侧一次,右侧一次),所选分区绘制三次。
如何在 GEF 中实现这一点?我应该为每个分区创建一个 EditPart 并让它为所有图形表示返回一个 IFigure 吗?或者绘制到屏幕上的每个实例都应该有它自己的 EditPart 吗?或者创建一个额外的模型(其中一个分区通过多个模型实例表示)是否有益?
最佳答案
我建议创建一个包含所有可视化数据的不同模型: 通过这种方式,您可以将数据模型的元素链接到可视化模型的多个元素实例,并以简单而优雅的方式解决您的问题。此外,您不会用可视化所需的所有数据(即图中元素的坐标)“污染”数据模型。
致敬
关于java - 单个模型元素在 UI 中多次表示...如何在 GEF 中实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4254662/