Class Transaction

A Transaction holds a list of ChangedEvents collected during a transaction, as the value of the read-only changes property.

Start a transaction by calling UndoManager.startTransaction (or Model.startTransaction or Diagram.startTransaction, which call that method). Be sure to finish a transaction with a matching call to UndoManager.commitTransaction (or Model.commitTransaction or Diagram.commitTransaction), or a call to UndoManager.rollbackTransaction (or the same named methods on Model or Diagram).

If you are performing multiple or repeated changes to a model or diagram, surround all of the code with calls to start and commit the transaction -- do not perform repeated calls to start-commit-start-commit. Typically each change caused by the user, such as a button click or a change of focus or a mouse drag, should perform one transaction in which all changes are made. All of the predefined commands and tools perform transactions.

Undoing or redoing a transaction is done by calling UndoManager.undo or UndoManager.redo. Those methods call the undo or redo methods here.

The UndoManager holds a list of Transactions in its UndoManager.history.

Constructor Summary Details

Name Description
Transaction()

Construct an object holding an empty list of ChangedEvents and no name.

Properties Summary Details

Name, Value Type Description
changes
{List.}

This read-only property returns the list of ChangedEvents.More... The changes are stored in order of occurrence.

You should not modify this list.

isComplete
{boolean}

Gets or sets whether we can add more ChangedEvents to this list of changes.More... This is initially false. It is set to true by UndoManager.commitTransaction and UndoManager.rollbackTransaction.

name
{string}

Gets or sets the transaction name for this collection of changes.More... This is set by a top-level call to UndoManager.commitTransaction.

Method Summary Details

Name, Return Type Description
canRedo()
{boolean}

This predicate returns true if you can call redo, namely when isComplete is true.

Returns:
{boolean} true if ready for redo to be called.
canUndo()
{boolean}

This predicate returns true if you can call undo, namely when isComplete is true.

Returns:
{boolean} true if ready for undo to be called.
clear()

Clear all of the saved changes.

redo()

Re-perform these changes after an undo.More... This is normally called only by the UndoManager. canRedo must be true for this method to have any effect.

undo()

Undo all of the changes, in reverse order.More... This is normally called only by the UndoManager. canUndo must be true for this method to have any effect.