protected int paintRecursive(Graphics g, int indentation, int descent, int childNumber, int depth, JTree tree, TreeModel mod, Object curr)
private int paintRecursive(Graphics g, int indentation, int descent, int childNumber, int depth, JTree tree, TreeModel mod, Object curr)
  protected int paintRecursive(Graphics g,                                int indentation,                               int descent,                               int childNumber,                               int depth,                               JTree tree,                               TreeModel mod,                                Object curr)  {    Rectangle clip = g.getClipBounds();    if (indentation > clip.x + clip.width + rightChildIndent ||        descent > clip.y + clip.height + rowHeight)      return descent;    int halfHeight = rowHeight / 2;    int halfWidth = rightChildIndent / 2;    int y0 = descent + halfHeight;            if (mod.isLeaf(curr))      {        paintLeaf(g, indentation, descent, tree, curr);        descent += rowHeight;      }    else      {        if (depth > 0 || tree.isRootVisible())          {            paintNonLeaf(g, indentation, descent, tree, curr);            descent += rowHeight;            y0 += halfHeight;          }        int max = mod.getChildCount(curr);        for (int i = 0; i < max; ++i)          {            g.setColor(hashColor);            g.drawLine(indentation + halfWidth,        descent + halfHeight,                        indentation + rightChildIndent, descent + halfHeight);            descent = paintRecursive(g,                                      indentation + rightChildIndent, descent,                                     i, depth+1,                                     tree, mod, mod.getChild(curr, i));          }      }    int y1 = descent - halfHeight;    if (y0 != y1)      {        g.setColor(hashColor);        g.drawLine(indentation + halfWidth, y0,                    indentation + halfWidth, y1);      }    return descent;  }