int halfHeight = rowHeight / 2;
int halfHeight = getRowHeight() / 2;
  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;  }