在进行GEF进行图形化设计的时候,经常会有这样的需求,即同一个层次中的不同外观的图形,在图形有重叠的时候,经常需要固定他的重叠的顺序,如 当矩形和椭圆的重叠的时候,椭圆必须是出于矩形节点的下方。如果在默认情况下,GEF中的 处理重叠问题是按照在这个层次中的childModel加入的先后顺序来处理的,先加入节点会被后加入的节点覆盖。从AbstractEditPart中的方法refreshChildren 和 AbstractGraphicalEditpart中的方法addChildVisual其实就可以看出来。一开始考虑问题太简单了,以为只需要重载refreshChildren 这个方法或者直接在视图的FreeeFormLayer中的addFigure方法进行处理,呵呵,确实是个幼稚的想法,没有很好的考虑到GEF其实已经很好的体现的MVC设计模式。原来一个很简单的方式就可以实现了,即在吧节点模型加入到当前的Diagram模型的时候,对加入的类型进行排序就可以了,把加入的椭圆置入diagram中的children模型的前端就行了。
GEF中,同一层次不同节点的重叠顺序的设置
最新推荐文章于 2025-08-22 08:37:14 发布