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 call
commit at the end, as simple as that! If it fails, call rollback, but ALWAYS make sure either commit or rollback is called using try-catch-finally, otherwise there may be leaks due to history listeners.- Author:
- Christopher Mindus
Constructor Summary
ConstructorsConstructorDescriptionUndoTransaction(String description, org.eclipse.core.commands.operations.IUndoContext undoContext) Constructor used to begin the undo transaction.Method Summary
Modifier and TypeMethodDescriptionbooleanbooleancanRedo()booleancanUndo()voidcommit()Commits a series of operations in a transaction initiated with a prior call tobegin.voiddispose()org.eclipse.core.runtime.IStatusexecute(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) org.eclipse.core.runtime.IStatusredo(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) booleanrollback(org.eclipse.swt.widgets.Shell shell, boolean performUndo) Performs a rollback.org.eclipse.core.runtime.IStatusundo(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) Methods inherited from class org.eclipse.core.commands.operations.AbstractOperation
addContext, getContexts, getLabel, hasContext, removeContext, setLabel, toString
Constructor Details
UndoTransaction
public UndoTransaction(String description, org.eclipse.core.commands.operations.IUndoContext undoContext) Constructor used to begin the undo transaction.It is very important to call
commitorrollbackin all cases, usetry-catch-finallyto ensure this is done even when exceptions occur.- Parameters:
description- The description of the entire operation.
Method Details
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
performUndois 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:
disposein interfaceorg.eclipse.core.commands.operations.IUndoableOperation- Overrides:
disposein classorg.eclipse.core.commands.operations.AbstractOperation
canExecute
public boolean canExecute()- Specified by:
canExecutein interfaceorg.eclipse.core.commands.operations.IUndoableOperation- Overrides:
canExecutein classorg.eclipse.core.commands.operations.AbstractOperation
canRedo
public boolean canRedo()- Specified by:
canRedoin interfaceorg.eclipse.core.commands.operations.IUndoableOperation- Overrides:
canRedoin classorg.eclipse.core.commands.operations.AbstractOperation
canUndo
public boolean canUndo()- Specified by:
canUndoin interfaceorg.eclipse.core.commands.operations.IUndoableOperation- Overrides:
canUndoin 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:
executein interfaceorg.eclipse.core.commands.operations.IUndoableOperation- Specified by:
executein 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:
redoin interfaceorg.eclipse.core.commands.operations.IUndoableOperation- Specified by:
redoin 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:
undoin interfaceorg.eclipse.core.commands.operations.IUndoableOperation- Specified by:
undoin classorg.eclipse.core.commands.operations.AbstractOperation- Throws:
org.eclipse.core.commands.ExecutionException