void (MouseEvent e) { int row = rowAtPoint(e.getPoint()); if (row == -1) { return; } Property property = myProperties.get(row); if (getChildren(property).isEmpty()) return; Icon icon = UIUtil.getTreeNodeIcon(false, true, true); Rectangle rect = getCellRect(row, convertColumnIndexToView(0), false); int indent = getBeforeIconAndAfterIndents(property, icon).first; if (e.getX() < rect.x + indent || e.getX() > rect.x + indent + icon.getIconWidth() || e.getY() < rect.y || e.getY() > rect.y + rect.height) { return; } // TODO: disallow selection for this row if (isExpanded(property)) { collapse(row); } else { expand(row); } }