Package org.eclipse.graphiti.ui.features
Class DefaultDeleteFeature
java.lang.Object
org.eclipse.graphiti.features.impl.AbstractFeature
org.eclipse.graphiti.ui.features.DefaultDeleteFeature
- All Implemented Interfaces:
IDeleteFeature
,IFeature
,IFeatureProviderHolder
,IDelete
,IDescription
,IName
- Direct Known Subclasses:
DeleteFeatureForPattern
The Graphiti default implementation of the
Before the deletion process starts the tool user will be asked if he really wants to delete; the popup appears only once for multi object deletions.
IDeleteFeature
. It cares
about removing the shape(s) representing the deleted domain object(s) from
the diagram (by delegating to the IRemoveFeature
provided by the
IFeatureProvider
. After that the EMF domain objects will be deleted
using standard EMF functionality.Before the deletion process starts the tool user will be asked if he really wants to delete; the popup appears only once for multi object deletions.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canDelete
(IDeleteContext context) Can delete hook.boolean
canExecute
(IContext context) Decides if the current feature can execute with the given context.void
delete
(IDeleteContext context) Hook to implement the actual delete functionality.protected void
Standard functionality to delete one domain object.protected void
deleteBusinessObjects
(Object[] businessObjects) Standard functionality to delete all given domain objects.void
Executes the current feature with the given context.protected String
getDeleteName
(IDeleteContext context) Returns the delete name which will be used for the delete dialog.Gets the description.getName()
Hook to return the name of the delete operation e.g for display in the context menu.protected boolean
getUserDecision
(IDeleteContext context) Shows a dialog which asks the user to confirm the deletion of one or more elements.boolean
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
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
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.protected void
setDoneChanges
(boolean doneChanges) Can be called by users (in subclasses ofDefaultDeleteFeature
) to tell the framework that changes have been done that should reflect on the command stack.Methods inherited from class org.eclipse.graphiti.features.impl.AbstractFeature
addGraphicalRepresentation, canUndo, 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
canUndo, isAvailable
Methods inherited from interface org.eclipse.graphiti.features.IFeatureProviderHolder
getFeatureProvider
-
Constructor Details
-
DefaultDeleteFeature
Creates a newDefaultDeleteFeature
.- Parameters:
fp
- the feature provider
-
-
Method Details
-
canDelete
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. -
delete
Description copied from interface:IDelete
Hook to implement the actual delete functionality. -
deleteBusinessObjects
Standard functionality to delete all given domain objects.- Parameters:
businessObjects
- the domain objects to delete
-
deleteBusinessObject
Standard functionality to delete one domain object. Will delegate forEObject
s toEcoreUtil.delete(EObject, boolean)
; non-EMF objects will be ignored.- Parameters:
bo
- the domain object to delete
-
preDelete
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. -
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
- Returns:
true
in case you want to cancel the current operation,false
otherwise.- Since:
- 0.12
-
postDelete
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
- Parameters:
context
- the context
-
canExecute
Description copied from interface:IFeature
Decides if the current feature can execute with the given context.- Specified by:
canExecute
in interfaceIFeature
- Parameters:
context
- this is the general input for this method- Returns:
- true if the feature can be executed, false if not
- See Also:
-
execute
Description copied from interface:IFeature
Executes the current feature with the given context. -
getName
Hook to return the name of the delete operation e.g for display in the context menu. The standard implementation simply returns "Delete".- Specified by:
getName
in interfaceIName
- Overrides:
getName
in classAbstractFeature
- Returns:
- The diplay name of the operation
-
getDescription
Description copied from interface:IDescription
Gets the description.- Specified by:
getDescription
in interfaceIDescription
- Overrides:
getDescription
in classAbstractFeature
- Returns:
- the description
-
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 classAbstractFeature
- Returns:
true
if the feature should appear in the undo stack,false
otherwise
-
setDoneChanges
protected void setDoneChanges(boolean doneChanges) Can be called by users (in subclasses ofDefaultDeleteFeature
) to tell the framework that changes have been done that should reflect on the command stack. The method is called by the standard implementation indelete(IDeleteContext)
right after the first shape has been removed from the diagram.- Parameters:
doneChanges
-true
in case modifications have been made,false
otherwise- Since:
- 0.9
-
getUserDecision
Shows a dialog which asks the user to confirm the deletion of one or more elements.- Parameters:
context
- delete context- Returns:
true
to delete element(s);false
to cancel delete
-
getDeleteName
Returns the delete name which will be used for the delete dialog. E.g. "file test.java". The default implementation returnsnull
to indicate that the popup text refers to "this object".- Parameters:
context
- the delete context- Returns:
- the delete name, or
null
to indicate no special name shall be used - Since:
- 0.8
-