Multiple undo/redo support

As with the transaction feature all changes to the business objects are automatically detected and recorded into an "undo block", these changes can then be reversed and reapplied numerous times. This allows the developer to operate multiple independent operations which may be reversed or reapplied in any order they wish, one usage example of this feature would be to enable the developer to have multiple Forms open at the same time and to allow the user to undo or redo the changes in each one independently. Or maybe to allow the user of an application to set multiple safe points during their work that they can then revert to at a later point.

Undo service

In the example above an undo block was created.

  1. When the user changed Person1 FirstName/LastName to John/Smith ECO recorded the original values Peter/Morris in the undo block.
  2. The changes of the undo block were then reversed.
  3. The undo block was removed from the UndoBlockList and placed into the RedoBlockList.
  4. Now instead of recording the original values the modified values John/Smith are recorded.
  5. The user is able to re-do and undo their changes multiple times.