您的位置:首页 > 编程语言 > PHP开发

使用GEF ScalableFreeformRootEditPart的注意事项

2015-05-21 17:14 477 查看
我在学习GEF过程中,实例程序默认使用的是ScalableRootEditPart, GraphicalViewer默认提供的RootEditPart也是.具体的代码实现在org.eclipse.gef.ui.parts.GraphicalViewerImpl



/**
* Creates the default root editpart. Called during construction.
*/
protected void createDefaultRoot() {
setRootEditPart(new ScalableRootEditPart());
}


如果你仅仅是将ScalableRootEditPart()改为ScalableFreeformRootEditPart,会出现primary layer主层隐藏的情况.

需要进行额外的修改.

将ContentEditPart(包含Model的ContentModel对应的EditPart)中的createFigure中生成的函数.

@Override
protected IFigure createFigure()
{
FreeformLayer layer= new FreeformLayer();
layer.setLayoutManager(new FreeformLayout());
return layer;
}


1.返回的layer 的类型是FreeformLayer

2.layoutManager是FreeformLayout

用子类应该也行

修改1, 可以使得primary layer展现 但当拖动model到左侧/上侧时,就会陷入死循环

修改2. 解决死循环问题

参考 :/article/8450234.html

第一次写博客 希望能够帮助遇到类似情况的人.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: