Package com.iizigo.editor
Class UndoTransaction
- java.lang.Object
- org.eclipse.core.commands.operations.AbstractOperation
- com.iizigo.editor.UndoTransaction
- All Implemented Interfaces:
org.eclipse.core.commands.operations.IUndoableOperation
public class UndoTransaction extends org.eclipse.core.commands.operations.AbstractOperation
Class used to create transactions in the operations history. Construct a new UndoTransaction instance to start the transaction, and callcommit
at the end, as simple as that! If it fails, callrollback
, but ALWAYS make sure eithercommit
orrollback
is called usingtry-catch-finally
, otherwise there may be leaks due to history listeners.- Author:
- Christopher Mindus
Constructor Summary
Constructors Constructor Description UndoTransaction(java.lang.String description, org.eclipse.core.commands.operations.IUndoContext undoContext)
Constructor used to begin the undo transaction.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canExecute()
boolean
canRedo()
boolean
canUndo()
void
commit()
Commits a series of operations in a transaction initiated with a prior call tobegin
.void
dispose()
org.eclipse.core.runtime.IStatus
execute(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info)
org.eclipse.core.runtime.IStatus
redo(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info)
boolean
rollback(org.eclipse.swt.widgets.Shell shell, boolean performUndo)
Performs a rollback.org.eclipse.core.runtime.IStatus
undo(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info)
Constructor Detail
UndoTransaction
public UndoTransaction(java.lang.String description, org.eclipse.core.commands.operations.IUndoContext undoContext)
Constructor used to begin the undo transaction.It is very important to call
commit
orrollback
in all cases, usetry-catch-finally
to ensure this is done even when exceptions occur.- Parameters:
description
- The description of the entire operation.
Method Detail
rollback
public boolean rollback(org.eclipse.swt.widgets.Shell shell, boolean performUndo)
Performs a rollback.- Parameters:
shell
- The shell, can be set to null if performUndo is false.performUndo
- Flag indicating that operations already performed should be undone as much as possible. The operations that have been undone are removed from history, the ones not successful are left without change and no "global" transaction undo operation is used.- Returns:
- Success flag when
performUndo
is true. false indicates at least one operation failed to be undone, true indicates all operations are undone.
commit
public void commit()
Commits a series of operations in a transaction initiated with a prior call tobegin
.
dispose
public void dispose()
- Specified by:
dispose
in interfaceorg.eclipse.core.commands.operations.IUndoableOperation
- Overrides:
dispose
in classorg.eclipse.core.commands.operations.AbstractOperation
canExecute
public boolean canExecute()
- Specified by:
canExecute
in interfaceorg.eclipse.core.commands.operations.IUndoableOperation
- Overrides:
canExecute
in classorg.eclipse.core.commands.operations.AbstractOperation
canRedo
public boolean canRedo()
- Specified by:
canRedo
in interfaceorg.eclipse.core.commands.operations.IUndoableOperation
- Overrides:
canRedo
in classorg.eclipse.core.commands.operations.AbstractOperation
canUndo
public boolean canUndo()
- Specified by:
canUndo
in interfaceorg.eclipse.core.commands.operations.IUndoableOperation
- Overrides:
canUndo
in classorg.eclipse.core.commands.operations.AbstractOperation
execute
public org.eclipse.core.runtime.IStatus execute(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException
- Specified by:
execute
in interfaceorg.eclipse.core.commands.operations.IUndoableOperation
- Specified by:
execute
in classorg.eclipse.core.commands.operations.AbstractOperation
- Throws:
org.eclipse.core.commands.ExecutionException
redo
public org.eclipse.core.runtime.IStatus redo(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException
- Specified by:
redo
in interfaceorg.eclipse.core.commands.operations.IUndoableOperation
- Specified by:
redo
in classorg.eclipse.core.commands.operations.AbstractOperation
- Throws:
org.eclipse.core.commands.ExecutionException
undo
public org.eclipse.core.runtime.IStatus undo(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException
- Specified by:
undo
in interfaceorg.eclipse.core.commands.operations.IUndoableOperation
- Specified by:
undo
in classorg.eclipse.core.commands.operations.AbstractOperation
- Throws:
org.eclipse.core.commands.ExecutionException