This uses a custom layout, TriangleLayout, to arrange the Parts according to the level each one is in.