private void searchOtherProgram(RandomForestRowObject modelRow) {
		DataTreeDialog dtd =
			new DataTreeDialog(null, "Select Program", OPEN, f -> {
				Class<?> c = f.getDomainObjectClass();
				return Program.class.isAssignableFrom(c);
			});
		dtd.show();
		DomainFile dFile = dtd.getDomainFile();
		if (dFile == null) {
			return;
		}
		ProgramManager pm = plugin.getTool().getService(ProgramManager.class);
		Program p = pm.openProgram(dFile, DomainFile.DEFAULT_VERSION, ProgramManager.OPEN_VISIBLE);
		if (p == null) {
			return;
		}
		if (!isProgramCompatible(p)) {
			Msg.showWarn(this, null, "Incompatible Program", p.getName() +
				" is not compatible with training source program " + trainingSource.getName());
			return;
		}
		searchProgram(p, modelRow);
	}
Returns the program used to train the models
@return source program
Ghidra/Extensions/MachineLearning/src/main/java/ghidra/machinelearning/functionfinding/FunctionStartRFParamsDialog.java