g.drawLine(indentation + halfWidth,        descent + halfHeight, indentation + rightChildIndent, descent + halfHeight);
heightOfLine = descent + halfHeight; g.drawLine(indentation + halfWidth, heightOfLine, indentation + rightChildIndent, heightOfLine);
	private 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 + getRowHeight())      return descent;		int halfHeight = getRowHeight() / 2;    int halfWidth = rightChildIndent / 2;    int y0 = descent + halfHeight;            if (mod.isLeaf(curr))      {        paintLeaf(g, indentation, descent, tree, curr);			descent += getRowHeight();		} else      {        if (depth > 0 || tree.isRootVisible())          {            paintNonLeaf(g, indentation, descent, tree, curr);				descent += getRowHeight();            y0 += halfHeight;          }        int max = mod.getChildCount(curr);        for (int i = 0; i < max; ++i)          {				g.setColor(getHashColor());            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(getHashColor());			g					.drawLine(indentation + halfWidth, y0, indentation							+ halfWidth, y1);      }    return descent;  }