private DataTypeManager[] getOpenDTMgrs() throws CancelledException {
		DataTypeManager[] openDTmanagers = null;
		
		DataTypeManagerService dtService = tool.getService(DataTypeManagerService.class);
		if (dtService == null) {
			return openDTmanagers;
		}
		
		openDTmanagers = dtService.getDataTypeManagers();

		ArrayList<DataTypeManager> list = new ArrayList<>();
		String htmlNamesList = "";
		for (DataTypeManager openDTmanager : openDTmanagers) {
			if (openDTmanager instanceof ProgramDataTypeManager) {
				continue;
			}
			list.add(openDTmanager);
			if (!(openDTmanager instanceof BuiltInDataTypeManager)) {
				htmlNamesList +=
					"<li><b>" + HTMLUtilities.escapeHTML(openDTmanager.getName()) + "</b></li>";
			}
		}
		openDTmanagers = list.toArray(new DataTypeManager[0]);

		if (openDTmanagers.length > 1) {
		    int result = OptionDialog.showOptionDialog(
			this.parseDialog.getComponent(), "Use Open Archives?",
			"<html>The following archives are currently open: " + "<ul>" + htmlNamesList +
				"</ul>" + "<p><b>The new archive will become dependent on these archives<br>" +
				"for any datatypes already defined in them </b>(only unique <br>" +
				"data types will be added to the new archive).",
			"Use Open Archives", "Don't Use Open Archives", OptionDialog.QUESTION_MESSAGE);
		    if (result == OptionDialog.CANCEL_OPTION) {
		    	throw new CancelledException("User Cancelled");
		    }
		    if (result == OptionDialog.OPTION_TWO) {
		    	return null;
		    }
		}

		return openDTmanagers;
	}
Get open data type managers.
   User can Use Open managers, Select not to use, or Cancel
   
@return array of open data type managers

@throws CancelledException if user cancels
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/cparser/CParserPlugin.java