public interface ICustomUndoRedoFeature
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 feature or not. The
feature may use the context object (e.g. the contained properties set) passed
to the contained methods while executing the feature 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
ICustomAbortableUndoRedoFeature
which offers an
ICustomAbortableUndoRedoFeature.isAbort()
method that causes the
cancellation of undo/redo operation in case true
is returned.
ICustomAbortableUndoRedoFeature
Modifier and Type | Method and Description |
---|---|
boolean |
canRedo(IContext context)
Decides if the processed feature can be re-done.
|
boolean |
canUndo(IContext context)
Decides if the changes done by a processed feature can be undone.
|
void |
postRedo(IContext context)
This method will be called by the Graphiti framework after the EMF undo
has finished.
|
void |
postUndo(IContext context)
This method will be called by the Graphiti framework after the EMF undo
is finished.
|
void |
preRedo(IContext context)
This method will be called by the Graphiti framework before the EMF undo
has triggered.
|
void |
preUndo(IContext context)
This method will be called by the Graphiti framework before the EMF undo
is triggered.
|
boolean canUndo(IContext context)
preUndo(IContext)
.
Note that as soon as any feature reports false
here, also
all previous entries in the command stack are no longer reachable for
undo.
Note: this method with exactly the same signature is also already part of
the IFeature
contract. It is repeated here for transparency
purposes only.
context
- this is the instance of the IContext
object that was
in use when executing the feature.void preUndo(IContext context)
postUndo(IContext)
.context
- this is the instance of the IContext
object that was
in use when executing the featurevoid postUndo(IContext context)
preUndo(IContext)
.context
- this is the instance of the IContext
object that was
in use when executing the featureboolean canRedo(IContext context)
preRedo(IContext)
.
Note that as soon as any feature reports false
here, also
all consecutive entries in the command stack are no longer reachable for
redo.
context
- this is the instance of the IContext
object that was
in use when executing the featurevoid preRedo(IContext context)
postRedo(IContext)
. (Usually it might be
sufficient to delegate to the execution method of the feature.)context
- this is the instance of the IContext
object that was
in use when executing the featurevoid postRedo(IContext context)
preRedo(IContext)
. (Usually it might be
sufficient to delegate to the execution method of the feature.)context
- this is the instance of the IContext
object that was
in use when executing the feature