docs: private void recursiveDump(Area a, int level, java.io.PrintWriter p)
      {
          String stag = "<area"
                          + " id=\"x" + (idcnt++) + "\""
                          + " x1=\"" + a.getX1() + "\"" 
                          + " y1=\"" + a.getY1() + "\"" 
                          + " x2=\"" + a.getX2() + "\"" 
                          + " y2=\"" + a.getY2() + "\"" 
                          + " background=\"" + colorString(a.getBackgroundColor()) + "\"" 
                          + " fontsize=\"" + a.getFontSize() + "\"" 
                          + " fontweight=\"" + a.getFontWeight() + "\"" 
                          + " fontstyle=\"" + a.getFontStyle() + "\""
                          + " tags=\"" + tagString(a.getTags().keySet()) + "\""
                          + ">";
  
          String etag = "</area>";
          
          if (a.getChildCount() > 0)
          {
              indent(level, p);
              p.println(stag);
              
              for (int i = 0; i < a.getChildCount(); i++)
                  recursiveDump(a.getChildAt(i), level+1, p);
              
              indent(level, p);
              p.println(etag);
          }
          else
          {
              indent(level, p);
              p.println(stag);
              dumpBoxes(a, p, level+1);
              indent(level, p);
              p.println(etag);
          }
          
      }