void () { removeAllElements(); int count = 0; for (int i = 0; i < myOriginalModel.getRowCount(); i++) { Object valueAt = myOriginalModel.getValueAt(i, 0); boolean include = false; if (valueAt != null && myClz.isAssignableFrom(valueAt.getClass())) { //noinspection unchecked final T element = (T)valueAt; if (passElement(element)) { include = true; } } else { include = true; } if (include) { List<T> elements = new ArrayList<>(myOriginalModel.getColumnCount()); for (int col = 0; col < myOriginalModel.getColumnCount(); col++) { //noinspection unchecked elements.add((T)myOriginalModel.getValueAt(i, col)); } addToFiltered(elements); myIndex.add(i); count++; } } if (count > 0) { fireTableRowsInserted(0, count - 1); } }