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:
    IOperationHistory
    Restriction:
    This interface is not intended to be implemented by clients.
    Restriction:
    This interface is not intended to be extended by clients.
    • Method Detail

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