public void SaveState(IOriginator originator) { if (originator == null) { throw new ArgumentNullException("originator"); } m_memento = originator.GetMemento(); }
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); }
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); }
public void RestoreState(IOriginator originator) { originator.SetMemento(memento); }
public void SaveState(IOriginator originator) { memento = originator.GetMemento(); }
public Caretaker(IOriginator originator) { _originator = originator; }
private void ApplyMemento(IOriginator originator, IMemento memento) => originator?.RestoreMemento(memento);
public Caretaker(IOriginator originator) { _originator = originator; _mementos = new Stack <IMemento>(); }
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); }
public void SaveState(IOriginator originator) { if (originator == null) throw new ArgumentNullException("originator"); m_memento = originator.GetMemento(); }
internal StateTransactionManager(IOriginator originator) { this.originator = originator.ThrowIfNull(nameof(originator)); }
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); } } }
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); }
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()); }