Classes for the creation of undoable operations which can be added to an operations
history and later be undone and redone.
Package Specification
An undoable operation is a unit of work that can be executed, undone, and redone.
Operations can be added to an operation history so that they can later be
undone and redone according to the undo model for an application. Operations may be
assigned one or more undo contexts which can be used to filter the available
operations for undo or redo in the operation history. Clients may choose to provide
undo and redo function for all operations in a history, or only for a particular
undo context in that history. Operation histories may be configured with an
operation approver so that applications can enforce any desired undo model,
such as strict linear (LIFO) undo. This package provides the definition and a
basic implementation for operations, undo contexts, histories, and operation
approvers.