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.

As of 3.2 clients which need to examine refactorings which have been performed, undone or redone should use IRefactoringHistoryService for enhanced functionality.

Since:
3.0
See Also:
Restriction:
This interface is not intended to be implemented by clients.
Restriction:
This interface is not intended to be extended by clients.
  • Method Details

    • addListener

      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

      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

      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

      @Deprecated 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

      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

      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

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

      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

      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 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

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

      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

      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 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

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

      void shutdown()
      Shut down the undo manager.