org.eclipse.graphiti.features.impl

## Class DefaultUpdateDiagramFeature

- java.lang.Object
- - org.eclipse.graphiti.features.impl.AbstractFeature
  - - org.eclipse.graphiti.features.impl.AbstractUpdateFeature
    - - org.eclipse.graphiti.features.impl.DefaultUpdateDiagramFeature

All Implemented Interfaces:
  ICustomAbortableUndoRedoFeature, ICustomUndoRedoFeature, IFeature, IFeatureProviderHolder, IUpdateFeature, IUpdate, IDescription, IName

    public class DefaultUpdateDiagramFeature
    extends AbstractUpdateFeature
    implements ICustomAbortableUndoRedoFeature

The Class DefaultUpdateDiagramFeature. Updates the shapes directly contained in the diagram. Does not update the connections contained in the diagram, since in many cases the connections get already updated by the shapes they belong to.

### Constructor Summary

Constructors
Constructor and Description
`DefaultUpdateDiagramFeature(IFeatureProvider fp)` Creates a new `DefaultUpdateDiagramFeature`.

### Method Summary

All Methods Instance Methods Concrete Methods
`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.
`boolean` `canUpdate(IUpdateContext context)` Checks whether the values of the current pictogram element of the given context can be updated.
`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.
`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` `update(IUpdateContext context)` Updates the pictogram element.
`IReason` `updateNeeded(IUpdateContext context)` Check whether the values in the pictogram element are up to date, that means whether the graphics algorithm of this pictogram element contain the latest values from the business objects.

### Methods inherited from class org.eclipse.graphiti.features.impl.AbstractUpdateFeature

`canExecute, execute, getDescription, getName`

### Methods inherited from class org.eclipse.graphiti.features.impl.AbstractFeature

`getFeatureProvider, isAvailable, manageFont, manageFont, setProgressCallback, toString`

### Methods inherited from class java.lang.Object

`equals, 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

#### DefaultUpdateDiagramFeature

    public DefaultUpdateDiagramFeature(IFeatureProvider fp)

Creates a new `DefaultUpdateDiagramFeature`.

Parameters:
  `fp` - the feature provider

### Method Detail

#### canUpdate

    public boolean canUpdate(IUpdateContext context)

Description copied from interface: `IUpdate`
Checks whether the values of the current pictogram element of the given context can be updated.

Specified by:
  `canUpdate` in interface `IUpdate`
Parameters:
  `context` - the context
Returns:
  true if update is possible

#### update

    public boolean update(IUpdateContext context)

Description copied from interface: `IUpdate`
Updates the pictogram element. It copies the latest values from the business model to the graphics algorithm of this pictogram elements.

Specified by:
  `update` in interface `IUpdate`
Parameters:
  `context` - the context
Returns:
  true, if update process was successfull

#### updateNeeded

    public IReason updateNeeded(IUpdateContext context)

Description copied from interface: `IUpdate`
Check whether the values in the pictogram element are up to date, that means whether the graphics algorithm of this pictogram element contain the latest values from the business objects.

Specified by:
  `updateNeeded` in interface `IUpdate`
Parameters:
  `context` - the context
Returns:
  true if parts of the pictogram model needs to be updated with the latest values from the business model

#### 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 `AbstractFeature`
Returns:
  `true` if the feature should appear in the undo stack, `false` otherwise

#### 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
Since:
  0.12
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
Since:
  0.12

#### 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

#### 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