public interface ICustomUndoRedoPattern
Implementing this interface is especially helpful if customers want to
implement undo/redo functionality for non-EMF changes, e.g. for non-EMF
domain models. Note that any EMF-model change (including the changes done to
the graphical representation (Graphiti PictogramElement
s and
GraphicsAlgorithm
s will by handled automatically by the Graphiti
framework no matter if this interface is implemented by a pattern or not. The
pattern may use the context and feature objects (e.g. the contained
properties set) passed to the contained methods while executing the pattern
in order to collect any information needed for undo.
In case you want to cancel undo/redo operations in #preUndo(IContext)
/#preRedo(IContext)
, you need to implement
ICustomAbortableUndoRedoPattern
which offers an
ICustomAbortableUndoRedoPattern.isAbort()
method that causes the
cancellation of undo/redo operation in case true
is returned.
ICustomAbortableUndoRedoPattern
Modifier and Type | Method and Description |
---|---|
boolean |
canRedo(IFeature feature,
IContext context)
Decides if the processed feature can be re-done.
|
boolean |
canUndo(IFeature feature,
IContext context)
Decides if the changes done by a processed pattern functionality can be
undone.
|
void |
postRedo(IFeature feature,
IContext context)
This method will be called by the Graphiti framework after the EMF undo
has finished.
|
void |
postUndo(IFeature feature,
IContext context)
This method will be called by the Graphiti framework after the EMF undo
is finished.
|
void |
preRedo(IFeature feature,
IContext context)
This method will be called by the Graphiti framework before the EMF undo
has triggered.
|
void |
preUndo(IFeature feature,
IContext context)
This method will be called by the Graphiti framework before the EMF undo
is triggered.
|
boolean canUndo(IFeature feature, IContext context)
#preUndo(IContext)
.
Note that as soon as any pattern reports false
here, also
all previous entries in the command stack are no longer reachable for
undo.
void preUndo(IFeature feature, IContext context)
#postUndo(IContext)
.void postUndo(IFeature feature, IContext context)
#preUndo(IContext)
.boolean canRedo(IFeature feature, IContext context)
#preRedo(IContext)
.
Note that as soon as any pattern reports false
here, also
all consecutive entries in the command stack are no longer reachable for
redo.
void preRedo(IFeature feature, IContext context)
#postRedo(IContext)
. (Usually it
might be sufficient to delegate to the execution method of the feature.)void postRedo(IFeature feature, IContext context)
#preRedo(IContext)
. (Usually it
might be sufficient to delegate to the execution method of the feature.)