Class DeferredUpdateManager

java.lang.Object
org.eclipse.draw2d.UpdateManager
org.eclipse.draw2d.DeferredUpdateManager

public class DeferredUpdateManager extends UpdateManager
An UpdateManager that asynchronously updates the affected figures.
  • Constructor Details

    • DeferredUpdateManager

      public DeferredUpdateManager()
      Empty constructor.
    • DeferredUpdateManager

      public DeferredUpdateManager(GraphicsSource gs)
      Constructs a new DererredUpdateManager with the given GraphicsSource.
      Parameters:
      gs - the graphics source
  • Method Details

    • addDirtyRegion

      public void addDirtyRegion(IFigure figure, int x, int y, int w, int h)
      Adds a dirty region (defined by the rectangle x, y, w, h) to the update queue. If the figure isn't visible or either the width or height are 0, the method returns without queueing the dirty region.
      Specified by:
      addDirtyRegion in class UpdateManager
      Parameters:
      figure - the figure that contains the dirty region
      x - the x coordinate of the dirty region
      y - the y coordinate of the dirty region
      w - the width of the dirty region
      h - the height of the dirty region
    • addInvalidFigure

      public void addInvalidFigure(IFigure f)
      Adds the given figure to the update queue. Invalid figures will be validated before the damaged regions are repainted.
      Specified by:
      addInvalidFigure in class UpdateManager
      Parameters:
      f - the invalid figure
    • getGraphics

      protected Graphics getGraphics(Rectangle region)
      Returns a Graphics object for the given region.
      Parameters:
      region - the region to be repainted
      Returns:
      the Graphics object
    • paint

      protected void paint(GC gc)
      Description copied from class: UpdateManager
      Invoked by the LightweightSystem ( LightweightSystem.paint(GC)) to have the update manger paint its contents. Delegates to UpdateManager.performUpdate(Rectangle) with the passed in gc's clipping region (GC.getClipping()) by default. Subclasses may override if they need to access the GC for updating.
      Overrides:
      paint in class UpdateManager
      Parameters:
      gc - The GC to be used for updating
      Since:
      3.10
    • performUpdate

      public void performUpdate()
      Performs the update. Validates the invalid figures and then repaints the dirty regions.
      Specified by:
      performUpdate in class UpdateManager
      See Also:
    • performValidation

      public void performValidation()
      Description copied from class: UpdateManager
      Performs a partial update if supported (validation only). Fires notification to listeners that validation has been performed. By default this method calls UpdateManager.performUpdate(). Subclasses should override this method to support validation without repainting.
      Overrides:
      performValidation in class UpdateManager
      See Also:
    • performUpdate

      public void performUpdate(Rectangle exposed)
      Adds the given exposed region to the update queue and then performs the update.
      Specified by:
      performUpdate in class UpdateManager
      Parameters:
      exposed - the exposed region
    • queueWork

      protected void queueWork()
      Posts an DeferredUpdateManager.UpdateRequest using Display.asyncExec(Runnable). If work has already been queued, a new request is not needed.
    • sendUpdateRequest

      protected void sendUpdateRequest()
      Fires the UpdateRequest to the current display asynchronously.
      Since:
      3.2
    • releaseGraphics

      protected void releaseGraphics(Graphics graphics)
      Releases the graphics object, which causes the GraphicsSource to flush.
      Parameters:
      graphics - the graphics object
    • repairDamage

      protected void repairDamage()
      Repaints the dirty regions on the update queue and calls UpdateManager.firePainting(Rectangle, Map), unless there are no dirty regions.
    • runWithUpdate

      public void runWithUpdate(Runnable runnable)
      Adds the given runnable and queues an update if an update is not under progress.
      Overrides:
      runWithUpdate in class UpdateManager
      Parameters:
      runnable - the runnable
    • setGraphicsSource

      public void setGraphicsSource(GraphicsSource gs)
      Sets the graphics source.
      Specified by:
      setGraphicsSource in class UpdateManager
      Parameters:
      gs - the graphics source
    • setRoot

      public void setRoot(IFigure figure)
      Sets the root figure.
      Specified by:
      setRoot in class UpdateManager
      Parameters:
      figure - the root figure
    • validateFigures

      protected void validateFigures()
      Validates all invalid figures on the update queue and calls UpdateManager.fireValidating() unless there are no invalid figures.