private boolean useForcedCheckoutTransition(TaskMonitor monitor)
				throws CancelledException, IOException {
			if (repository == null) {
				return false;
			}

			ProjectData projectData = project.getProjectData();
			List<DomainFile> checkoutFiles = projectData.findCheckedOutFiles(monitor);
			if (checkoutFiles.isEmpty() ||
				!projectData.hasInvalidCheckouts(checkoutFiles, newRepository, monitor)) {
				return false;
			}

			if (OptionDialog.showOptionDialog(getComponent(), "Terminate Unrecognized Checkouts",
				"One or more project file checkouts are not recognized by the selected repository.\n" +
					"These checkouts will be terminated and a local .keep file created." +
					(repository.isConnected() ? ""
							: "  Doing this\n" +
								"will abandon such checkouts on the old repository since you are not connected.") +
					"\n\n" +
					"Are you sure you want to continue changing your shared project information?",
				"Terminate Checkouts and Continue",
				OptionDialog.QUESTION_MESSAGE) != OptionDialog.OPTION_ONE) {

				throw new CancelledException();
			}

			// Must force termination if not connected to current repository
			return !repository.isConnected();
		}
Called from the project action manager when the connection state changes on the
repository.
Ghidra/Framework/Project/src/main/java/ghidra/framework/main/ProjectInfoDialog.java