Eclipse Platform
Release 3.1

org.eclipse.ltk.core.refactoring
Interface IUndoManager


public interface IUndoManager

An undo manager keeps track of performed changes. Use the method addUndo to add change objects to the undo stack and performUndo and performRedo to undo or redo changes.

This interface is not intended to be implemented by clients. Clients should use the method RefactoringCore.getUndoManager() to access the refactoring undo manager.

As of 3.1 the implementation of the refactoring undo manager is based on the IOperationHistory provided by the org.eclipse.core.commands plug-in.

Since:
3.0
See Also:
IOperationHistory

Method Summary
 void aboutToPerformChange(Change change)
          The infrastructure is going to perform the given change.
 void addListener(IUndoManagerListener listener)
          Adds a listener to the undo manager.
 void addUndo(String name, Change change)
          Adds a new undo change to this undo manager.
 boolean anythingToRedo()
          Returns true if there is anything to redo, otherwise false.
 boolean anythingToUndo()
          Returns true if there is anything to undo, otherwise false.
 void changePerformed(Change change)
          Deprecated. use #changePerformed(Change, boolean) instead
 void changePerformed(Change change, boolean successful)
          The infrastructure has performed the given change.
 void flush()
          Flushes the undo manager's undo and redo stacks.
 String peekRedoName()
          Returns the name of the top most redo.
 String peekUndoName()
          Returns the name of the top most undo.
 void performRedo(IValidationCheckResultQuery query, IProgressMonitor pm)
          Redo the top most redo change.
 void performUndo(IValidationCheckResultQuery query, IProgressMonitor pm)
          Undo the top most undo change.
 void removeListener(IUndoManagerListener listener)
          Removes the given listener from this undo manager.
 void shutdown()
          Shut down the undo manager.
 

Method Detail

addListener

public void addListener(IUndoManagerListener listener)
Adds a listener to the undo manager. Does nothing if the listener is already present.

Parameters:
listener - the listener to be added to the undo manager

removeListener

public void removeListener(IUndoManagerListener listener)
Removes the given listener from this undo manager. Does nothing if the listener isn't registered with this undo manager

Parameters:
listener - the listener to be removed

aboutToPerformChange

public void aboutToPerformChange(Change change)
The infrastructure is going to perform the given change. If a client calls this method it must make sure that the corresponding method changePerformed(Change) is called after the change got executed. A typically code snippet looks as follows:
   Change change= ...;
   try {
     undoManager.aboutToPerformChange(change);
     // execute change
   } finally {
     undoManager.changePerformed(change);
   }
 

Parameters:
change - the change to be performed.

changePerformed

public void changePerformed(Change change)
Deprecated. use #changePerformed(Change, boolean) instead

The infrastructure has performed the given change.

Parameters:
change - the change that was performed

changePerformed

public void changePerformed(Change change,
                            boolean successful)
The infrastructure has performed the given change.

Parameters:
change - the change that was performed
successful - true if the change got executed successful; false otherwise.
Since:
3.1

addUndo

public void addUndo(String name,
                    Change change)
Adds a new undo change to this undo manager.

Parameters:
name - the name presented on the undo stack for the provided undo change. The name must be human readable.
change - the undo change

anythingToUndo

public boolean anythingToUndo()
Returns true if there is anything to undo, otherwise false.

Returns:
true if there is anything to undo, otherwise false

peekUndoName

public String peekUndoName()
Returns the name of the top most undo.

Returns:
the top most undo name. Returns null if there aren't any changes to undo.

performUndo

public void performUndo(IValidationCheckResultQuery query,
                        IProgressMonitor pm)
                 throws CoreException
Undo the top most undo change.

Parameters:
query - a proceed query to decide how to proceed if the validation checking of the undo change to perform returns a non OK status and the status isn't a fatal error. If null is passed in the the undo proceeds if the status is not a fatal error.
pm - a progress monitor to report progress during performing the undo change
Throws:
CoreException - if performing the undo caused an exception

anythingToRedo

public boolean anythingToRedo()
Returns true if there is anything to redo, otherwise false.

Returns:
true if there is anything to redo, otherwise false

peekRedoName

public String peekRedoName()
Returns the name of the top most redo.

Returns:
the top most redo name. Returns null if there are no any changes to redo.

performRedo

public void performRedo(IValidationCheckResultQuery query,
                        IProgressMonitor pm)
                 throws CoreException
Redo the top most redo change.

Parameters:
query - a proceed query to decide how to proceed if the validation checking of the redo change to perform returns a non OK status. If null is passed in the the undo proceeds if the status is not a fatal error.
pm - a progress monitor to report progress during performing the redo change
Throws:
CoreException - if performing the redo caused an exception

flush

public void flush()
Flushes the undo manager's undo and redo stacks.


shutdown

public void shutdown()
Shut down the undo manager.


Eclipse Platform
Release 3.1

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2005. All rights reserved.