org.pietschy.command.undo

Class UndoableActionCommand

Implemented Interfaces:
ActionCommandExecutor, UndoableEventSource

public abstract class UndoableActionCommand
extends ActionCommand
implements UndoableEventSource

UndoableActionCommands provide a default implementation for commands that can be undone. UndoableActionCommands implement UndoableEventSource and can be monitored by an UndoController
Version:
$Revision: 1.5 $
Author:
andrewp

Field Summary

Fields inherited from class org.pietschy.command.ActionCommand

HINT_ACTION_EVENT, HINT_INVOKER, HINT_INVOKER_WINDOW, HINT_MODIFIERS

Fields inherited from class org.pietschy.command.Command

internalLog, listenerList, pcs

Constructor Summary

UndoableActionCommand()
Creates a new anonymous UndoableActionCommand.
UndoableActionCommand(String commandId)
Creates a new command with the speicifed Id that is bound to the CommandManager.defaultInstance().
UndoableActionCommand(CommandManager manager, String commandId)
Creates a new command with the specified id that is bound to the specified CommandManager.

Method Summary

void
addUndoableEditListener(UndoableEditListener l)
Adds a new javax.swing.event.UndoableEditListener to this command.
UndoableEditListener[]
getUndoableEditListeners()
Gets the javax.swing.event.UndoableEditListeners regstered with this command.
protected void
handleExecute()
Delegates to performEdit() and notifies any UndoableEditListeners of any edit that performEdit returns.
protected abstract UndoableEdit
performEdit()
Called by handleExecute() to perform the undoable edit.
protected void
postEdit(UndoableEdit e)
Notifies all the javax.swing.event.UndoableEditListeners of the undoable event.
void
removeUndoableEditListener(UndoableEditListener l)
Removes an javax.swing.event.UndoableEditListener from this command.

Methods inherited from class org.pietschy.command.ActionCommand

addCommandListener, addInterceptor, areEqual, attach, configureButtonStates, detach, execute, execute, getActionAdapter, getActionAdapter, getActionCommand, getActionEvent, getHint, getHint, getHints, getInvoker, getInvokerWindow, getModifiers, handleExecute, installShortCut, installShortCut, postExecute, preExecute, putHint, putHints, removeCommandListener, removeInterceptor, requestDefautIn, setActionCommand, uninstallShortCut, uninstallShortCut

Methods inherited from class org.pietschy.command.Command

addFace, addHoverListener, addNewFace, addNotify, addPropertyChangeListener, addPropertyChangeListener, attach, buttonIterator, configureButtonAppearance, configureButtonAppearances, configureButtonAppearances, configureButtonStates, createButton, createButton, createButton, createButton, createMenuItem, createMenuItem, createMenuItem, createMenuItem, detach, export, faceExists, fireHoverEnded, fireHoverStarted, getAccelerator, getAlternativeFaceNames, getButtonFactory, getButtonIn, getCommandManager, getDefaultFace, getDefaultFace, getDescription, getFace, getFace, getIcon, getId, getLongDescription, getMenuFactory, getMnemonic, getMnemonicIndex, getProperty, getProperty, getPropertyNames, getSelectedIcon, getText, getTextPosition, getToolbarFactory, initCommandManager, installFace, isAnonymous, isAttachedTo, isEnabled, isVisible, putProperty, removeHoverListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, requestFocusIn, setAccelerator, setButtonFactory, setDescription, setEnabled, setIcon, setLongDescription, setMenuFactory, setMnemonic, setMnemonicIndex, setSelectedIcon, setText, setTextPosition, setToolbarFactory, setVisible, toString

Constructor Details

UndoableActionCommand

public UndoableActionCommand()
Creates a new anonymous UndoableActionCommand. Anonymous commands must be fully programatically generated and can only be added to groups manually by calling groupCommand.installFace(myAnonymousCommand).

UndoableActionCommand

public UndoableActionCommand(String commandId)

UndoableActionCommand

public UndoableActionCommand(CommandManager manager,
                             String commandId)
Creates a new command with the specified id that is bound to the specified CommandManager.

Method Details

addUndoableEditListener

public void addUndoableEditListener(UndoableEditListener l)
Adds a new javax.swing.event.UndoableEditListener to this command.
Specified by:
addUndoableEditListener in interface UndoableEventSource
Parameters:
l - the listener to installFace.

getUndoableEditListeners

public UndoableEditListener[] getUndoableEditListeners()
Gets the javax.swing.event.UndoableEditListeners regstered with this command.
Specified by:
getUndoableEditListeners in interface UndoableEventSource

handleExecute

protected final void handleExecute()
Delegates to performEdit() and notifies any UndoableEditListeners of any edit that performEdit returns.
Overrides:
handleExecute in interface ActionCommand

performEdit

protected abstract UndoableEdit performEdit()
Called by handleExecute() to perform the undoable edit. This method must return an undoable edit that can be used by an undo controller to reverse the effects of the command. This method may return null if nothing was done.
Returns:
an UndoableEdit that can be used to undo the effects of the command or null if no action was taken.

postEdit

protected void postEdit(UndoableEdit e)
Notifies all the javax.swing.event.UndoableEditListeners of the undoable event.
Parameters:
e - the undoable event.

removeUndoableEditListener

public void removeUndoableEditListener(UndoableEditListener l)
Removes an javax.swing.event.UndoableEditListener from this command.
Specified by:
removeUndoableEditListener in interface UndoableEventSource
Parameters:
l - the listener to remove.