You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by hi...@apache.org on 2002/02/22 12:30:54 UTC

cvs commit: xml-batik/sources/org/apache/batik/swing/svg JSVGComponent.java SVGLoadEventDispatcher.java

hillion     02/02/22 03:30:54

  Modified:    sources/org/apache/batik/apps/svgbrowser
                        JSVGViewerFrame.java
               sources/org/apache/batik/bridge ScriptingEnvironment.java
                        UpdateManager.java
               sources/org/apache/batik/swing/svg JSVGComponent.java
                        SVGLoadEventDispatcher.java
  Log:
  Zombie-hunting.
  
  Revision  Changes    Path
  1.71      +24 -24    xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java
  
  Index: JSVGViewerFrame.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java,v
  retrieving revision 1.70
  retrieving revision 1.71
  diff -u -r1.70 -r1.71
  --- JSVGViewerFrame.java	18 Feb 2002 09:11:58 -0000	1.70
  +++ JSVGViewerFrame.java	22 Feb 2002 11:30:53 -0000	1.71
  @@ -161,7 +161,7 @@
    * This class represents a SVG viewer swing frame.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: JSVGViewerFrame.java,v 1.70 2002/02/18 09:11:58 hillion Exp $
  + * @version $Id: JSVGViewerFrame.java,v 1.71 2002/02/22 11:30:53 hillion Exp $
    */
   public class JSVGViewerFrame
       extends    JFrame
  @@ -1496,7 +1496,7 @@
        */
       public void documentLoadingStarted(SVGDocumentLoaderEvent e) {
           if (debug) {
  -            System.out.println("Load started...");
  +            System.out.println("Document load started...");
               time = System.currentTimeMillis();
           }
           statusBar.setMainMessage(resources.getString("Message.documentLoad"));
  @@ -1509,7 +1509,7 @@
        */
       public void documentLoadingCompleted(SVGDocumentLoaderEvent e) {
           if (debug) {
  -            System.out.print("Load completed in ");
  +            System.out.print("Document load completed in ");
               System.out.println((System.currentTimeMillis() - time) + " ms");
           }
           svgDocument = e.getSVGDocument();
  @@ -1568,7 +1568,7 @@
        */
       public void documentLoadingCancelled(SVGDocumentLoaderEvent e) {
           if (debug) {
  -            System.out.println("Load cancelled");
  +            System.out.println("Document load cancelled");
           }
           statusBar.setMainMessage("");
           statusBar.setMessage(resources.getString("Message.documentCancelled"));
  @@ -1581,7 +1581,7 @@
        */
       public void documentLoadingFailed(SVGDocumentLoaderEvent e) {
           if (debug) {
  -            System.out.println("Load failed");
  +            System.out.println("Document load failed");
           }
           statusBar.setMainMessage("");
           statusBar.setMessage(resources.getString("Message.documentFailed"));
  @@ -1597,7 +1597,7 @@
        */
       public void gvtBuildStarted(GVTTreeBuilderEvent e) {
           if (debug) {
  -            System.out.println("Build started...");
  +            System.out.println("GVT build started...");
               time = System.currentTimeMillis();
           }
           statusBar.setMainMessage(resources.getString("Message.treeBuild"));
  @@ -1610,7 +1610,7 @@
        */
       public void gvtBuildCompleted(GVTTreeBuilderEvent e) {
           if (debug) {
  -            System.out.print("Build completed in ");
  +            System.out.print("GVT build completed in ");
               System.out.println((System.currentTimeMillis() - time) + " ms");
           }
           if (findDialog != null) {
  @@ -1635,7 +1635,7 @@
        */
       public void gvtBuildCancelled(GVTTreeBuilderEvent e) {
           if (debug) {
  -            System.out.println("Build cancelled");
  +            System.out.println("GVT build cancelled");
           }
           statusBar.setMainMessage("");
           statusBar.setMessage(resources.getString("Message.treeCancelled"));
  @@ -1650,7 +1650,7 @@
        */
       public void gvtBuildFailed(GVTTreeBuilderEvent e) {
           if (debug) {
  -            System.out.println("Build failed");
  +            System.out.println("GVT build failed");
           }
           statusBar.setMainMessage("");
           statusBar.setMessage(resources.getString("Message.treeFailed"));
  @@ -1670,11 +1670,11 @@
        */
       public void svgLoadEventDispatchStarted(SVGLoadEventDispatcherEvent e) {
           if (debug) {
  -            System.out.println("onload dispatch started...");
  +            System.out.println("Onload dispatch started...");
               time = System.currentTimeMillis();
           }
           stopAction.update(true);
  -        statusBar.setMainMessage("Message.onload");
  +        statusBar.setMainMessage(resources.getString("Message.onload"));
       }
   
       /**
  @@ -1682,7 +1682,7 @@
        */
       public void svgLoadEventDispatchCompleted(SVGLoadEventDispatcherEvent e) {
           if (debug) {
  -            System.out.print("onload dispatch completed in ");
  +            System.out.print("Onload dispatch completed in ");
               System.out.println((System.currentTimeMillis() - time) + " ms");
           }
           stopAction.update(false);
  @@ -1695,7 +1695,7 @@
        */
       public void svgLoadEventDispatchCancelled(SVGLoadEventDispatcherEvent e) {
           if (debug) {
  -            System.out.println("onload dispatch cancelled.");
  +            System.out.println("Onload dispatch cancelled.");
           }
           stopAction.update(false);
           statusBar.setMainMessage("");
  @@ -1707,7 +1707,7 @@
        */
       public void svgLoadEventDispatchFailed(SVGLoadEventDispatcherEvent e) {
           if (debug) {
  -            System.out.println("onload dispatch failed.");
  +            System.out.println("Onload dispatch failed.");
           }
           stopAction.update(false);
           statusBar.setMainMessage("");
  @@ -1721,7 +1721,7 @@
        */
       public void gvtRenderingPrepare(GVTTreeRendererEvent e) {
           if (debug) {
  -            System.out.println("Rendering preparation...");
  +            System.out.println("GVT rendering preparation...");
               time = System.currentTimeMillis();
           }
           stopAction.update(true);
  @@ -1734,10 +1734,10 @@
        */
       public void gvtRenderingStarted(GVTTreeRendererEvent e) {
           if (debug) {
  -            System.out.print("Rendering prepared in ");
  +            System.out.print("GVT rendering prepared in ");
               System.out.println((System.currentTimeMillis() - time) + " ms");
               time = System.currentTimeMillis();
  -            System.out.println("Rendering started...");
  +            System.out.println("GVT rendering started...");
           }
           // Do nothing
       }
  @@ -1747,7 +1747,7 @@
        */
       public void gvtRenderingCompleted(GVTTreeRendererEvent e) {
           if (debug) {
  -            System.out.print("Rendering completed in ");
  +            System.out.print("GVT rendering completed in ");
               System.out.println((System.currentTimeMillis() - time) + " ms");
           }
           statusBar.setMainMessage("");
  @@ -1767,7 +1767,7 @@
        */
       public void gvtRenderingCancelled(GVTTreeRendererEvent e) {
           if (debug) {
  -            System.out.println("Rendering cancelled");
  +            System.out.println("GVT rendering cancelled");
           }
           statusBar.setMainMessage("");
           if (!svgCanvas.isDynamic()) {
  @@ -1781,7 +1781,7 @@
        */
       public void gvtRenderingFailed(GVTTreeRendererEvent e) {
           if (debug) {
  -            System.out.println("Rendering failed");
  +            System.out.println("GVT rendering failed");
           }
           statusBar.setMainMessage("");
           if (!svgCanvas.isDynamic()) {
  @@ -1826,7 +1826,7 @@
        */
       public void managerStarted(UpdateManagerEvent e) {
           if (debug) {
  -            System.out.println("Manager Started");
  +            System.out.println("Update manager started...");
           }
           managerStopped = false;
           playAction.update(false);
  @@ -1839,7 +1839,7 @@
        */
       public void managerSuspended(UpdateManagerEvent e) {
           if (debug) {
  -            System.out.println("Manager Suspended");
  +            System.out.println("Update manager suspended");
           }
           playAction.update(true);
           pauseAction.update(false);
  @@ -1850,7 +1850,7 @@
        */
       public void managerResumed(UpdateManagerEvent e) {
           if (debug) {
  -            System.out.println("Manager Resumed");
  +            System.out.println("Update manager resumed");
           }
           playAction.update(false);
           pauseAction.update(true);
  @@ -1861,7 +1861,7 @@
        */
       public void managerStopped(UpdateManagerEvent e) {
           if (debug) {
  -            System.out.println("Manager Stopped");
  +            System.out.println("Update Manager Stopped");
           }
           managerStopped = true;
           playAction.update(false);
  
  
  
  1.7       +12 -8     xml-batik/sources/org/apache/batik/bridge/ScriptingEnvironment.java
  
  Index: ScriptingEnvironment.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/ScriptingEnvironment.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ScriptingEnvironment.java	21 Feb 2002 10:33:43 -0000	1.6
  +++ ScriptingEnvironment.java	22 Feb 2002 11:30:54 -0000	1.7
  @@ -52,7 +52,7 @@
    * This class contains the informations needed by the SVG scripting.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: ScriptingEnvironment.java,v 1.6 2002/02/21 10:33:43 hillion Exp $
  + * @version $Id: ScriptingEnvironment.java,v 1.7 2002/02/22 11:30:54 hillion Exp $
    */
   public class ScriptingEnvironment {
   
  @@ -477,15 +477,17 @@
               }
           }
   
  +        Event ev;
  +        DocumentEvent de = (DocumentEvent)elt.getOwnerDocument();
  +        ev = de.createEvent("SVGEvents");
  +        ev.initEvent("SVGLoad", false, false);
  +        EventTarget t = (EventTarget)elt;
  +
           final String s =
               elt.getAttributeNS(null, SVGConstants.SVG_ONLOAD_ATTRIBUTE);
  +        EventListener l = null;
           if (s.length() > 0) {
  -            Event ev;
  -            DocumentEvent de = (DocumentEvent)elt.getOwnerDocument();
  -            ev = de.createEvent("SVGEvents");
  -            ev.initEvent("SVGLoad", false, false);
  -            EventTarget t = (EventTarget)elt;
  -            EventListener l = new EventListener() {
  +            l = new EventListener() {
                       public void handleEvent(Event evt) {
                           try {
                               interp.bindObject(EVENT_NAME, evt);
  @@ -501,7 +503,9 @@
                       }
                   };
               t.addEventListener("SVGLoad", l, false);
  -            t.dispatchEvent(ev);
  +        }
  +        t.dispatchEvent(ev);
  +        if (s.length() > 0) {
               t.removeEventListener("SVGLoad", l, false);
           }
       }
  
  
  
  1.11      +45 -37    xml-batik/sources/org/apache/batik/bridge/UpdateManager.java
  
  Index: UpdateManager.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/UpdateManager.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- UpdateManager.java	21 Feb 2002 10:33:43 -0000	1.10
  +++ UpdateManager.java	22 Feb 2002 11:30:54 -0000	1.11
  @@ -44,7 +44,7 @@
    * This class provides features to manage the update of an SVG document.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: UpdateManager.java,v 1.10 2002/02/21 10:33:43 hillion Exp $
  + * @version $Id: UpdateManager.java,v 1.11 2002/02/22 11:30:54 hillion Exp $
    */
   public class UpdateManager implements RunnableQueue.RunHandler {
   
  @@ -170,7 +170,8 @@
        * - The scripting lock is taken. Is is released by a call to
        *   manageUpdates().
        */
  -    public void dispatchSVGLoadEvent() throws InterruptedException {
  +    public synchronized void dispatchSVGLoadEvent()
  +        throws InterruptedException {
           // Locking avoid execution of scripts scheduled by calls
           // to the setTimeout() function.
           // The lock is be released by a call to manageUpdates().
  @@ -188,27 +189,30 @@
       public void manageUpdates(final ImageRenderer r) {
           updateRunnableQueue.invokeLater(new Runnable() {
                   public void run() {
  -                    startingTime = System.currentTimeMillis();
  +                    synchronized (UpdateManager.this) {
  +                        startingTime = System.currentTimeMillis();
   
  -                    running = true;
  -                    renderer = r;
  +                        running = true;
  +                        renderer = r;
           
  -                    updateTracker = new UpdateTracker();
  -                    RootGraphicsNode root = graphicsNode.getRoot();
  -                    if (root != null){
  -                        root.addTreeGraphicsNodeChangeListener(updateTracker);
  -                    }
  +                        updateTracker = new UpdateTracker();
  +                        RootGraphicsNode root = graphicsNode.getRoot();
  +                        if (root != null){
  +                            root.addTreeGraphicsNodeChangeListener
  +                                (updateTracker);
  +                        }
   
  -                    repaintManager =
  -                        new RepaintManager(UpdateManager.this, renderer);
  -                    repaintRateManager =
  -                        new RepaintRateManager(UpdateManager.this);
  -                    repaintRateManager.start();
  -                    
  -                    scriptingEnvironment.getScriptingLock().unlock();
  -                    
  -                    fireManagerStartedEvent();
  -                    started = true;
  +                        repaintManager =
  +                            new RepaintManager(UpdateManager.this, renderer);
  +                        repaintRateManager =
  +                            new RepaintRateManager(UpdateManager.this);
  +                        repaintRateManager.start();
  +                        
  +                        scriptingEnvironment.getScriptingLock().unlock();
  +                        
  +                        fireManagerStartedEvent();
  +                        started = true;
  +                    }
                   }
               });
       }
  @@ -277,7 +281,7 @@
       /**
        * Suspends the update manager.
        */
  -    public void suspend() {
  +    public synchronized void suspend() {
           if (running) {
               suspendCalled = true;
               updateRunnableQueue.suspendExecution(false);
  @@ -287,7 +291,7 @@
       /**
        * Resumes the update manager.
        */
  -    public void resume() {
  +    public synchronized void resume() {
           if (!running) {
               updateRunnableQueue.resumeExecution();
           }
  @@ -296,7 +300,7 @@
       /**
        * Interrupts the manager tasks.
        */
  -    public void interrupt() {
  +    public synchronized void interrupt() {
           if (updateRunnableQueue.getThread() != null) {
               if (started) {
                   dispatchSVGUnLoadEvent();
  @@ -304,11 +308,13 @@
                   resume();
                   updateRunnableQueue.invokeLater(new Runnable() {
                           public void run() {
  -                            if (repaintRateManager != null) {
  -                                repaintRateManager.interrupt();
  +                            synchronized (UpdateManager.this) {
  +                                if (repaintManager != null) {
  +                                    repaintRateManager.interrupt();
  +                                }
  +                                scriptingEnvironment.interruptScripts();
  +                                updateRunnableQueue.getThread().interrupt();
                               }
  -                            scriptingEnvironment.interruptScripts();
  -                            updateRunnableQueue.getThread().interrupt();
                           }
                       });
               }
  @@ -328,17 +334,19 @@
           resume();
           updateRunnableQueue.invokeLater(new Runnable() {
                   public void run() {
  -                    Event evt =
  -                        ((DocumentEvent)document).createEvent("SVGEvents");
  -                    evt.initEvent("SVGUnload", false, false);
  -                    ((EventTarget)(document.getDocumentElement())).
  -                        dispatchEvent(evt);
  -                    running = false;
  +                    synchronized (UpdateManager.this) {
  +                        Event evt =
  +                            ((DocumentEvent)document).createEvent("SVGEvents");
  +                        evt.initEvent("SVGUnload", false, false);
  +                        ((EventTarget)(document.getDocumentElement())).
  +                            dispatchEvent(evt);
  +                        running = false;
                       
  -                    repaintRateManager.interrupt();
  -                    scriptingEnvironment.interruptScripts();
  -                    updateRunnableQueue.getThread().interrupt();
  -                    fireManagerStoppedEvent();
  +                        repaintRateManager.interrupt();
  +                        scriptingEnvironment.interruptScripts();
  +                        updateRunnableQueue.getThread().interrupt();
  +                        fireManagerStoppedEvent();
  +                    }
                   }
               });
       }
  
  
  
  1.43      +87 -18    xml-batik/sources/org/apache/batik/swing/svg/JSVGComponent.java
  
  Index: JSVGComponent.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/svg/JSVGComponent.java,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- JSVGComponent.java	21 Feb 2002 10:33:44 -0000	1.42
  +++ JSVGComponent.java	22 Feb 2002 11:30:54 -0000	1.43
  @@ -180,11 +180,27 @@
    * building/rendering a document (invalid XML file, missing attributes...).</p>
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: JSVGComponent.java,v 1.42 2002/02/21 10:33:44 hillion Exp $
  + * @version $Id: JSVGComponent.java,v 1.43 2002/02/22 11:30:54 hillion Exp $
    */
   public class JSVGComponent extends JGVTComponent {
   
       /**
  +     * Means that the component must auto detect whether
  +     * the current document is static or dynamic.
  +     */
  +    public final static int AUTODETECT = 0;
  +
  +    /**
  +     * Means that all document must be considered as dynamic.
  +     */
  +    public final static int ALWAYS_DYNAMIC = 1; 
  +
  +    /**
  +     * Means that all document must be considered as static.
  +     */
  +    public final static int ALWAYS_STATIC = 2;
  +
  +    /**
        * The document loader.
        */
       protected SVGDocumentLoader documentLoader;
  @@ -280,6 +296,11 @@
       protected boolean isDynamicDocument;
   
       /**
  +     * The document state.
  +     */
  +    protected int documentState;
  +
  +    /**
        * Creates a new JSVGComponent.
        */
       public JSVGComponent() {
  @@ -315,6 +336,24 @@
       }
   
       /**
  +     * Sets the document state. The given value must be one of
  +     * AUTODETECT, ALWAYS_DYNAMIC or ALWAYS_STATIC.
  +     */
  +    public void setDocumentState(int state) {
  +        documentState = state;
  +    }
  +
  +    /**
  +     * Returns the current update manager.
  +     */
  +    public UpdateManager getUpdateManager() {
  +        if (nextUpdateManager != null) {
  +            return nextUpdateManager;
  +        }
  +        return updateManager;
  +    }
  +
  +    /**
        * Resumes the processing of the current document.
        */
       public void resumeProcessing() {
  @@ -345,6 +384,9 @@
               gvtTreeBuilder.interrupt();
           } else if (svgLoadEventDispatcher != null) {
               svgLoadEventDispatcher.interrupt();
  +        } else if (nextUpdateManager != null) {
  +            nextUpdateManager.interrupt();
  +            nextUpdateManager = null;
           } else if (updateManager != null) {
               updateManager.interrupt();
           } else {
  @@ -413,7 +455,16 @@
               throw new IllegalArgumentException("Invalid DOM implementation.");
           }
   
  -        isDynamicDocument = UpdateManager.isDynamicDocument(doc);
  +        switch (documentState) {
  +        case ALWAYS_STATIC:
  +            isDynamicDocument = false;
  +            break;
  +        case ALWAYS_DYNAMIC:
  +            isDynamicDocument = true;
  +            break;
  +        case AUTODETECT:
  +            isDynamicDocument = UpdateManager.isDynamicDocument(doc);
  +        }
           
           svgDocument = doc;
   
  @@ -498,21 +549,21 @@
        * Starts a SVGLoadEventDispatcher thread.
        */
       protected void startSVGLoadEventDispatcher(GraphicsNode root) {
  -        nextUpdateManager = new UpdateManager(bridgeContext,
  -                                              root,
  -                                              svgDocument);
  -        SVGLoadEventDispatcher d =
  +        UpdateManager um = new UpdateManager(bridgeContext,
  +                                             root,
  +                                             svgDocument);
  +        svgLoadEventDispatcher =
               new SVGLoadEventDispatcher(root,
                                          svgDocument,
                                          bridgeContext,
  -                                       nextUpdateManager);
  +                                       um);
           Iterator it = svgLoadEventDispatcherListeners.iterator();
           while (it.hasNext()) {
  -            d.addSVGLoadEventDispatcherListener
  +            svgLoadEventDispatcher.addSVGLoadEventDispatcherListener
                   ((SVGLoadEventDispatcherListener)it.next());
           }
   
  -        d.start();
  +        svgLoadEventDispatcher.start();
       }
   
       /**
  @@ -851,7 +902,9 @@
            */
           public void svgLoadEventDispatchCompleted
               (SVGLoadEventDispatcherEvent e) {
  +            nextUpdateManager = svgLoadEventDispatcher.getUpdateManager();
               svgLoadEventDispatcher = null;
  +
               if (nextGVTTreeBuilder != null) {
                   nextUpdateManager.interrupt();
                   nextUpdateManager = null;
  @@ -875,6 +928,7 @@
            */
           public void svgLoadEventDispatchCancelled
               (SVGLoadEventDispatcherEvent e) {
  +            nextUpdateManager = svgLoadEventDispatcher.getUpdateManager();
               svgLoadEventDispatcher = null;
   
               nextUpdateManager.interrupt();
  @@ -895,6 +949,7 @@
            */
           public void svgLoadEventDispatchFailed
               (SVGLoadEventDispatcherEvent e) {
  +            nextUpdateManager = svgLoadEventDispatcher.getUpdateManager();
               svgLoadEventDispatcher = null;
   
               nextUpdateManager.interrupt();
  @@ -953,6 +1008,11 @@
               super.gvtRenderingCancelled(e);
   
               if (nextGVTTreeBuilder != null) {
  +                if (nextUpdateManager != null) {
  +                    nextUpdateManager.interrupt();
  +                    nextUpdateManager = null;
  +                }
  +
                   startGVTTreeBuilder();
                   return;
               }
  @@ -973,6 +1033,11 @@
               super.gvtRenderingFailed(e);
   
               if (nextGVTTreeBuilder != null) {
  +                if (nextUpdateManager != null) {
  +                    nextUpdateManager.interrupt();
  +                    nextUpdateManager = null;
  +                }
  +
                   startGVTTreeBuilder();
                   return;
               }
  @@ -1117,20 +1182,24 @@
                                   }
                               }
                               suspendInteractions = false;
  -
  -                            Object[] dll = updateManagerListeners.toArray();
  -                            
  -                            if (dll.length > 0) {
  -                                for (int i = 0; i < dll.length; i++) {
  -                                    ((UpdateManagerListener)dll[i]).
  -                                        updateCompleted(e);
  -                                }
  -                            }
                           }
                       });
               } catch (Exception ex) {
               }
               
  +
  +            EventQueue.invokeLater(new Runnable() {
  +                    public void run() {
  +                        Object[] dll = updateManagerListeners.toArray();
  +                        
  +                        if (dll.length > 0) {
  +                            for (int i = 0; i < dll.length; i++) {
  +                                ((UpdateManagerListener)dll[i]).
  +                                    updateCompleted(e);
  +                            }
  +                        }
  +                    }
  +                });
           }
   
           /**
  
  
  
  1.2       +11 -4     xml-batik/sources/org/apache/batik/swing/svg/SVGLoadEventDispatcher.java
  
  Index: SVGLoadEventDispatcher.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/svg/SVGLoadEventDispatcher.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SVGLoadEventDispatcher.java	18 Feb 2002 09:11:59 -0000	1.1
  +++ SVGLoadEventDispatcher.java	22 Feb 2002 11:30:54 -0000	1.2
  @@ -26,7 +26,7 @@
    * This class dispatches the SVGLoadEvent event on a SVG document.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: SVGLoadEventDispatcher.java,v 1.1 2002/02/18 09:11:59 hillion Exp $
  + * @version $Id: SVGLoadEventDispatcher.java,v 1.2 2002/02/22 11:30:54 hillion Exp $
    */
   public class SVGLoadEventDispatcher extends Thread {
   
  @@ -64,9 +64,9 @@
        * Creates a new SVGLoadEventDispatcher.
        */
       public SVGLoadEventDispatcher(GraphicsNode gn,
  -                               SVGDocument doc,
  -                               BridgeContext bc,
  -                               UpdateManager um) {
  +                                  SVGDocument doc,
  +                                  BridgeContext bc,
  +                                  UpdateManager um) {
           svgDocument = doc;
           root = gn;
           bridgeContext = bc;
  @@ -89,6 +89,13 @@
               exception = e;
               fireFailedEvent();
           }
  +    }
  +
  +    /**
  +     * Returns the update manager.
  +     */
  +    public UpdateManager getUpdateManager() {
  +        return updateManager;
       }
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-dev-help@xml.apache.org