bounds.x -= rightChildIndent - 4; bounds.width += rightChildIndent + 4;
if (isLeaf(row)) { bounds.x -= rightChildIndent - 4; bounds.width += rightChildIndent + 4; } else if (tree.isExpanded(path) && expandedIcon != null) bounds.width += expandedIcon.getIconWidth() + 4; else if (collapsedIcon != null) bounds.width += collapsedIcon.getIconWidth() + 4;
    public void mousePressed(MouseEvent e)    {			Point click = e.getPoint();      int row = Math.round(click.y / getRowHeight());      TreePath path = getClosestPathForLocation(tree, click.x, click.y);         if (path != null)         {            boolean inBounds = false;            boolean cntlClick = false;          Rectangle bounds = getPathBounds(tree, path);                      bounds.x -= rightChildIndent - 4;            bounds.width += rightChildIndent + 4;            if (bounds.contains(click.x, click.y))               inBounds = true;          else if (hasControlIcons()                   && (click.x < (bounds.x - rightChildIndent + 5) &&                        click.x > (bounds.x - rightChildIndent - 5)))               cntlClick = true;          if ((inBounds || cntlClick) && tree.isVisible(path))               {              selectPath(tree, path);              if ((e.getClickCount() == 2 || cntlClick) && !isLeaf(row))         {                  if (tree.isExpanded(path))                    tree.collapsePath(path);            else                    tree.expandPath(path);			}                          if (!cntlClick && tree.isEditable())                startEditing(path, e);		}      }      }