void reloadFromView() {

		if (!isLoaded()) {
			throw new AssertException();
		}

		if (isEditingField()) {
			endFieldEditing();
		}

		CompositeViewerDataTypeManager<T> oldViewDTM = viewDTM;

		originalComposite = viewDTM.getResolvedViewComposite();
		originalCompositeId = DataTypeManager.NULL_DATATYPE_ID;
		originalDataTypePath = originalComposite.getDataTypePath();
		currentName = originalComposite.getName();

		// Use temporary standalone view datatype manager
		viewDTM = new CompositeViewerDataTypeManager<>(viewDTM.getName(),
			viewDTM.getResolvedViewComposite(), 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();

		// Dispose previous view DTM
		oldViewDTM.close();

		hasChanges = false;

		clearStatus();
		compositeInfoChanged();
		fireTableDataChanged();
		componentDataChanged();

		editorStateChanged(CompositeEditorModelListener.COMPOSITE_LOADED);
	}
Reload from view composite and retain current edit state
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/CompositeEditorModel.java