protected void createViewCompositeFromOriginalComposite() {

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

		// Use temporary standalone view datatype manager
		viewDTM =
			new CompositeViewerDataTypeManager<>(originalComposite.getDataTypeManager().getName(),
				originalComposite, this::componentEdited, this::restoreEditor);

		viewComposite = viewDTM.getResolvedViewComposite();

		// Clone all settings some of which do not get resolved.

		// NOTE: It is important to note that the editor will allow modification of component
		// default settings, however the underlying datatype default settings may not get copied
		// as they get resolved into the view datatype manager.  This may result in the incorrect
		// underlying datatype default setting value being presented when adjusting component
		// default settings.
		viewDTM.withTransaction("Load Settings",
			() -> cloneAllComponentSettings(originalComposite, viewComposite));
		viewDTM.clearUndo();
	}
Create {@code viewComposite} and {@link CompositeViewerDataTypeManager viewDTM} for this
editor and the {@code originalComposite}.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/CompositeEditorModel.java