/** * Returns an iterator to iterate in * Z-order front to back over the children. */ @Override public java.util.List<Figure> getFiguresFrontToBack() { ensureSorted(); return new ReversedList<Figure>(getChildren()); }
@Override public void draw(Graphics2D g) { synchronized (getLock()) { ensureSorted(); ArrayList<Figure> toDraw = new ArrayList<Figure>(getChildren().size()); Rectangle clipRect = g.getClipBounds(); for (Figure f : getChildren()) { if (f.getDrawingArea().intersects(clipRect)) { toDraw.add(f); } } draw(g, toDraw); } }