public void layout() { List children = getSortChildren(); for (int i = 0; i < children.size(); i++) { ComponentPart ep = (ComponentPart) children.get(i); Rectangle layout = GraphLayoutManager.layout(ep); layout = newChildLocation(ep, layout); applyToFigure(ep, layout); } diagram.applyToModel(); }
private List getSortChildren() { List children = diagram.getChildren(); // List sortChildren = new ArrayList(children); // // Collections.sort(sortChildren, new Comparator() { // // public int compare(Object o1, Object o2) { // ComponentPart ep1 = (ComponentPart) o1; // ComponentPart ep2 = (ComponentPart) o2; // Rectangle bound1 = ep1.getFigure().getBounds(); // Rectangle bound2 = ep2.getFigure().getBounds(); // Rectangle bounds1M = ep1.getComponent().getBounds(); // Rectangle bounds2M = ep2.getComponent().getBounds(); // Rectangle epl1 = bound1.isEmpty() ? bounds1M : bound1; // Rectangle epl2 = bound2.isEmpty() ? bounds2M : bound2; // return epl1.y - epl2.y; // } // // }); return children; }
public ScreenGraphLayout(ContainerPart diagram) { this.diagram = diagram; last = diagram.getFigure().getBounds().getCopy().setSize(0, 0); PADDING.left = last.x + 16; }