@Override
	protected void createViewCompositeFromOriginalComposite() {

		if (viewDTM != null) {
			viewDTM.close();
			viewDTM = null;
		}

		// Establish editor's datatype manager which will manage datatype dependencies.
		viewDTM = new CompositeViewerDataTypeManager<>(originalDTM.getName(), originalDTM);

		// Create a copy of the original stack frame datatype and force the resolving of its
		// datatype dependencies.  A round-about approach is used since the StackFrameDataType
		// itself cannot be resolved and cannot be treated in the same fashion as a normal 
		// Structure edit.  It relies on wrapping a normal structure to serve as a proxy of sorts 
		// for the purpose of managing datatype dependencies.  It is only through the use of
		// a StructureDB that component datatypes are forced to be resolved into the viewDTM.
		// NOTE: Since the StackEditorDataTypeManager keeps a single transaction open unused 
		// datatype pruning is never performed.
		viewComposite = originalComposite.copy(originalDTM);
		originalComposite.resolveWrappedComposite(viewDTM);
		originalComposite = originalStackFrameDataType; // use true original
	}
Function stack editor model for maintaining information about the edits to
a function stack frame. Updates the stack frame with the edit changes.
It also notifies any registered EditorModelListener listeners when
the stack frame is changed in the editor.
<P>This model provides methods for editing the stack and managing how
the changes occur.
When edit actions occur and there is a selection, the listener's are notified
of the new selection via the listener's overrideSelection method.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/stackeditor/StackEditorModel.java