A ContainerBlock maintains a list of child Blocks.
A list of Views of the ContainerBlock is maintained, so that they can be notified when a child is added during loading.
A ContainerView maintains a list of child Views.
Much complexity is caused by the need to update this list as children are added, or as children are added to children.
Much further complexity is caused by the need to handle children which contain outlines which may expand and contract.
Still more complexity is caused by the fact that some children may contain java.awt.Components, which need a separate mechanism for finding out where they are located on the screen.