private void updateModelOptions() {

		String[] availableModelNames = getAvailableModelNames(SUBROUTINE_MODEL);
		try {
			if (subroutineModelsByName.containsKey(preferedSubroutineModeName)) {
				activeSubroutineModel = subroutineModelsByName.get(preferedSubroutineModeName);
			}
			if (activeSubroutineModel != null &&
				subroutineModelsByName.containsKey(activeSubroutineModel.modelName)) {
				selectedSubroutineModelName = activeSubroutineModel.modelName;
			}
			else {
				activeSubroutineModel = subroutineModelsByName.get(selectedSubroutineModelName);
			}
		}
		catch (IllegalArgumentException e) {
			Msg.error(this, "Unexpected Exception: " + e.getMessage(), e);
		}

		modelUpdateInProgress = true;
		try {
			if (editor != null) {
				editor.setChoices(availableModelNames);
			}
			options.setString(SUB_OPTION, selectedSubroutineModelName);
		}
		finally {
			modelUpdateInProgress = false;
		}

	}
Handle an option change
@param newOptions options object containing the property that changed
@param optionName name of option that changed
@param oldValue old value of the option
@param newValue new value of the option
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/blockmodel/BlockModelServicePlugin.java