Class DeleteFeatureForPattern
- java.lang.Object
-
- org.eclipse.graphiti.features.impl.AbstractFeature
-
- org.eclipse.graphiti.ui.features.DefaultDeleteFeature
-
- org.eclipse.graphiti.pattern.DeleteFeatureForPattern
-
- All Implemented Interfaces:
ICustomAbortableUndoRedoFeature
,ICustomUndoRedoFeature
,IDeleteFeature
,IFeature
,IFeatureProviderHolder
,IDelete
,IDescription
,IName
public class DeleteFeatureForPattern extends DefaultDeleteFeature implements ICustomAbortableUndoRedoFeature
This feature wraps the delete functionality of a pattern for calls of the Graphiti framework. Clients should not need to use this class directly.- Since:
- 0.8.0
-
-
Constructor Summary
Constructors Constructor Description DeleteFeatureForPattern(IFeatureProvider featureProvider, IPattern pattern)
Creates a newDeleteFeatureForPattern
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canDelete(IDeleteContext context)
Can delete hook.boolean
canRedo(IContext context)
Decides if the processed feature can be re-done.boolean
canUndo(IContext context)
Decides if the current feature can be undone - this is the undo of the execute operation.void
delete(IDeleteContext context)
Hook to implement the actual delete functionality.boolean
hasDoneChanges()
Is queried by the framework after a feature has been executed to find out if this feature should appear in the undo stack of e.g.boolean
isAbort()
The Graphiti framework will call this method afterICustomUndoRedoFeature.preUndo(org.eclipse.graphiti.features.context.IContext)
/ICustomUndoRedoFeature.preRedo(org.eclipse.graphiti.features.context.IContext)
have been called and before the actual undo/redo operation is triggered.boolean
isDeleteAbort()
The Graphiti framework will call this method afterIDelete.preDelete(IDeleteContext)
has been called and before the actual delete is done.void
postDelete(IDeleteContext context)
Post delete hook that can be implemented by users to perform any operations that need to be done after the standard delete functionality ends.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
preDelete(IDeleteContext context)
Pre delete hook that can be implemented by users to perform any operations that need to be done before the standard delete functionality starts.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.-
Methods inherited from class org.eclipse.graphiti.ui.features.DefaultDeleteFeature
canExecute, deleteBusinessObject, deleteBusinessObjects, execute, getDeleteName, getDescription, getName, getUserDecision, setDoneChanges
-
Methods inherited from class org.eclipse.graphiti.features.impl.AbstractFeature
addGraphicalRepresentation, getAllBusinessObjectsForPictogramElement, getBusinessObjectForPictogramElement, getDiagram, getDiagramBehavior, getFeatureProvider, getProgressCallback, getUserDecision, isAvailable, layoutPictogramElement, link, link, manageColor, manageColor, manageDefaultFont, manageFont, manageFont, setProgressCallback, toString, updatePictogramElement
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.graphiti.features.IFeature
isAvailable
-
Methods inherited from interface org.eclipse.graphiti.features.IFeatureProviderHolder
getFeatureProvider
-
-
-
-
Constructor Detail
-
DeleteFeatureForPattern
public DeleteFeatureForPattern(IFeatureProvider featureProvider, IPattern pattern)
Creates a newDeleteFeatureForPattern
.- Parameters:
featureProvider
- the feature providerpattern
- the pattern
-
-
Method Detail
-
canDelete
public boolean canDelete(IDeleteContext context)
Description copied from interface:IDelete
Can delete hook. Needs to be implemented in order to decide if a feature can (and wants to) handle a delete request.- Specified by:
canDelete
in interfaceIDelete
- Overrides:
canDelete
in classDefaultDeleteFeature
- Parameters:
context
- the context describing the request- Returns:
true
, if the feature can perform the delete operation
-
preDelete
public void preDelete(IDeleteContext context)
Description copied from interface:IDelete
Pre delete hook that can be implemented by users to perform any operations that need to be done before the standard delete functionality starts. Be sure to callDefaultDeleteFeature#setDoneChanges(boolean)
in case you modify any EMF objects to enable that the command stack gets updated.- Specified by:
preDelete
in interfaceIDelete
- Overrides:
preDelete
in classDefaultDeleteFeature
- Parameters:
context
- the context
-
isDeleteAbort
public boolean isDeleteAbort()
Description copied from interface:IDelete
The Graphiti framework will call this method afterIDelete.preDelete(IDeleteContext)
has been called and before the actual delete is done. In case this method returnstrue
, the operation will be cancelled by the Graphiti framework by throwing anOperationCanceledException
that causes am EMF revert of the operation.Implementing classes might e.g. set a flag in
IDelete.preDelete(IDeleteContext)
as cancellation indication and check that that flag here.- Specified by:
isDeleteAbort
in interfaceIDelete
- Overrides:
isDeleteAbort
in classDefaultDeleteFeature
- Returns:
true
in case you want to cancel the current operation,false
otherwise.- Since:
- 0.12
-
delete
public void delete(IDeleteContext context)
Description copied from interface:IDelete
Hook to implement the actual delete functionality.- Specified by:
delete
in interfaceIDelete
- Overrides:
delete
in classDefaultDeleteFeature
- Parameters:
context
- the context
-
postDelete
public void postDelete(IDeleteContext context)
Description copied from interface:IDelete
Post delete hook that can be implemented by users to perform any operations that need to be done after the standard delete functionality ends.- Specified by:
postDelete
in interfaceIDelete
- Overrides:
postDelete
in classDefaultDeleteFeature
- Parameters:
context
- the context
-
isAbort
public boolean isAbort()
Description copied from interface:ICustomAbortableUndoRedoFeature
The Graphiti framework will call this method afterICustomUndoRedoFeature.preUndo(org.eclipse.graphiti.features.context.IContext)
/ICustomUndoRedoFeature.preRedo(org.eclipse.graphiti.features.context.IContext)
have been called and before the actual undo/redo operation is triggered. In case this method returnstrue
, the operation will be cancelled by the Graphiti framework by throwing anOperationCanceledException
that causes am EMF revert of the operation.Implementing classes might e.g. set a flag in
ICustomUndoRedoFeature.preUndo(org.eclipse.graphiti.features.context.IContext)
/ICustomUndoRedoFeature.preRedo(org.eclipse.graphiti.features.context.IContext)
as cancellation indication and check that that flag here.- Specified by:
isAbort
in interfaceICustomAbortableUndoRedoFeature
- Returns:
true
in case you want to cancel the current operation,false
otherwise.- Since:
- 0.12
-
canUndo
public boolean canUndo(IContext context)
Description copied from interface:IFeature
Decides if the current feature can be undone - this is the undo of the execute operation.- Specified by:
canUndo
in interfaceICustomUndoRedoFeature
- Specified by:
canUndo
in interfaceIFeature
- Overrides:
canUndo
in classAbstractFeature
- Parameters:
context
- this is the general input for this method- Returns:
- true if the feature can be undone, false if not
- See Also:
IContext
-
preUndo
public void preUndo(IContext context)
Description copied from interface:ICustomUndoRedoFeature
This method will be called by the Graphiti framework before the EMF undo is triggered. Customers may revert their non-EMF changes done by the feature here or inICustomUndoRedoFeature.postUndo(IContext)
.- Specified by:
preUndo
in interfaceICustomUndoRedoFeature
- Parameters:
context
- this is the instance of theIContext
object that was in use when executing the feature- Since:
- 0.12
-
postUndo
public void postUndo(IContext context)
Description copied from interface:ICustomUndoRedoFeature
This method will be called by the Graphiti framework after the EMF undo is finished. Customers may revert their non-EMF changes done by the feature here or inICustomUndoRedoFeature.preUndo(IContext)
.- Specified by:
postUndo
in interfaceICustomUndoRedoFeature
- Parameters:
context
- this is the instance of theIContext
object that was in use when executing the feature- Since:
- 0.12
-
canRedo
public boolean canRedo(IContext context)
Description copied from interface:ICustomUndoRedoFeature
Decides if the processed feature can be re-done. This method is called once by the Graphiti framework just before any redo work is started, e.g. beforeICustomUndoRedoFeature.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.- Specified by:
canRedo
in interfaceICustomUndoRedoFeature
- Parameters:
context
- this is the instance of theIContext
object that was in use when executing the feature- Returns:
- true if the feature can be re-done, false if not
-
preRedo
public void preRedo(IContext context)
Description copied from interface:ICustomUndoRedoFeature
This method will be called by the Graphiti framework before the EMF undo has triggered. Customers may re-apply their non-EMF changes done by the feature here or inICustomUndoRedoFeature.postRedo(IContext)
. (Usually it might be sufficient to delegate to the execution method of the feature.)- Specified by:
preRedo
in interfaceICustomUndoRedoFeature
- Parameters:
context
- this is the instance of theIContext
object that was in use when executing the feature- Since:
- 0.12
-
postRedo
public void postRedo(IContext context)
Description copied from interface:ICustomUndoRedoFeature
This method will be called by the Graphiti framework after the EMF undo has finished. Customers may re-apply their non-EMF changes done by the feature here or inICustomUndoRedoFeature.preRedo(IContext)
. (Usually it might be sufficient to delegate to the execution method of the feature.)- Specified by:
postRedo
in interfaceICustomUndoRedoFeature
- Parameters:
context
- this is the instance of theIContext
object that was in use when executing the feature- Since:
- 0.12
-
hasDoneChanges
public boolean hasDoneChanges()
Description copied from interface:IFeature
Is queried by the framework after a feature has been executed to find out if this feature should appear in the undo stack of e.g. an editor. By default all features should appear there (see implementation inAbstractFeature
), but features may decide to override this behavior. Note that this is a dynamic attribute of the feature that is queried each time after the feature has been executed.IMPORTANT NOTE: The implementor of the feature is responsible for correctly implementing this method! It might lead to inconsistencies in the command stack if this method returns
false
although the feature did changes.- Specified by:
hasDoneChanges
in interfaceIFeature
- Overrides:
hasDoneChanges
in classDefaultDeleteFeature
- Returns:
true
if the feature should appear in the undo stack,false
otherwise
-
-