Package org.eclipse.graphiti.ui.editor
Class DefaultRefreshBehavior
- java.lang.Object
-
- org.eclipse.graphiti.ui.editor.DefaultRefreshBehavior
-
public class DefaultRefreshBehavior extends java.lang.ObjectThe default implementation for theDiagramBehaviorbehavior extension that controls the refresh behavior of the Graphiti diagram editor. Clients may subclass to change the behavior; useDiagramBehavior.createRefreshBehavior()to return the instance that shall be used.
Note that there is always a 1:1 relation with aDiagramBehavior.- Since:
- 0.9
-
-
Field Summary
Fields Modifier and Type Field Description protected DiagramBehaviordiagramBehaviorThe associatedDiagramBehavior.
-
Constructor Summary
Constructors Constructor Description DefaultRefreshBehavior(DiagramBehavior diagramBehavior)Creates a new standard refresh behaviour for a Graphiti diagram editor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidautoUpdate()Handles the auto update of the editor and triggers an update of theDiagramby delegating to theIUpdateFeatureregistered for theDiagram.voidhandleAutoUpdateAtReset()Handles the auto update at rest of the editor (the editor performs a reload of the EMF resources because e.g.voidhandleAutoUpdateAtStartup()Handles the auto update at startup of the editor and is called by the GraphitiDiagramBehaviorwhen the input is set (DiagramBehavior#setInput(org.eclipse.ui.IEditorInput)).voidinitRefresh()Initializes the performance cache and is called by the Graphiti framework before a refresh is triggered.voidinternalRefreshEditPart(org.eclipse.gef.EditPart editPart)Internal refresh of a givenEditPart.booleanisAutoRefresh()Returns if auto refresh is enabled or not.booleanisMultipleRefreshSupressionActive()Returns if multiple refreshes shall be omitted and a bundled refresh should happen instead.voidrefresh()Does the refresh of the editor, so that the UI reflects the current state of the Graphiti pictograms model.protected voidrefresh(PictogramElement pe)Refreshes the givenPictogramElementso that the UI reflects the current state in the Graphiti pictograms model.voidrefreshRenderingDecorators(PictogramElement pe)Refreshes all rendering decorators for the givenPictogramElementas defined inIToolBehaviorProvider.getDecorators(PictogramElement).voidsetAutoRefresh(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.booleanshouldRefresh(java.lang.Object obj)Checks the performance cache if a refresh shall be triggered for the given object.
-
-
-
Field Detail
-
diagramBehavior
protected final DiagramBehavior diagramBehavior
The associatedDiagramBehavior. Set on construction of this class.- Since:
- 0.10
-
-
Constructor Detail
-
DefaultRefreshBehavior
public DefaultRefreshBehavior(DiagramBehavior diagramBehavior)
Creates a new standard refresh behaviour for a Graphiti diagram editor. The passedDiagramBehavioris closely linked to this instance (1:1 relation) and both instances will have a common lifecycle.- Parameters:
diagramEditor- The associatedDiagramBehavior.- 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 GraphitiDiagramBehaviorwhen the input is set (DiagramBehavior#setInput(org.eclipse.ui.IEditorInput)). The default implementation checks the desired behavior as defined inIDiagramTypeProvider.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 GraphitiDiagramBehaviorafter theDiagramhas been reloaded. The default implementation checks the desired behavior as defined inIDiagramTypeProvider.isAutoUpdateAtReset()and calls#autoUpdate(Diagram, IDiagramTypeProvider)in case an update shall be done.- Since:
- 0.12 originally introduced with Graphiti 0.9
-
autoUpdate
protected void autoUpdate()
Handles the auto update of the editor and triggers an update of theDiagramby delegating to theIUpdateFeatureregistered for theDiagram. In the endrefresh()is called to reflect the update in the editor UI. This method is called byhandleAutoUpdateAtStartup()andhandleAutoUpdateAtReset().- 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 givenPictogramElementso that the UI reflects the current state in the Graphiti pictograms model.- Parameters:
pe- thePictogramElementto refresh
-
refreshRenderingDecorators
public void refreshRenderingDecorators(PictogramElement pe)
Refreshes all rendering decorators for the givenPictogramElementas defined inIToolBehaviorProvider.getDecorators(PictogramElement).- Parameters:
pe- thePictogramElementto refresh the decorators for
-
internalRefreshEditPart
public void internalRefreshEditPart(org.eclipse.gef.EditPart editPart)
Internal refresh of a givenEditPart.- 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 ofFigures.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
-
-