|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eclipse.emf.common.command.AbstractCommand org.eclipse.emf.transaction.RecordingCommand
public abstract class RecordingCommand
A partial Command
implementation that
records the changes made by a subclass's direct manipulation of objects via
the metamodel's API. This simplifies the programming model for complex
commands (not requiring composition of set/add/remove commands) while
still providing automatic undo/redo support.
Subclasses are simply required to implement the doExecute()
method
to make the desired changes to the model. Note that, because changes are
recorded for automatic undo/redo, the concrete command must not make any
changes that cannot be recorded by EMF (unless it does not matter that they
will not be undone).
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.eclipse.emf.common.command.AbstractCommand |
---|
AbstractCommand.NonDirtying |
Nested classes/interfaces inherited from interface org.eclipse.emf.transaction.util.ConditionalRedoCommand |
---|
ConditionalRedoCommand.Compound |
Field Summary |
---|
Fields inherited from class org.eclipse.emf.common.command.AbstractCommand |
---|
description, isExecutable, isPrepared, label |
Constructor Summary | |
---|---|
RecordingCommand(TransactionalEditingDomain domain)
Initializes me with the editing domain in which I am to be executed. |
|
RecordingCommand(TransactionalEditingDomain domain,
String label)
Initializes me with my editing domain and a human-readable label. |
|
RecordingCommand(TransactionalEditingDomain domain,
String label,
String description)
Initializes me with my editing domain, label, and more expansive description. |
Method Summary | |
---|---|
boolean |
canRedo()
I can be redone if I successfully recorded the changes that I executed. |
boolean |
canUndo()
I can be undone if I successfully recorded the changes that I executed. |
Command |
chain(Command command)
|
void |
dispose()
Extends the inherited implementation by disposing my change description, if any. |
protected abstract void |
doExecute()
Implemented by subclasses to perform the necessary changes in the model. |
void |
execute()
Implements the execution with automatic recording of undo information. |
protected boolean |
prepare()
Subclasses should override this if they have more preparation to do. |
void |
redo()
Redoes the changes that I recorded. |
void |
undo()
Undoes the changes that I recorded. |
Methods inherited from class org.eclipse.emf.common.command.AbstractCommand |
---|
canExecute, getAffectedObjects, getDescription, getLabel, getResult, setDescription, setLabel, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.eclipse.emf.common.command.Command |
---|
canExecute, getAffectedObjects, getDescription, getLabel, getResult |
Constructor Detail |
---|
public RecordingCommand(TransactionalEditingDomain domain)
domain
- my domainpublic RecordingCommand(TransactionalEditingDomain domain, String label)
domain
- my domainlabel
- my user-friendly labelpublic RecordingCommand(TransactionalEditingDomain domain, String label, String description)
domain
- my domainlabel
- my labeldescription
- my long descriptionMethod Detail |
---|
protected boolean prepare()
true
.
prepare
in class AbstractCommand
public final void execute()
doExecute()
method.
execute
in interface Command
doExecute()
public boolean canUndo()
canUndo
in interface Command
canUndo
in class AbstractCommand
public boolean canRedo()
canRedo
in interface ConditionalRedoCommand
true
if I can be redone; false
,
otherwisepublic final void undo()
undo
in interface Command
undo
in class AbstractCommand
IllegalStateException
- if I am not undoablecanUndo()
public final void redo()
redo
in interface Command
IllegalStateException
- if I am not redoablecanRedo()
protected abstract void doExecute()
public Command chain(Command command)
chain
in interface Command
chain
in class AbstractCommand
public void dispose()
dispose
in interface Command
dispose
in class AbstractCommand
|
Copyright 2002, 2007 IBM Corporation and others. All Rights Reserved. |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |