Transaction class

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.

Available extensions
Annotations
  • @JS()
  • @staticInterop

Constructors

Transaction.new()
factory

Properties

changes List<ChangedEvent>

Available on Transaction, provided by the Transaction$Typings extension

This read-only property returns the list of ChangedEvents. The changes are stored in order of occurrence.
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
isComplete bool

Available on Transaction, provided by the Transaction$Typings extension

Gets or sets whether we can add more ChangedEvents to this list of changes. This is initially false. It is set to true by UndoManager#commitTransaction and UndoManager#rollbackTransaction.
getter/setter pair
name String

Available on Transaction, provided by the Transaction$Typings extension

Gets or sets the transaction name for this collection of changes. This is set by a top-level call to UndoManager#commitTransaction.
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

canRedo() bool

Available on Transaction, provided by the Transaction$Typings extension

This predicate returns true if you can call #redo, namely when #isComplete is true. @return {boolean} true if ready for #redo to be called.
canUndo() bool

Available on Transaction, provided by the Transaction$Typings extension

This predicate returns true if you can call #undo, namely when #isComplete is true. @return {boolean} true if ready for #undo to be called.
clear() → void

Available on Transaction, provided by the Transaction$Typings extension

Clear all of the saved changes.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
optimize() → void

Available on Transaction, provided by the Transaction$Typings extension

Remove all but the first and last Property ChangedEvents for each property for each object.
redo() → void

Available on Transaction, provided by the Transaction$Typings extension

Re-perform these changes after an #undo. This is normally called only by the UndoManager. #canRedo must be true for this method to have any effect.
toString() String
A string representation of this object.
inherited
undo() → void

Available on Transaction, provided by the Transaction$Typings extension

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

Operators

operator ==(Object other) bool
The equality operator.
inherited