org.eclipse.graphiti.ui.editor
Class DefaultRefreshBehavior

java.lang.Object
  extended by org.eclipse.graphiti.ui.editor.DefaultRefreshBehavior

public class DefaultRefreshBehavior
extends java.lang.Object

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

Since:
0.9

Field Summary
protected  DiagramEditor diagramEditor
          The associated DiagramEditor.
private  RefreshPerformanceCache refreshPerformanceCache
           
 
Constructor Summary
DefaultRefreshBehavior(DiagramEditor diagramEditor)
          Creates a new standard refresh behaviour for a Graphiti diagram editor.
 
Method Summary
protected  void autoUpdate()
          Handles the auto update of the editor and triggers an update of the Diagram by delegating to the IUpdateFeature regsitered for the Diagram.
private  RefreshPerformanceCache getRefreshPerformanceCache()
           
protected  void handleAutoUpdateAtReset()
          Handles the auto update at rest of the editor (the editor performs a reload of the EMF resources because e.g.
protected  void handleAutoUpdateAtStartup()
          Handles the auto update at startup of the editor and is called by the Graphiti DiagramEditor when the input is set ( DiagramEditor#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(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.
protected  void refresh(PictogramElement pe)
          Refreshes the given PictogramElement so that the UI reflects the current state in the Graphiti pictograms model.
 void refreshRenderingDecorators(PictogramElement pe)
          Refreshes all rendering decorators for the given PictogramElement as defined in IToolBehaviorProvider.getDecorators(PictogramElement).
 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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

diagramEditor

protected final DiagramEditor diagramEditor
The associated DiagramEditor. Set on construction of this class.


refreshPerformanceCache

private RefreshPerformanceCache refreshPerformanceCache
Constructor Detail

DefaultRefreshBehavior

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

Parameters:
diagramEditor - The associated DiagramEditor.
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

protected void handleAutoUpdateAtStartup()
Handles the auto update at startup of the editor and is called by the Graphiti DiagramEditor when the input is set ( DiagramEditor#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.9

handleAutoUpdateAtReset

protected 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 DiagramEditor 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.9

autoUpdate

protected void autoUpdate()
Handles the auto update of the editor and triggers an update of the Diagram by delegating to the IUpdateFeature regsitered for the Diagram. In the end refresh() is called to reflect the update in the editor UI. This method is called by handleAutoUpdateAtStartup() and handleAutoUpdateAtReset().

Since:
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.


refresh

protected void refresh(PictogramElement pe)
Refreshes the given PictogramElement so that the UI reflects the current state in the Graphiti pictograms model.

Parameters:
pe - the PictogramElement to refresh

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(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.

The default implementation here simply returns true.

Returns:
true, if is auto refresh

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 Figures.

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

getRefreshPerformanceCache

private RefreshPerformanceCache getRefreshPerformanceCache()


Copyright (c) SAP AG 2005, 2012.