fireTableRowsInserted(i, i); resetRowSelection(i);
public void run() { Collection<?> oldCollection = null; if (evt.getOldValue() instanceof Collection) { oldCollection = (Collection<?>) evt.getOldValue(); } Collection<?> newCollection = (Collection<?>) evt.getNewValue(); int oldCollectionSize = 0; int newCollectionSize = 0; if (oldCollection != null) { oldCollectionSize = oldCollection.size(); } if (newCollection != null) { newCollectionSize = newCollection.size(); } if (newCollectionSize > oldCollectionSize) { fireTableRowsInserted(oldCollectionSize, newCollectionSize - 1); for (int row = oldCollectionSize; row < newCollectionSize; row++) { bindChildRowConnector(row); } } else if (newCollectionSize < oldCollectionSize) { fireTableRowsDeleted(newCollectionSize, oldCollectionSize - 1); } if (evt.getNewValue() != null && !((Collection<?>) evt.getNewValue()).isEmpty()) { collectionConnector.setSelectedIndices(new int[] {0}); } } });