Hi Kathy,

Regarding your first problem accessing the updateManager, you have to set
the state of the canvas to dynamic before loading the file. When you use
svgCanvas.setURI( myURI ), the canvas will start loading your document. If
the document is static ( no scripts ), by default, the support for dynamic
updates will be deactivated. 

To insure the dynamic updates will be available to you ( getUpdateManager()
does not return null ), then set the state of the canvas to ALWAYS_DYNAMIC
before loading any document.

Regarding the applet issue, I would guess that your are missing 'js.jar' in
your classpath when running the applet.

PS : the state of the canvas will be set to dynamic automatically if the svg
file contains scripts.

Nicolas

> -----Original Message-----
> From: Kathy Huang [mailto:[EMAIL PROTECTED]]
> Sent: July 16, 2002 3:42 PM
> To: [EMAIL PROTECTED]
> Subject: getUpdateManager() method returned null
> 
> 
> Hi,
> 
> I use JSVGCanvas to display .svg document and use SVGDocument 
> object to
> dynamic updating the attribute. My code like:
> 
> URL svgURL = SVGApplication.class.getResource("svg_doc/cat.svg");
> svgCanvas.setURI(svgURL.toString());
> svgCanvas.setDocumentState(JSVGComponent.ALWAYS_DYNAMIC);
> ...
> SVGDocument sd = svgCanvas.getSVGDocument();
> NodeList list = sd.getElementsByTagNameNS(svgNS, "circle");
> final Element firstChild = (Element)list.item(2);
> UpdateManager um = svgCanvas.getUpdateManager();
> RunnableQueue rq = um.getUpdateRunnableQueue();
> ...
> 
> When the code run, I get error:
> java.lang.NullPointerException        void
> org.apache.batik.bridge.BridgeContext.dispose()       void
> org.apache.batik.swing.svg.JSVGComponent.setSVGDocument(org.w3
> c.dom.svg.SVGD
> ocument)      void
> org.apache.batik.swing.svg.JSVGComponent$SVGListener.documentL
> oadingComplete
> d(org.apache.batik.swing.svg.SVGDocumentLoaderEvent)  void
> org.apache.batik.swing.svg.SVGDocumentLoader$2.run()  void
> java.awt.event.InvocationEvent.dispatch()     void
> java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)  boolean
> java.awt.EventDispatchThread.pumpOneEventForHierarchy(java.awt
> .Component)
> void
> java.awt.EventDispatchThread.pumpEventsForHierarchy(java.awt.C
> onditional,
> java.awt.Component)   void
> java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional) 
>       void
> java.awt.EventDispatchThread.run()
> 
> If I update code like:
> 
> URL svgURL = SVGApplication.class.getResource("svg_doc/cat.svg");
> svgCanvas.setDocumentState(JSVGComponent.ALWAYS_DYNAMIC);
> svgCanvas.setURI(svgURL.toString());
> ...
> SVGDocument sd = svgCanvas.getSVGDocument();
> NodeList list = sd.getElementsByTagNameNS(svgNS, "circle");
> final Element firstChild = (Element)list.item(2);
> UpdateManager um = svgCanvas.getUpdateManager();
> RunnableQueue rq = um.getUpdateRunnableQueue();
> ...
> 
> It work fine in java application but there are error when run 
> at applet.
> I get follow error:
> java.lang.Exception: Unknown language: text/ecmascript
>         at
> org.apache.batik.bridge.BaseScriptingEnvironment.dispatchSVGLo
> adEvent(Unknow
> n
> Source)
>       at 
> org.apache.batik.bridge.UpdateManager.dispatchSVGLoadEvent(Unknown
> Source)
>       at 
> org.apache.batik.swing.svg.SVGLoadEventDispatcher.run(Unknown Source)
> 
> 
> java.security.AccessControlException: access denied
> (java.lang.RuntimePermission createClassLoader)       at
> java.security.AccessControlContext.checkPermission(Unknown 
> Source)       at
> java.security.AccessController.checkPermission(Unknown 
> Source)       at
> java.lang.SecurityManager.checkPermission(Unknown Source)     at
> java.lang.SecurityManager.checkCreateClassLoader(Unknown 
> Source)       at
> java.lang.ClassLoader.<init>(Unknown Source)  at
> java.security.SecureClassLoader.<init>(Unknown Source)        at
> java.net.URLClassLoader.<init>(Unknown Source)        at
> org.apache.batik.script.rhino.RhinoClassLoader.<init>(Unknown 
> Source)       at
> org.apache.batik.script.rhino.RhinoInterpreter.<init>(Unknown 
> Source)       at
> org.apache.batik.script.rhino.RhinoInterpreterFactory.createIn
> terpreter(Unkn
> own Source)   at
> org.apache.batik.script.InterpreterPool.createInterpreter(Unkn
> own Source)
> at 
> org.apache.batik.bridge.BridgeContext.getInterpreter(Unknown 
> Source)       at
> org.apache.batik.bridge.BaseScriptingEnvironment.dispatchSVGLo
> adEvent(Unknow
> n Source)     at
> org.apache.batik.bridge.UpdateManager.dispatchSVGLoadEvent(Unk
> nown Source)
> at 
> org.apache.batik.swing.svg.SVGLoadEventDispatcher.run(Unknown Source)
> 
> I'm running with the lastest Batik version (1.5 beta 3).  
> Anyone have could
> help me?
> 
> Thanks!
> 
> Kathy
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to