Class UpdateManager

java.lang.Object
org.apache.batik.bridge.UpdateManager

public class UpdateManager extends Object
This class provides features to manage the update of an SVG document.
  • Field Details

    • bridgeContext

      protected BridgeContext bridgeContext
      The bridge context.
    • document

      protected Document document
      The document to manage.
    • updateRunnableQueue

      protected RunnableQueue updateRunnableQueue
      The update RunnableQueue.
    • runHandler

      protected RunnableQueue.RunHandler runHandler
      The RunHandler for the RunnableQueue.
    • running

      protected volatile boolean running
      Whether the update manager is running.
    • suspendCalled

      protected volatile boolean suspendCalled
      Whether the suspend() method was called.
    • listeners

      protected List listeners
      The listeners.
    • scriptingEnvironment

      protected ScriptingEnvironment scriptingEnvironment
      The scripting environment.
    • repaintManager

      protected RepaintManager repaintManager
      The repaint manager.
    • updateTracker

      protected UpdateTracker updateTracker
      The update tracker.
    • graphicsNode

      protected GraphicsNode graphicsNode
      The GraphicsNode whose updates are to be tracked.
    • started

      protected boolean started
      Whether the manager was started.
    • secondaryBridgeContexts

      protected BridgeContext[] secondaryBridgeContexts
      Array of resource documents' BridgeContexts.
    • secondaryScriptingEnvironments

      protected ScriptingEnvironment[] secondaryScriptingEnvironments
      Array of resource documents' ScriptingEnvironments that should have their SVGLoad event dispatched.
    • minRepaintTime

      protected int minRepaintTime
      The current minRepaintTime
  • Constructor Details

    • UpdateManager

      public UpdateManager(BridgeContext ctx, GraphicsNode gn, Document doc)
      Creates a new update manager.
      Parameters:
      ctx - The bridge context.
      gn - GraphicsNode whose updates are to be tracked.
      doc - The document to manage.
  • Method Details

    • getMinRepaintTime

      public int getMinRepaintTime()
    • setMinRepaintTime

      public void setMinRepaintTime(int minRepaintTime)
    • initializeScriptingEnvironment

      protected ScriptingEnvironment initializeScriptingEnvironment(BridgeContext ctx)
      Creates an appropriate ScriptingEnvironment and XBL manager for the given document.
    • dispatchSVGLoadEvent

      public void dispatchSVGLoadEvent() throws InterruptedException
      Dispatches an 'SVGLoad' event to the document.
      Throws:
      InterruptedException
    • dispatchSVGLoadEvent

      protected void dispatchSVGLoadEvent(BridgeContext ctx, ScriptingEnvironment se)
      Dispatches an 'SVGLoad' event to the document.
    • dispatchSVGZoomEvent

      public void dispatchSVGZoomEvent() throws InterruptedException
      Dispatches an "SVGZoom" event to the document.
      Throws:
      InterruptedException
    • dispatchSVGScrollEvent

      public void dispatchSVGScrollEvent() throws InterruptedException
      Dispatches an "SVGZoom" event to the document.
      Throws:
      InterruptedException
    • dispatchSVGResizeEvent

      public void dispatchSVGResizeEvent() throws InterruptedException
      Dispatches an "SVGZoom" event to the document.
      Throws:
      InterruptedException
    • manageUpdates

      public void manageUpdates(ImageRenderer r)
      Finishes the UpdateManager initialization.
    • getBridgeContext

      public BridgeContext getBridgeContext()
      Returns the bridge context.
    • getUpdateRunnableQueue

      public RunnableQueue getUpdateRunnableQueue()
      Returns the update RunnableQueue.
    • getRepaintManager

      public RepaintManager getRepaintManager()
      Returns the repaint manager.
    • getUpdateTracker

      public UpdateTracker getUpdateTracker()
      Returns the GVT update tracker.
    • getDocument

      public Document getDocument()
      Returns the current Document.
    • getScriptingEnvironment

      public ScriptingEnvironment getScriptingEnvironment()
      Returns the scripting environment.
    • isRunning

      public boolean isRunning()
      Tells whether the update manager is currently running.
    • suspend

      public void suspend()
      Suspends the update manager.
    • resume

      public void resume()
      Resumes the update manager.
    • interrupt

      public void interrupt()
      Interrupts the manager tasks.
    • dispatchSVGUnLoadEvent

      public void dispatchSVGUnLoadEvent()
      Dispatches an 'SVGUnLoad' event to the document. This method interrupts the update manager threads. NOTE: this method must be called outside the update thread.
    • updateRendering

      public void updateRendering(AffineTransform u2d, boolean dbr, Shape aoi, int width, int height)
      Updates the rendering buffer. Only to be called from the update thread.
      Parameters:
      u2d - The user to device transform.
      dbr - Whether the double buffering should be used.
      aoi - The area of interest in the renderer space units.
      width - The offscreen buffer width.
      height - The offscreen buffer height.
    • updateRendering

      public void updateRendering(AffineTransform u2d, boolean dbr, boolean cpt, Shape aoi, int width, int height)
      Updates the rendering buffer. Only to be called from the update thread.
      Parameters:
      u2d - The user to device transform.
      dbr - Whether the double buffering should be used.
      cpt - If the canvas painting transform should be cleared when the update complets
      aoi - The area of interest in the renderer space units.
      width - The offscreen buffer width.
      height - The offscreen buffer height.
    • updateRendering

      protected void updateRendering(List areas, boolean clearPaintingTransform)
      Updates the rendering buffer.
      Parameters:
      areas - List of areas of interest in rederer space units.
      clearPaintingTransform - Indicates if the painting transform should be cleared as a result of this update.
    • repaint

      protected void repaint()
      Repaints the dirty areas, if needed.
    • forceRepaint

      public void forceRepaint()
      Users of Batik should essentially never call this directly from Java. If the Canvas is not updating when you change the SVG Document it is almost certainly because you are not making your changes in the RunnableQueue (getUpdateRunnableQueue()). You will have problems if you are not making all changes to the document in the UpdateManager's RunnableQueue. This method exists to implement the 'SVGSVGElement.forceRedraw()' method.
    • addUpdateManagerListener

      public void addUpdateManagerListener(UpdateManagerListener l)
      Adds a UpdateManagerListener to this UpdateManager.
    • removeUpdateManagerListener

      public void removeUpdateManagerListener(UpdateManagerListener l)
      Removes a UpdateManagerListener from this UpdateManager.
    • fireEvent

      protected void fireEvent(EventDispatcher.Dispatcher dispatcher, Object event)
    • createRunHandler

      protected RunnableQueue.RunHandler createRunHandler()