Browse Prior Art Database

Undo Model

IP.com Disclosure Number: IPCOM000106402D
Original Publication Date: 1993-Nov-01
Included in the Prior Art Database: 2005-Mar-21
Document File: 4 page(s) / 75K

Publishing Venue

IBM

Related People

Conner, MH: AUTHOR [+2]

Abstract

Undo of interactive operations is a requirement in application frameworks. This type of functionality enables the user to undo the effects of the interactive operations. The following describes an undo mechanism implemented by using System Object Model(SOM). The algorithm disclosed here is used internally in two application frameworks .

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 53% of the total text.

Undo Model

      Undo of interactive operations is a requirement in application
frameworks.  This type of functionality enables the user to undo the
effects of the interactive operations.  The following describes an
undo mechanism implemented by using System Object Model(SOM).  The
algorithm disclosed here is used internally in two application
frameworks .

      An application framework establishes policies used by the
applications.  The applications can cooperate with each other if they
all behave according to the rules set by the application framework.
The following describes a model that shows how an undo mechanism is
implemented by dividing application responsibilities between the
application object and application framework implementation.

      Undo/Redo Programming Model -  An application object writer
designs undo logic when he/she implements the class methods.  For
each method invocation, a decision is made whether to implement an
undo operation.  For operations that require undo logic,  the first
line of the method body records information about the undo operation.

Example:

In a text editor the user does the following operation:

o     replace the current word with "newword"

o     move to the next line.

o     replace the third word with "newword2"

The operations that achieve this logic could be the following:

o     ReplaceKey("newword")  (1)

o     MoveDown

o     MoveToNextWord

o     MoveToNextWord

o     ReplaceKey("newword2") (2)

      "R...