Package org.eclipse.graphiti.pattern

# 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 new `DeleteFeatureForPattern`.

## Method Summary

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 after `ICustomUndoRedoFeature.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 after `IDelete.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 Details

### DeleteFeatureForPattern

public DeleteFeatureForPattern(IFeatureProvider featureProvider, IPattern pattern)
Creates a new `DeleteFeatureForPattern`.

Parameters:
  `featureProvider` - the feature provider
  `pattern` - the pattern

## Method Details

### 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 interface `IDelete`
Overrides:
  `canDelete` in class `DefaultDeleteFeature`
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 call
invalid reference

    DefaultDeleteFeature#setDoneChanges(boolean)

in case you modify any EMF objects to enable that the command stack gets updated.

Specified by:
  `preDelete` in interface `IDelete`
Overrides:
  `preDelete` in class `DefaultDeleteFeature`
Parameters:
  `context` - the context

### isDeleteAbort

public boolean isDeleteAbort()
Description copied from interface: `IDelete`
The Graphiti framework will call this method after `IDelete.preDelete(IDeleteContext)` has been called and before the actual delete is done. In case this method returns `true`, the operation will be cancelled by the Graphiti framework by throwing an `OperationCanceledException` 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 interface `IDelete`
Overrides:
  `isDeleteAbort` in class `DefaultDeleteFeature`
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 interface `IDelete`
Overrides:
  `delete` in class `DefaultDeleteFeature`
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 interface `IDelete`
Overrides:
  `postDelete` in class `DefaultDeleteFeature`
Parameters:
  `context` - the context

### isAbort

public boolean isAbort()
Description copied from interface: `ICustomAbortableUndoRedoFeature`
The Graphiti framework will call this method after `ICustomUndoRedoFeature.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 returns `true`, the operation will be cancelled by the Graphiti framework by throwing an `OperationCanceledException` 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 interface `ICustomAbortableUndoRedoFeature`
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 interface `ICustomUndoRedoFeature`
Specified by:
  `canUndo` in interface `IFeature`
Overrides:
  `canUndo` in class `AbstractFeature`
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 in `ICustomUndoRedoFeature.postUndo(IContext)`.

Specified by:
  `preUndo` in interface `ICustomUndoRedoFeature`
Parameters:
  `context` - this is the instance of the `IContext` 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 in `ICustomUndoRedoFeature.preUndo(IContext)`.

Specified by:
  `postUndo` in interface `ICustomUndoRedoFeature`
Parameters:
  `context` - this is the instance of the `IContext` 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. before `ICustomUndoRedoFeature.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 interface `ICustomUndoRedoFeature`
Parameters:
  `context` - this is the instance of the `IContext` 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 in `ICustomUndoRedoFeature.postRedo(IContext)`. (Usually it might be sufficient to delegate to the execution method of the feature.)

Specified by:
  `preRedo` in interface `ICustomUndoRedoFeature`
Parameters:
  `context` - this is the instance of the `IContext` 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 in `ICustomUndoRedoFeature.preRedo(IContext)`. (Usually it might be sufficient to delegate to the execution method of the feature.)

Specified by:
  `postRedo` in interface `ICustomUndoRedoFeature`
Parameters:
  `context` - this is the instance of the `IContext` 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 in `AbstractFeature`), 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 interface `IFeature`
Overrides:
  `hasDoneChanges` in class `DefaultDeleteFeature`
Returns:
  `true` if the feature should appear in the undo stack, `false` otherwise