Example #1
0
 public void SaveState(IOriginator originator)
 {
     if (originator == null)
     {
         throw new ArgumentNullException("originator");
     }
     m_memento = originator.GetMemento();
 }
Example #2
0
        public void HandleUndoableChange(IOriginator originator, IMemento memento)
        {
            var change = new Change {
                Id = originator.Id, Version = m_Undo.Version, RegistryObject = originator as IRegistryObject, NextVersion = memento, PreviousVersion = GetPreviousValue(originator)
            };

            m_FrameChanges.Remove(change);
            m_FrameChanges.Add(change);
        }
Example #3
0
 public void RestoreState(IOriginator originator)
 {
     if (originator == null)
     {
         throw new ArgumentNullException("originator");
     }
     if (m_memento == null)
     {
         throw new InvalidOperationException("m_memento == null");
     }
     originator.SetMemento(m_memento);
 }
        private void Save(UTinyId id, IOriginator originator)
        {
            int version;

            if (!m_Versions.TryGetValue(id, out version))
            {
                m_Versions.Add(id, originator.Version);
            }

            if (version == originator.Version)
            {
                return;
            }

            // Skip memento generation
            if (null == OnObjectChanged)
            {
                return;
            }

            var memento = originator.Save();

            OnObjectChanged.Invoke(originator, memento);
        }
Example #5
0
 public void RestoreState(IOriginator originator)
 {
     originator.SetMemento(memento);
 }
Example #6
0
 public void SaveState(IOriginator originator)
 {
     memento = originator.GetMemento();
 }
 public Caretaker(IOriginator originator)
 {
     _originator = originator;
 }
Example #8
0
 private void ApplyMemento(IOriginator originator, IMemento memento) =>
 originator?.RestoreMemento(memento);
Example #9
0
 public Caretaker(IOriginator originator)
 {
     _originator = originator;
     _mementos   = new Stack <IMemento>();
 }
Example #10
0
 public void RestoreState(IOriginator originator)
 {
     if (originator == null)
         throw new ArgumentNullException("originator");
     if (m_memento == null)
         throw new InvalidOperationException("m_memento == null");
     originator.SetMemento(m_memento);
 }
Example #11
0
 public void SaveState(IOriginator originator)
 {
     if (originator == null)
         throw new ArgumentNullException("originator");
     m_memento = originator.GetMemento();
 }
Example #12
0
 internal StateTransactionManager(IOriginator originator)
 {
     this.originator = originator.ThrowIfNull(nameof(originator));
 }
Example #13
0
        private static void RemoveAllActionFromOriginator(IOriginator removeOriginator)
        {
            for (int i = 0; i < lastActions.Count; i++)
            {
                object[] currentAct = (object[])lastActions[i];
                IOriginator lastOriginator = (IOriginator)currentAct[0];

                if (lastOriginator == removeOriginator)
                {
                    RemoveFromStack(currentAct,false);
                }
            }
        }
Example #14
0
        private static void AddActionToStack(IOriginator originator, Memento currentState, bool DoingRedo)
        {
            int totalActionsMouse = 1;

            if (!mouseTotalActions.Contains(currentState.IdMouseOriginated))
            {
                mouseTotalActions.Add(currentState.IdMouseOriginated, 1);
            }
            else
            {
                mouseTotalActions[currentState.IdMouseOriginated] = (int)mouseTotalActions[currentState.IdMouseOriginated] + 1;
                totalActionsMouse = (int)mouseTotalActions[currentState.IdMouseOriginated];
            }

            if (totalActionsMouse > MaxUndoPerUser)
            {
                RemoveFirstAction(currentState.IdMouseOriginated);
            }
            else if (lastActions.Count > MaxUndoActions)
            {
                RemoveFirstAction(GetUserWithMoreActivity());
            }

            object[] actionToAdd = new object[2] { originator, currentState };

            ValidateAllRedoActions(actionToAdd, true);            

            lastActions.Add(actionToAdd);
        }
Example #15
0
        public static void AddAction(IOriginator originator)
        {
            Memento currentState = originator.SaveState;

            if (currentState != null)
            {
                AddActionToStack(originator, currentState,false);
            }
        }
 private static void HandleObjectChanged(IOriginator originator, IMemento memento)
 {
     s_ChangedTypes.Add(originator.GetType());
 }