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
public class DefaultDeleteFeature extends AbstractFeature implements IDeleteFeature
The Graphiti default implementation of theIDeleteFeature
. It cares about removing the shape(s) representing the deleted domain object(s) from the diagram (by delegating to theIRemoveFeature
provided by theIFeatureProvider
. 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
Constructors Constructor Description DefaultDeleteFeature(IFeatureProvider fp)
Creates a newDefaultDeleteFeature
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
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
deleteBusinessObject(java.lang.Object bo)
Standard functionality to delete one domain object.protected void
deleteBusinessObjects(java.lang.Object[] businessObjects)
Standard functionality to delete all given domain objects.void
execute(IContext context)
Executes the current feature with the given context.protected java.lang.String
getDeleteName(IDeleteContext context)
Returns the delete name which will be used for the delete dialog.java.lang.String
getDescription()
Gets the description.java.lang.String
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
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
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
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 Detail
-
DefaultDeleteFeature
public DefaultDeleteFeature(IFeatureProvider fp)
Creates a newDefaultDeleteFeature
.- Parameters:
fp
- the feature provider
-
-
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.
-
delete
public void delete(IDeleteContext context)
Description copied from interface:IDelete
Hook to implement the actual delete functionality.
-
deleteBusinessObjects
protected void deleteBusinessObjects(java.lang.Object[] businessObjects)
Standard functionality to delete all given domain objects.- Parameters:
businessObjects
- the domain objects to delete
-
deleteBusinessObject
protected void deleteBusinessObject(java.lang.Object bo)
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
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.
-
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
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
- Parameters:
context
- the context
-
canExecute
public boolean canExecute(IContext context)
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:
IContext
-
execute
public void execute(IContext context)
Description copied from interface:IFeature
Executes the current feature with the given context.
-
getName
public java.lang.String 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
public java.lang.String 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
protected boolean getUserDecision(IDeleteContext context)
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
protected java.lang.String getDeleteName(IDeleteContext context)
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
-
-