2006-09-05

布局

GEF的布局全仰仗org.eclipse.draw2d下的布局类,gef有种挺迷惑人的LayoutEditPolicy,其实它跟布局没关联,是用来产生command的:
public Command getCommand();
像什么getCreateCommand()、getDeleteCommand()等都是由它统一送出去的。
如果硬要说有什么关系的话,那么就是command所接收的context是LayoutEditPolicy从Layout等地方获取的。Layout准确得应该叫做是LayoutManager,有个核心方法大概表达的这个意思:
public void layout(IFigure parent)
{
List children = parent.getChildren();
for(IFigure item: children)item.setBounds(/**new Rectangle(...)*/);
}
它会管理其属下的Figure,当放一个元素到Figure pane的时候会自动调用pane的layout方法来重新布局。

No comments: