private void validate() {
		String message = null;
		File sourceDir = new File(sourceDirText.getText());

		if (!sourceDir.isAbsolute()) {
			message = "Source directory must be an absolute path";
		}
		else if (!sourceDir.isDirectory()) {
			message = "Source directory does not exist";
		}
		else if (!new File(sourceDir, "Module.manifest").exists()) {
			message = "Source directory does not contain a Module.manifest file";
		}
		else if (!new File(sourceDir, "build.gradle").exists()) {
			message = "Source directory does not contain a build.gradle file";
		}
		else if (new File(sourceDir, ".project").exists()) {
			message = "Source directory already contains a .project file";
		}
		else if (new File(sourceDir, ".classpath").exists()) {
			message = "Source directory already contains a .classpath file";
		}

		setErrorMessage(message);
		setPageComplete(message == null);
		if (message == null) {
			GhidraProjectCreatorPreferences
					.setGhidraLastModuleSourceDirPath(sourceDirText.getText());
		}
	}
Validates the fields on the page and updates the page's status.
Should be called every time a field on the page changes.
GhidraBuild/EclipsePlugins/GhidraDev/GhidraDevPlugin/src/main/java/ghidradev/ghidraprojectcreator/wizards/pages/ChooseGhidraModuleSourceWizardPage.java