editor.plugins.UndoRedoManager Extends goog.events.EventTarget
Manages undo and redo operations through a series of UndoRedoStates maintained on undo and redo stacks.

Inheritance

Constructor

goog.editor.plugins.UndoRedoManager()

Instance Methods

Public Protected Private
addAction_(action)
Adds an action to the queue of pending undo or redo actions. If no actions are pending, immediately performs the action.
Arguments:
action : Object
An undo or redo action. Stored as an object with two properties: func and state. The func property stores the undo or redo function to be called, the state property stores the state that method came from.
code »
addState(state)
Add state to the undo stack. This clears the redo stack.
Arguments:
state : goog.editor.plugins.UndoRedoState
The state to add to the undo stack.
code »
clearHistory()
Clears the undo and redo stacks.
code »
dispatchStateChange_()
Dispatches a STATE_CHANGE event with this manager as the target.
code »
doAction_()
Executes the action at the front of the pending actions queue. If an action is already in progress or the queue is empty, does nothing.
code »
finishAction_()
Finishes processing the current in progress action, starting the next queued action if one exists.
code »
hasRedoState() boolean
No description.
Returns: boolean  Wether the redo stack has items on it, i.e., if it is possible to perform a redo operation.
code »
hasUndoState() boolean
No description.
Returns: boolean  Wether the undo stack has items on it, i.e., if it is possible to perform an undo operation.
code »
redo()
Performs the redo operation of the state at the top of the redo stack, moving that state to the top of the undo stack. If redo undo stack is empty, does nothing.
code »
redoPeek() goog.editor.plugins.UndoRedoState | undefined
No description.
Returns: goog.editor.plugins.UndoRedoState | undefined  The state at the top of the redo stack without removing it from the stack.
code »
setMaxUndoDepth(depth)
Set the max undo stack depth (not the real memory usage).
Arguments:
depth : number
Depth of the stack.
code »
shiftState_(fromStacktoStack)
Move a state from one stack to the other, performing the appropriate undo or redo action.
Arguments:
fromStack : Array.<goog.editor.plugins.UndoRedoState>
Stack to move the state from.
toStack : Array.<goog.editor.plugins.UndoRedoState>
Stack to move the state to.
code »
undo()
Performs the undo operation of the state at the top of the undo stack, moving that state to the top of the redo stack. If the undo stack is empty, does nothing.
code »
undoPeek() goog.editor.plugins.UndoRedoState | undefined
No description.
Returns: goog.editor.plugins.UndoRedoState | undefined  The state at the top of the undo stack without removing it from the stack.
code »
addEventListener(typeopt_captureopt_handlerScope)
Use #listen instead, when possible. Otherwise, use goog.events.listen if you are passing Object (instead of Function) as handler. Adds an event listener to the event target. The same handler can only be added once per the type. Even if you add the same handler multiple times using the same type then it will only be called once when the event is dispatched.
Arguments:
type : string
The type of the event to listen for.
: ?function():? | ?{handleEvent:function():?
No description.
opt_capture : boolean=
In DOM-compliant browsers, this determines whether the listener is fired during the capture or bubble phase of the event.
opt_handlerScope : Object=
Object in whose scope to call the listener.
code »
assertInitialized_()
Asserts that the event target instance is initialized properly.
code »
dispatchEvent()
No description.
code »
disposeInternal()
Removes listeners from this object. Classes that extend EventTarget may need to override this method in order to remove references to DOM Elements and additional listeners.
code »
fireListeners()
No description.
code »
getListener()
No description.
code »
getListeners()
No description.
code »
getParentEventTarget() goog.events.EventTarget
Returns the parent of this event target to use for bubbling.
Returns: goog.events.EventTarget  The parent EventTarget or null if there is no parent.
code »
hasListener()
No description.
code »
listen()
No description.
code »
listenOnce()
No description.
code »
removeAllListeners()
No description.
code »
removeEventListener(typeopt_captureopt_handlerScope)
Use #unlisten instead, when possible. Otherwise, use goog.events.unlisten if you are passing Object (instead of Function) as handler. Removes an event listener from the event target. The handler must be the same object as the one added. If the handler has not been added then nothing is done.
Arguments:
type : string
The type of the event to listen for.
: ?function():? | ?{handleEvent:function():?
No description.
opt_capture : boolean=
In DOM-compliant browsers, this determines whether the listener is fired during the capture or bubble phase of the event.
opt_handlerScope : Object=
Object in whose scope to call the listener.
code »
setParentEventTarget(parent)
Sets the parent of this event target to use for capture/bubble mechanism.
Arguments:
parent : goog.events.EventTarget
Parent listenable (null if none).
code »
setTargetForTesting(target)
Sets the target to be used for event.target when firing event. Mainly used for testing. For example, see goog.testing.events.mixinListenable.
Arguments:
target : !Object
The target.
code »
unlisten()
No description.
code »
unlistenByKey()
No description.
code »
addOnDisposeCallback(callbackopt_scope)
Invokes a callback function when this object is disposed. Callbacks are invoked in the order in which they were added.
Arguments:
callback : function(this:T):?
The callback function.
opt_scope : T=
An optional scope to call the callback in.
code »
dispose() void
Disposes of the object. If the object hasn't already been disposed of, calls #disposeInternal. Classes that extend goog.Disposable should override #disposeInternal in order to delete references to COM objects, DOM nodes, and other disposable objects. Reentrant.
Returns: void  Nothing.
code »
disposeInternal()
Deletes or nulls out any references to COM objects, DOM nodes, or other disposable objects. Classes that extend goog.Disposable should override this method. Not reentrant. To avoid calling it twice, it must only be called from the subclass' disposeInternal method. Everywhere else the public dispose method must be used. For example:
  mypackage.MyClass = function() {
    mypackage.MyClass.base(this, 'constructor');
    // Constructor logic specific to MyClass.
    ...
  };
  goog.inherits(mypackage.MyClass, goog.Disposable);

  mypackage.MyClass.prototype.disposeInternal = function() {
    // Dispose logic specific to MyClass.
    ...
    // Call superclass's disposeInternal at the end of the subclass's, like
    // in C++, to avoid hard-to-catch issues.
    mypackage.MyClass.base(this, 'disposeInternal');
  };
code »
getDisposed() boolean
Use #isDisposed instead. No description.
Returns: boolean  Whether the object has been disposed of.
code »
isDisposed() boolean
No description.
Returns: boolean  Whether the object has been disposed of.
code »
registerDisposable(disposable)
Associates a disposable object with this object so that they will be disposed together.
Arguments:
disposable : goog.disposable.IDisposable
that will be disposed when this object is disposed.
code »

Instance Properties

constructor :
No description.
Code »
inProgressActionKey_ :
The key for the listener for the completion of the asynchronous state whose undo or redo action is in progress. Null if no action is in progress.
Code »
maxUndoDepth_ :
The maximum number of states on the undo stack at any time. Used to limit the memory footprint of the undo-redo stack. TODO(user) have a separate memory size based limit.
Code »
pendingActions_ :
A queue of pending undo or redo actions. Stored as objects with two properties: func and state. The func property stores the undo or redo function to be called, the state property stores the state that method came from.
Code »
redoStack_ :
The redo stack.
Code »
undoStack_ :
The undo stack.
Code »
actualEventTarget_ : goog.events.EventTarget
The object to use for event.target. Useful when mixing in an EventTarget to another object.
Code »
constructor :
No description.
Code »
eventTargetListeners_ : goog.events.ListenerMap
Maps of event type to an array of listeners.
Code »
parentEventTarget_ : goog.events.EventTarget
Parent event target, used during event bubbling. TODO(user): Change this to goog.events.Listenable. This currently breaks people who expect getParentEventTarget to return goog.events.EventTarget.
Code »
creationStack :
If monitoring the goog.Disposable instances is enabled, stores the creation stack trace of the Disposable instance.
Code »
disposed_ :
Whether the object has been disposed of.
Code »
onDisposeCallbacks_ :
Callbacks to invoke when this object is disposed.
Code »

Static Properties

goog.editor.plugins.UndoRedoManager.superClass_ :
No description.
Code »

Enumerations

goog.editor.plugins.UndoRedoManager.EventType :
Event types for the events dispatched by undo-redo manager.
Constants:
BEFORE_REDO
No description.
BEFORE_UNDO
No description.
STATE_ADDED
No description.
STATE_CHANGE
No description.
Code »

Package editor.plugins

Package Reference