public void edit(DataType dataType) {

		EditorProvider editor = reuseExistingEditor(dataType);
		if (editor != null) {
			return;
		}

		if (dataType instanceof Enum) {
			editor = new EnumEditorProvider(plugin, (Enum) dataType);
		}
		else if (dataType instanceof Union) {
			editor = new UnionEditorProvider(plugin, (Union) dataType, showUnionNumbersInHex());
		}
		else if (dataType instanceof Structure) {
			editor = new StructureEditorProvider(plugin, (Structure) dataType,
				showStructureNumbersInHex());
		}
		else if (dataType instanceof FunctionDefinition) {
			editFunctionSignature((FunctionDefinition) dataType);
		}

		if (editor != null) {
			editor.addEditorListener(this);
			editorList.add(editor);
		}
	}
Displays a data type editor for editing the indicated data type. If the data type is
is already being edited then it is brought to the front. Otherwise, a new editor is created
and displayed.
@param dataType the data type to edit.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/editor/DataTypeEditorManager.java