/// <summary> /// Add an <see cref="T:Northwoods.Go.IGoUndoableEdit" /> to the end of the list. /// </summary> /// <param name="edit"></param> public virtual void AddEdit(IGoUndoableEdit edit) { if (!IsComplete) { myEdits.Add(edit); } }
/// <summary> /// Restore the state of some documents to after the current <see cref="T:Northwoods.Go.IGoUndoableEdit" />. /// </summary> /// <remarks> /// This calls <see cref="M:Northwoods.Go.IGoUndoableEdit.Redo" /> on the current <see cref="P:Northwoods.Go.GoUndoManager.EditToRedo" />. /// This will raise a <see cref="E:Northwoods.Go.GoDocument.Changed" /> event with a hint of /// <see cref="F:Northwoods.Go.GoDocument.StartingRedo" /> before actually performing the redo, and will raise a /// Changed event with a hint of <see cref="F:Northwoods.Go.GoDocument.FinishedRedo" /> afterwards. /// The <see cref="T:Northwoods.Go.GoChangedEventArgs" />.<see cref="P:Northwoods.Go.GoChangedEventArgs.Object" /> /// is the <see cref="T:Northwoods.Go.GoUndoManagerCompoundEdit" /> that was the value of /// <see cref="P:Northwoods.Go.GoUndoManager.EditToRedo" /> before calling Redo. /// </remarks> /// <seealso cref="M:Northwoods.Go.GoUndoManager.CanRedo" /> public virtual void Redo() { checked { if (CanRedo()) { IGoUndoableEdit editToRedo = EditToRedo; try { foreach (GoDocument document in Documents) { document.RaiseChanged(109, 0, editToRedo, 0, null, GoObject.NullRect, 0, null, GoObject.NullRect); } myIsRedoing = true; myCurrentEditIndex++; editToRedo.Redo(); } catch (Exception ex) { GoObject.Trace("Redo: " + ex.ToString()); throw; } finally { myIsRedoing = false; foreach (GoDocument document2 in Documents) { document2.RaiseChanged(110, 0, editToRedo, 0, null, GoObject.NullRect, 0, null, GoObject.NullRect); } } } } }