protected Object computeBounds() {
      Envelope bounds = null;
      for (Iterator i = getChildBoundables().iterator(); i.hasNext(); ) {
        Boundable childBoundable = (Boundable) i.next();
        if (bounds == null) {
          bounds = new Envelope((Envelope)childBoundable.getBounds());
        }
        else {
          bounds.expandToInclude((Envelope)childBoundable.getBounds());
        }
      }
      return bounds;
    }