/// <inheritdoc />
        protected override void DeserializeFromUndo(SerializedReferenceDictionary <string, string> stateComponentUndoData)
        {
            base.DeserializeFromUndo(stateComponentUndoData);

            if (stateComponentUndoData.TryGetValue(nameof(SelectionState), out var serializedData))
            {
                var newSelectionState = StateComponentHelper.Deserialize <SelectionStateComponent>(serializedData);
                PersistedState.SetAssetViewStateComponent(m_GraphViewEditorWindowGUID, newSelectionState);
            }

            if (stateComponentUndoData.TryGetValue(nameof(GraphViewState), out serializedData))
            {
                var newGraphViewState = StateComponentHelper.Deserialize <GraphViewStateComponent>(serializedData);
                PersistedState.SetAssetStateComponent(newGraphViewState);
            }

            if (stateComponentUndoData.TryGetValue(nameof(BlackboardViewState), out serializedData))
            {
                var newBlackboardState = StateComponentHelper.Deserialize <BlackboardViewStateComponent>(serializedData);
                PersistedState.SetAssetStateComponent(newBlackboardState);
            }

            if (stateComponentUndoData.TryGetValue(nameof(WindowState), out serializedData))
            {
                var newWindowState = StateComponentHelper.Deserialize <WindowStateComponent>(serializedData);
                PersistedState.SetAssetStateComponent(newWindowState);
            }
        }
        /// <inheritdoc />
        protected override void SerializeForUndo(SerializedReferenceDictionary <string, string> stateComponentUndoData)
        {
            base.SerializeForUndo(stateComponentUndoData);

            stateComponentUndoData.Add(nameof(SelectionState), StateComponentHelper.Serialize(SelectionState));
            stateComponentUndoData.Add(nameof(GraphViewState), StateComponentHelper.Serialize(GraphViewState));
            stateComponentUndoData.Add(nameof(BlackboardViewState), StateComponentHelper.Serialize(BlackboardViewState));
            stateComponentUndoData.Add(nameof(WindowState), StateComponentHelper.Serialize(WindowState));
        }