paintVerticalPartOfLeg(g, clip, insets, currentVisiblePath);
  public void paint(Graphics g, JComponent c)  {    JTree tree = (JTree) c;      updateCurrentVisiblePath();    Rectangle clip = g.getClipBounds();    Insets insets = tree.getInsets();    if (clip != null && treeModel != null && currentVisiblePath != null)      {        int startIndex = tree.getClosestRowForLocation(clip.x, clip.y);        int endIndex = tree.getClosestRowForLocation(clip.x + clip.width,                                                     clip.y + clip.height);        paintVerticalPartOfLeg(g, clip, insets, currentVisiblePath);        for (int i = startIndex; i <= endIndex; i++)          {            Object curr = currentVisiblePath.getPathComponent(i);            boolean isLeaf = treeModel.isLeaf(curr);            TreePath path = new TreePath(getPathToRoot(curr, 0));            boolean isExpanded = tree.isExpanded(path);            Rectangle bounds = getPathBounds(tree, path);            paintHorizontalPartOfLeg(g, clip, insets, bounds, path, i,                                     isExpanded, false, isLeaf);            paintRow(g, clip, insets, bounds, path, i, isExpanded, false,                     isLeaf);          }      }  }