void (final MouseEvent e) { final int row = rowAtPoint(e.getPoint()); final int column = columnAtPoint(e.getPoint()); if (row == -1 || column == -1){ return; } final Property property = myProperties.get(row); int indent = getPropertyIndentDepth(property) * getScaledPropertyIndent(); final Rectangle rect = getCellRect(row, convertColumnIndexToView(0), false); Component rendererComponent = myCellRenderer.getTableCellRendererComponent(PropertyInspectorTable.this, property, false, false, row, column); if (!rect.contains(e.getX(), e.getY()) || !(rendererComponent instanceof ColoredTableCellRenderer) || ((ColoredTableCellRenderer)rendererComponent).findFragmentAt(e.getX()) != SimpleColoredComponent.FRAGMENT_ICON || e.getX() < rect.x + indent) { return; } final Property[] children = getPropChildren(property); if (children.length == 0) { return; } if (isPropertyExpanded(property)) { collapseProperty(row); } else { expandProperty(row); } }