void (final int index) { final int selectedRow=getSelectedRow(); // Expand property final Property property=myProperties.get(index); LOG.assertTrue(isPropertyExpanded(property)); myExpandedProperties.remove(getDottedName(property)); final Property[] children=getPropChildren(property); for (int i=0; i<children.length; i++){ myProperties.remove(index + 1); } myModel.fireTableDataChanged(); // Restore selected row if(selectedRow!=-1){ getSelectionModel().setSelectionInterval(selectedRow,selectedRow); } }