当前位置: 代码迷 >> Eclipse >> 关于Eclipse GEF 节点覆盖的有关问题
  详细解决方案

关于Eclipse GEF 节点覆盖的有关问题

热度:49   发布时间:2016-04-23 02:01:05.0
关于Eclipse GEF 节点覆盖的问题
GEF编辑器有这么多的layer
Grid Layer: 网格层,用来显示一个网格,帮助你定位图形 
Primary Layer: 主层,大部分的图形都放置在这个层 
Connection Layer: 连接层,连线都放置在这一层 
等等~~~


问题是:
如果画板中有两个的paletteEntry  Node1和Node2
先拖到编辑器中的Node1对象(图形或者图片),会被后生成的Node2会覆盖掉,
我想问下,如何使创建的Node2对象一直位于Node1对象的下面,不管创建的顺序。就像连接线一样,始终不会被节点覆盖。

如果是在Primary Layer下面加一个Layer的话,如何控制Node2创建在这个Layer?

求教高手~~指点一二~
------最佳解决方案--------------------
有个比较简单的方案,如果按照一般的Editpart的实现,Figure的绘制就是按照Model的顺序进行的,这样你只要在创建模型的地方进行一些修改,如果是Node2的模型,在list里始终都放到前面就行了;
比如一般的CreateCommand仅仅简单地这样写的:

public void execute() {
newShape.setLocation(bounds.getLocation());
Dimension size = bounds.getSize();
if (size.width > 0 && size.height > 0)
newShape.setSize(size);
parent.addChild(newShape);
}

默认的addChild()这个直接加到最后了,你可以这里进行一些计算,传一个index进去
------其他解决方案--------------------
引用:
有个比较简单的方案,如果按照一般的Editpart的实现,Figure的绘制就是按照Model的顺序进行的,这样你只要在创建模型的地方进行一些修改,如果是Node2的模型,在list里始终都放到前面就行了;
比如一般的CreateCommand仅仅简单地这样写的:
Java code?1234567public void execute() {    newShape……


这个方法可以用,谢谢啦
------其他解决方案--------------------
null
  相关解决方案