public interface IUndoManager
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.
IOperationHistory
Modifier and Type | Method and Description |
---|---|
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.
|
void addListener(IUndoManagerListener listener)
listener
- the listener to be added to the undo managervoid removeListener(IUndoManagerListener listener)
listener
- the listener to be removedvoid aboutToPerformChange(Change change)
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); }
change
- the change to be performed.void changePerformed(Change change)
change
- the change that was performedvoid changePerformed(Change change, boolean successful)
change
- the change that was performedsuccessful
- true
if the change got executed
successful; false
otherwise.void addUndo(String name, Change change)
name
- the name presented on the undo stack for the provided
undo change. The name must be human readable.change
- the undo changeboolean anythingToUndo()
true
if there is anything to undo, otherwise
false
.true
if there is anything to undo, otherwise
false
String peekUndoName()
null
if there
aren't any changes to undo.void performUndo(IValidationCheckResultQuery query, IProgressMonitor pm) throws CoreException
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 changeCoreException
- if performing the undo caused an exceptionboolean anythingToRedo()
true
if there is anything to redo, otherwise
false
.true
if there is anything to redo, otherwise
false
String peekRedoName()
null
if there
are no any changes to redo.void performRedo(IValidationCheckResultQuery query, IProgressMonitor pm) throws CoreException
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 changeCoreException
- if performing the redo caused an exceptionvoid flush()
void shutdown()
Copyright (c) 2000, 2014 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.