protected void undoCheckOuts(List<DomainFileArchive> unmodifiedArchivesList,
			List<DomainFileArchive> modifiedArchivesList) throws CancelledException {
		boolean saveCopy = false;
		DomainFile[] selectedFiles = new DomainFile[0];
		boolean undoWasCancelled = false;
		List<DomainFileArchive> selectedArchives = modifiedArchivesList;
		// Now confirm the modified ones and undo checkout for the ones the user indicates.
		if (modifiedArchivesList.size() > 0) {
			UndoActionDialog dialog = new UndoActionDialog("Confirm Undo Checkout",
				ICON, "UndoCheckOut", "checkout", getDomainFileList(modifiedArchivesList));
			int actionID = dialog.showDialog(tool);
			if (actionID != UndoActionDialog.CANCEL) {
				saveCopy = dialog.saveCopy();
				selectedFiles = dialog.getSelectedDomainFiles();
				selectedArchives = getMatchingArchives(modifiedArchivesList, selectedFiles);
			}
			else {
				throw new CancelledException();
			}
		}
		if ((unmodifiedArchivesList.size() > 0) || (selectedFiles.length > 0)) {
			tool.execute(new DataTypeArchiveUndoCheckOutTask(unmodifiedArchivesList,
				selectedArchives, saveCopy));
		}
		if (undoWasCancelled) {
			tool.setStatusInfo("Undo check out was canceled");
		}
	}
Displays the undo checkout confirmation dialog for each checked out file and then 
undoes the checkout while keeping a copy of the working version of the file if the 
user chooses to do so.<br>
All unmodified checkouts will be undone. Only modified checkouts the user chooses
will be undone.
@param unmodifiedArchivesList the list of unmodified archives
@param modifiedArchivesList the list of archives that have been modified
@throws CancelledException if cancelled
Ghidra/Features/Base/src/main/java/ghidra/framework/main/datatree/VersionControlDataTypeArchiveUndoCheckoutAction.java