@Override
	public boolean stopCellEditing() {

		try {
			DataType dataType = editor.getCellEditorValueAsDataType();
			dialog.clearStatusText();
			if (dataType == null) {
				String text = editor.getCellEditorValueAsText();
				dialog.setStatusText("Invalid data type: " + text, MessageType.ERROR);
				return false;
			}
			if (dataType.equals(dt)) {
				fireEditingCanceled(); // user picked the same datatype
			}
			else {
				dt = dataType.clone(dtm);
				fireEditingStopped();
			}
		}
		// We have to catch special cases where users enter param types that have an 
		// invalid format, not just an invalid value.  ie: "a/b/c" is invalid and will
		// generate an exception; if we don't catch it here, the exception will propagate
		// till the user is presented with an error dialog containing a stack trace.  
		// Instead, catch it and display error text in the status field.	
		//
		// This will be generated by the editor.getCellEditorValueAsDataType() call.
		catch (IllegalArgumentException ex) {
			String text = editor.getCellEditorValueAsText();
			dialog.setStatusText("Invalid data type: " + text, MessageType.ERROR);
			return false;
		}
		return true;
	}
@return text field associated with the generated component.  Null will 
be returned if getTableCellEditorComponent method has not yet been invoked.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/function/editor/ParameterDataTypeCellEditor.java