问题现象:
当拖动一个图形出Editor的左侧或者上侧边界的时候,会拖出边界,但是并没有出现滚动条,这样再想看图形的全貌就必须再把图形拖进来。
这个问题很早就遇到了过了,当时没有注意,随便查了下资料,也没搞懂,反正不是什么大毛病,就没在管它了。
最近又看到了这个问题,于是仔细看了下代码,和GEF例子里的代码比较了一下,发现少了下面的语句:
当拖动一个图形出Editor的左侧或者上侧边界的时候,会拖出边界,但是并没有出现滚动条,这样再想看图形的全貌就必须再把图形拖进来。
这个问题很早就遇到了过了,当时没有注意,随便查了下资料,也没搞懂,反正不是什么大毛病,就没在管它了。
最近又看到了这个问题,于是仔细看了下代码,和GEF例子里的代码比较了一下,发现少了下面的语句:
protected
void
configureGraphicalViewer()
{
super.configureGraphicalViewer();
viewer = this.getGraphicalViewer();
viewer.setEditPartFactory(new DBPartFactory());
//下面这句用于实现在向左,上拖动模型出Editor边界的时候,自动出现滚动条。同时需要保证Contentsmodel的figure用的是FreefromLayout。同时,Figure还有一定的要求,目前已知freeformLayer可以,Layer不可以 。
viewer.setRootEditPart(new ScalableFreeformRootEditPart()); //少的就是这句了
}
super.configureGraphicalViewer();
viewer = this.getGraphicalViewer();
viewer.setEditPartFactory(new DBPartFactory());
//下面这句用于实现在向左,上拖动模型出Editor边界的时候,自动出现滚动条。同时需要保证Contentsmodel的figure用的是FreefromLayout。同时,Figure还有一定的要求,目前已知freeformLayer可以,Layer不可以 。
viewer.setRootEditPart(new ScalableFreeformRootEditPart()); //少的就是这句了
}
还要注意ContentsModel对应的Figure的LayoutManager,必须是这个Freeformlayout,不然的话,当把图形脱出边界的时候会出现像死循环一样的情况,就是滚动条一直在自动滚动,一直到程序死掉。
就这样了,大家遇到相同的情况可以参考下。
就这样了,大家遇到相同的情况可以参考下。