org.apache.batik.bridge
Class UpdateManager

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

public class UpdateManager
extends Object

This class provides features to manage the update of an SVG document.


Nested Class Summary
protected  class UpdateManager.RepaintTimerTask
           
protected  class UpdateManager.SuspensionInfo
           
protected  class UpdateManager.UpdateManagerRunHander
           
 
Field Summary
protected  BridgeContext bridgeContext
          The bridge context.
protected  Document document
          The document to manage.
protected  GraphicsNode graphicsNode
          The GraphicsNode whose updates are to be tracked.
protected  List listeners
          The listeners.
protected  int minRepaintTime
          The current minRepaintTime
protected  RepaintManager repaintManager
          The repaint manager.
protected  RunnableQueue.RunHandler runHandler
          The RunHandler for the RunnableQueue.
protected  boolean running
          Whether the update manager is running.
protected  ScriptingEnvironment scriptingEnvironment
          The scripting environment.
protected  BridgeContext[] secondaryBridgeContexts
          Array of resource documents' BridgeContexts.
protected  ScriptingEnvironment[] secondaryScriptingEnvironments
          Array of resource documents' ScriptingEnvironments that should have their SVGLoad event dispatched.
protected  boolean started
          Whether the manager was started.
protected  boolean suspendCalled
          Whether the suspend() method was called.
protected  RunnableQueue updateRunnableQueue
          The update RunnableQueue.
protected  UpdateTracker updateTracker
          The update tracker.
 
Constructor Summary
UpdateManager(BridgeContext ctx, GraphicsNode gn, Document doc)
          Creates a new update manager.
 
Method Summary
 void addUpdateManagerListener(UpdateManagerListener l)
          Adds a UpdateManagerListener to this UpdateManager.
protected  RunnableQueue.RunHandler createRunHandler()
           
 void dispatchSVGLoadEvent()
          Dispatches an 'SVGLoad' event to the document.
protected  void dispatchSVGLoadEvent(BridgeContext ctx, ScriptingEnvironment se)
          Dispatches an 'SVGLoad' event to the document.
 void dispatchSVGResizeEvent()
          Dispatches an "SVGZoom" event to the document.
 void dispatchSVGScrollEvent()
          Dispatches an "SVGZoom" event to the document.
 void dispatchSVGUnLoadEvent()
          Dispatches an 'SVGUnLoad' event to the document.
 void dispatchSVGZoomEvent()
          Dispatches an "SVGZoom" event to the document.
protected  void fireEvent(EventDispatcher.Dispatcher dispatcher, Object event)
           
 void forceRepaint()
          Users of Batik should essentially never call this directly from Java.
 BridgeContext getBridgeContext()
          Returns the bridge context.
 Document getDocument()
          Returns the current Document.
 int getMinRepaintTime()
           
 RepaintManager getRepaintManager()
          Returns the repaint manager.
 ScriptingEnvironment getScriptingEnvironment()
          Returns the scripting environment.
 RunnableQueue getUpdateRunnableQueue()
          Returns the update RunnableQueue.
 UpdateTracker getUpdateTracker()
          Returns the GVT update tracker.
protected  ScriptingEnvironment initializeScriptingEnvironment(BridgeContext ctx)
          Creates an appropriate ScriptingEnvironment and XBL manager for the given document.
 void interrupt()
          Interrupts the manager tasks.
 boolean isRunning()
          Tells whether the update manager is currently running.
 void manageUpdates(ImageRenderer r)
          Finishes the UpdateManager initialization.
 void removeUpdateManagerListener(UpdateManagerListener l)
          Removes a UpdateManagerListener from this UpdateManager.
protected  void repaint()
          Repaints the dirty areas, if needed.
 void resume()
          Resumes the update manager.
 void setMinRepaintTime(int minRepaintTime)
           
 void suspend()
          Suspends the update manager.
 void updateRendering(AffineTransform u2d, boolean dbr, boolean cpt, Shape aoi, int width, int height)
          Updates the rendering buffer.
 void updateRendering(AffineTransform u2d, boolean dbr, Shape aoi, int width, int height)
          Updates the rendering buffer.
protected  void updateRendering(List areas, boolean clearPaintingTransform)
          Updates the rendering buffer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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 Detail

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 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 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()


Copyright © 2008 Apache Software Foundation. All Rights Reserved.