if (!tree.isRootVisible() && tree.isExpanded(new TreePath(mod.getRoot()))) return new Point(x + ((getLevel(node)) * rightChildIndent), y);  return new Point(x + ((getLevel(node) + 1) * rightChildIndent), y);
int level = getLevel(node); if (level == 0) return new Point(x, y); if (!tree.isRootVisible() && tree.isExpanded(new TreePath(mod.getRoot()))) return new Point(x + ((level - 1) * rightChildIndent), y); return new Point(x + (level * rightChildIndent), y);
  Point getCellLocation(int x, int y, JTree tree, TreeModel mod, Object node,                        Object startNode)  {    int rowHeight = getRowHeight();    if (startNode == null || startNode.equals(node))      {        if (!tree.isRootVisible()            && tree.isExpanded(new TreePath(mod.getRoot())))          return new Point(x + ((getLevel(node)) * rightChildIndent), y);        return new Point(x + ((getLevel(node) + 1) * rightChildIndent), y);      }    if (!mod.isLeaf(startNode)        && tree.isExpanded(new TreePath(getPathToRoot(startNode, 0)))        && !mod.isLeaf(startNode) && mod.getChildCount(startNode) > 0)      {        Object child = mod.getChild(startNode, 0);        if (child != null)          return getCellLocation(x, y + rowHeight, tree, mod, node, child);      }    return getCellLocation(x, y + rowHeight, tree, mod, node,                           getNextVisibleNode(startNode));  }