Class 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 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.
      • 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 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