org.eclipse.graphiti.ui.editor

## Class DefaultRefreshBehavior

- java.lang.Object
- - org.eclipse.graphiti.ui.editor.DefaultRefreshBehavior

    public class DefaultRefreshBehavior
    extends java.lang.Object

The default implementation for the `DiagramBehavior` behavior extension that controls the refresh behavior of the Graphiti diagram editor. Clients may subclass to change the behavior; use `DiagramBehavior.createRefreshBehavior()` to return the instance that shall be used.
Note that there is always a 1:1 relation with a `DiagramBehavior`.

Since:
  0.9

### Constructor Summary

Constructors
Constructor and Description
`DefaultRefreshBehavior(DiagramBehavior diagramBehavior)` Creates a new standard refresh behaviour for a Graphiti diagram editor.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `handleAutoUpdateAtReset()` Handles the auto update at rest of the editor (the editor performs a reload of the EMF resources because e.g.
`void` `handleAutoUpdateAtStartup()` Handles the auto update at startup of the editor and is called by the Graphiti `DiagramBehavior` when the input is set ( `DiagramBehavior#setInput(org.eclipse.ui.IEditorInput)`).
`void` `initRefresh()` Initializes the performance cache and is called by the Graphiti framework before a refresh is triggered.
`void` `internalRefreshEditPart(org.eclipse.gef.EditPart editPart)` Internal refresh of a given `EditPart`.
`boolean` `isAutoRefresh()` Returns if auto refresh is enabled or not.
`boolean` `isMultipleRefreshSupressionActive()` Returns if multiple refreshes shall be omitted and a bundled refresh should happen instead.
`void` `refresh()` Does the refresh of the editor, so that the UI reflects the current state of the Graphiti pictograms model.
`void` `refreshRenderingDecorators(PictogramElement pe)` Refreshes all rendering decorators for the given `PictogramElement` as defined in `IToolBehaviorProvider.getDecorators(PictogramElement)`.
`void` `setAutoRefresh(boolean autoRefresh)` Auto refresh can be enabled or disabled with this function.In case it is enabled the editor will automatically react on EMF resource changes.
`boolean` `shouldRefresh(java.lang.Object obj)` Checks the performance cache if a refresh shall be triggered for the given object.

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

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### DefaultRefreshBehavior

    public DefaultRefreshBehavior(DiagramBehavior diagramBehavior)

Creates a new standard refresh behaviour for a Graphiti diagram editor. The passed `DiagramBehavior` is closely linked to this instance (1:1 relation) and both instances will have a common lifecycle.

Parameters:
  `diagramEditor` - The associated `DiagramBehavior`.
Since:
  0.10

### Method Detail

#### initRefresh

    public void initRefresh()

Initializes the performance cache and is called by the Graphiti framework before a refresh is triggered. Should not be called by clients.

Since:
  0.9

#### handleAutoUpdateAtStartup

    public void handleAutoUpdateAtStartup()

Handles the auto update at startup of the editor and is called by the Graphiti `DiagramBehavior` when the input is set ( `DiagramBehavior#setInput(org.eclipse.ui.IEditorInput)`). The default implementation checks the desired behavior as defined in `IDiagramTypeProvider.isAutoUpdateAtStartup()` and calls `#autoUpdate(Diagram, IDiagramTypeProvider)` in case an update shall be done.

Since:
  0.12 originally introduced with Graphiti 0.9

#### handleAutoUpdateAtReset

    public void handleAutoUpdateAtReset()

Handles the auto update at rest of the editor (the editor performs a reload of the EMF resources because e.g. the underlying file has been changed by another editor) and is called by the Graphiti `DiagramBehavior` after the `Diagram` has been reloaded. The default implementation checks the desired behavior as defined in `IDiagramTypeProvider.isAutoUpdateAtReset()` and calls `#autoUpdate(Diagram, IDiagramTypeProvider)` in case an update shall be done.

Since:
  0.12 originally introduced with Graphiti 0.9

#### refresh

    public void refresh()

Does the refresh of the editor, so that the UI reflects the current state of the Graphiti pictograms model. Also the editor title is updated; in case direct editing is active it is cancelled.

#### refreshRenderingDecorators

    public void refreshRenderingDecorators(PictogramElement pe)

Refreshes all rendering decorators for the given `PictogramElement` as defined in `IToolBehaviorProvider.getDecorators(PictogramElement)`.

Parameters:
  `pe` - the `PictogramElement` to refresh the decorators for

#### internalRefreshEditPart

    public void internalRefreshEditPart(org.eclipse.gef.EditPart editPart)

Internal refresh of a given `EditPart`.

Parameters:
  `editPart` - the edit part to refresh

#### isAutoRefresh

    public boolean isAutoRefresh()

Returns if auto refresh is enabled or not. In case it is enabled the editor will automatically react on EMF resource changes.

By default the auto refresh is turned on so this method returns `true`.

Returns:
  true, if is auto refresh

#### setAutoRefresh

    public void setAutoRefresh(boolean autoRefresh)

Auto refresh can be enabled or disabled with this function.In case it is enabled the editor will automatically react on EMF resource changes.

By default the auto refresh is turned on.

Parameters:
  `autoRefresh` - the new value of auto refresh
Since:
  0.14

#### isMultipleRefreshSupressionActive

    public boolean isMultipleRefreshSupressionActive()

Returns if multiple refreshes shall be omitted and a bundled refresh should happen instead. Is called by the framework on creation and refreshing of `Figure`s.

The default implementation simply returns `true`. Note: returning false here might have large performance implications, so use this option only with extra care!

Returns:

#### shouldRefresh

    public boolean shouldRefresh(java.lang.Object obj)

Checks the performance cache if a refresh shall be triggered for the given object. Should not be called by external clients.

Since:
  0.9