public boolean canFinish() {
		if (busy) {
			return false;
		}
		if (!currentStep.isValid()) {
			return false;
		}

		// flush current step's gui info to data object so follow-on steps can see the current
		// changes when deciding if they can finish
		currentStep.populateData(data);

		// All follow-on steps should evaluate if the current data object has all the required
		// info to finish. The follow-on steps can change the data, but should only do so based
		// on the values in the data object. Anything in their gui data should be ignored in
		// their canFinish() methods as it could be stale after the user backed up and made changes.
		for (int i = currentStepIndex + 1; i < wizardSteps.size(); i++) {
			WizardStep<T> step = wizardSteps.get(i);
			if (step.isApplicable(data) && !step.canFinish(data)) {
				return false;
			}
		}
		return true;
	}
Returns true if the "Finish" button should be enabled.
@return true if the "Finish" button should be enabled
Ghidra/Framework/Docking/src/main/java/docking/wizard/WizardModel.java