C# (CSharp) GuiLabs.Undo Namespace

Classes

Name Description
AbstractAction
ActionManager Action Manager is a central class for the Undo Framework. Your domain model (business objects) will have an ActionManager reference that would take care of executing actions. Here's how it works: 1. You declare a class that implements IAction 2. You create an instance of it and give it all necessary info that it needs to know to apply or rollback a change 3. You call ActionManager.RecordAction(yourAction) Then you can also call ActionManager.Undo() or ActionManager.Redo()
CallMethodAction
SetPropertyAction This is a sample action that can change any property on any object It can also undo what it did
SimpleHistory IActionHistory represents a recorded list of actions undertaken by user. This class implements a usual, linear action sequence. You can move back and forth changing the state of the respective document. When you move forward, you execute a respective action, when you move backward, you Undo it (UnExecute). Implemented through a double linked-list of SimpleHistoryNode objects. ====================================================================
SimpleHistoryNode Represents a node of the doubly linked-list SimpleHistory (StateX in the following diagram:) (State0) --- [Action0] --- (State1) --- [Action1] --- (State2) StateX (e.g. State1) has a link to the previous State, previous Action, next State and next Action. As you move from State1 to State2, an Action1 is executed (Redo). As you move from State1 to State0, an Action0 is un-executed (Undo).
Transaction