Class UpdateManager


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

      • bridgeContext

        protected BridgeContext bridgeContext
        The bridge context.
      • document

        protected org.w3c.dom.Document document
        The document to manage.
      • updateRunnableQueue

        protected RunnableQueue updateRunnableQueue
        The update 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 java.util.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 Detail

      • UpdateManager

        public UpdateManager​(BridgeContext ctx,
                             GraphicsNode gn,
                             org.w3c.dom.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 Detail

      • 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 java.lang.InterruptedException
        Dispatches an 'SVGLoad' event to the document.
        Throws:
        java.lang.InterruptedException
      • dispatchSVGZoomEvent

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

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

        public void dispatchSVGResizeEvent()
                                    throws java.lang.InterruptedException
        Dispatches an "SVGZoom" event to the document.
        Throws:
        java.lang.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 org.w3c.dom.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​(java.awt.geom.AffineTransform u2d,
                                    boolean dbr,
                                    java.awt.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​(java.awt.geom.AffineTransform u2d,
                                    boolean dbr,
                                    boolean cpt,
                                    java.awt.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​(java.util.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.