else current = current.pathByAddingChild(next);
  void updateCurrentVisiblePath()  {    Object next = treeModel.getRoot();    Rectangle bounds = getCellBounds(0, 0, next);        // If root is not a valid size to be visible, or is    // not visible and the tree is expanded, then the next node acts    // as the root    if ((bounds.width == 0 && bounds.height == 0) || (!isRootVisible()         && tree.isExpanded(new TreePath(next))))      next = getNextNode(next);    TreePath current = null;    while (next != null)      {        if (current != null)          current = current.pathByAddingChild(next);        else          current = new TreePath(next);                // FIXME: Inefficent to have 2 loops when the         // tree is very large. Find a better way.        do          next = getNextNode(next);        while (next != null               && !tree.isVisible(new TreePath(getPathToRoot(next, 0))));      }    currentVisiblePath = current;  }