@Override
	protected void fireValueChanged(int firstIndex, int lastIndex, boolean isAdjusting) {
		if (!shouldTrackSelection(isAdjusting, firstIndex)) {
			superFireValueChanged(firstIndex, lastIndex, isAdjusting, false);
			return;
		}

		// when editing, the selection changes are valid, but we get notified of them
		// as 'adjusting', so we need to handle that special case
		boolean isTransientChange = (isAdjusting && !table.isEditing());
		if (isTransientChange) {
			superFireValueChanged(firstIndex, lastIndex, isAdjusting, false);
			return;
		}

		int[] selectedRows = table.getSelectedRows();
		saveSelectionState(selectedRows);

		superFireValueChanged(firstIndex, lastIndex, isAdjusting, true);
	}
A flag used to track when updates or requests to update the selection are made.  This is
used to throw away requests to repair selections that have been superseded by new requests.
Ghidra/Framework/Docking/src/main/java/docking/widgets/table/RowObjectSelectionManager.java