for (int i = 0; i < blocks.size(); i++) {
                Block block = (Block) blocks.get(i);
                sizes[i] = block.arrange(g2, RectangleConstraint.NONE);
                width = width + sizes[i].getWidth();
                maxHeight = Math.max(sizes[i].height, maxHeight);
                block.setBounds(
                    new Rectangle2D.Double(
                        x, 0.0, sizes[i].width, sizes[i].height
                    )
                );
                x = x + sizes[i].width + this.horizontalGap;