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
Returns | Name | Description |
---|---|---|
Transaction()
|
Construct an object holding an empty list of ChangedEvents
and no name.
|
Properties Summary Details
Returns | Name | Description |
---|---|---|
{List.
|
changes
|
This read-only property returns the list of ChangedEvents. More...
The changes are stored in order of occurrence.
You should not modify this list. |
{boolean}
|
isComplete
|
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.
|
{string}
|
name
|
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
Returns | Name | Description |
---|---|---|
{boolean}
|
canRedo()
|
This predicate returns true if you can call redo,
namely when isComplete is true.
|
{boolean}
|
canUndo()
|
This predicate returns true if you can call undo,
namely when isComplete is true.
|
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.
|