xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicolas Socheleau <nicolas.sochel...@bitflash.com>
Subject RE: Exceptions trying to create inverse transform of an SVG file.
Date Wed, 03 Apr 2002 15:04:58 GMT
Hi David,

JSVGCanvas.setURI(...) is calling JSVGComponent.loadSVGDocument(...). Here
is the note regarding the usage of 'loadSVGDocument' which might answer your
question :

Because the loading is multi-threaded, the current SVG document is not
garanteed to be updated after this method returns. The only way to be
notified a document has been loaded is to listen to the
SVGDocumentLoaderEvents.

Before querying for the document, you should wait for the notification.

Another way would be to use org.apache.batik.bridge.DocumentLoader.

Hope this help.

Nicolas

> -----Original Message-----
> From: David Smith [mailto:David.Smith@aeroint.com]
> Sent: April 3, 2002 9:47 AM
> To: 'Batik Users'
> Subject: RE: Exceptions trying to create inverse transform of an SVG
> file.
> 
> 
> Thanks,
> 
> adding a component.setSize() removed the errors, but 
> unfortunately now it
> doesnt load anything.  I still get a null document.
> 
> Ive tried this with a couple of other files as well, still 
> with no luck.
> 
> What I really need is a way of loading an SVGDocument direct 
> from file.  It
> seems like a really obvious requirement but I cant find the 
> class anywhere.
> 
> Dave
> 
> -----Original Message-----
> From: Michael Gale [mailto:michael.gale@bitflash.com]
> Sent: 03 April 2002 15:41
> To: 'Batik Users'
> Subject: RE: Exceptions trying to create inverse transform of an SVG
> file.
> 
> 
> This is sometimes caused by the parent component whose size 
> has not been
> set.
> 
> Michael
> 
> -----Original Message-----
> From: David Smith [mailto:David.Smith@aeroint.com]
> Sent: Wednesday, April 03, 2002 9:35 AM
> To: Batik Users
> Subject: Exceptions trying to create inverse transform of an SVG file.
> 
> 
> Dear All,
> 
> I have a component extending the JSVGCanvas class that needs 
> to render an
> SVG file from disk.  I am currently calling 
> canvas.setURI(url.toString())
> which seems to find and load the file but it then puts up an exception
> window complaining of zero dererminants when trying to create 
> an inverse
> AffineTransform.  
> 
> This is the part of code that loads the document..
> 
>     // cl is the source of the SVG url
> 
>     JSVGCanvas component = new JSVGCanvas();
>     javax.swing.JOptionPane.showMessageDialog(null, 
> cl.getURL().toString());
> 
>     component.setURI(cl.getURL().toString());
>     document = component.getSVGDocument();
> 
>     javax.swing.JOptionPane.showMessageDialog(null, "Document 
> loaded into
> component : " + document);
> 
> The final line shows null as the document.  Shortly after I 
> get the affine
> transform exceptions.
>     
> The svg file is about as simple as it gets:
> 
> <svg xmlns="http://www.w3.org/2000/svg"
> xmlns:xlink="http://www.w3.org/1999/xlink" width="150" height="150">
> 	<circle style="fill:yellow" cx="200" cy="100" r="90" /> 
> </svg>
> 
> and the exception is:
> 
> java.awt.geom.NoninvertibleTransformException: Determinant is 0 	
> 	at
> java.awt.geom.AffineTransform.createInverse(AffineTransform.ja
> va:1898) 	
> 	at
> org.apache.batik.swing.gvt.JGVTComponent.setRenderingTransform(Unknown
> Source) 	
> 	at
> org.apache.batik.swing.svg.JSVGComponent.computeRenderingTrans
> form(Unknown
> Source) 	
> 	at 
> org.apache.batik.swing.gvt.JGVTComponent.setGraphicsNode(Unknown
> Source) 	
> 	at org.apache.batik.swing.svg.JSVGComponent.access$201(Unknown
> Source) 	
> 	at
> org.apache.batik.swing.svg.JSVGComponent$SVGListener.gvtBuildC
> ompleted(Unkno
> wn Source) 	
> 	at 
> org.apache.batik.swing.svg.GVTTreeBuilder$2.run(Unknown Source)
> 
> 	at 
> java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:154)
> 
> 	at java.awt.EventQueue.dispatchEvent(EventQueue.java:337) 	
> 	at
> java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDis
> patchThread.ja
> va:131) 	
> 	at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispa
> tchThread.java
> :98) 	
> 	at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 	
> 	at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)
> 
> Is there a better way to load a document from file?  I dont 
> really want the
> canvas at this stage.  I know of the SAXSVGDocumentFactory 
> class but the
> constructor needs a classname for a SAX parser, which I cannot find.
> 
> Can anyone shed light on this problem?
> 
> Thanks,
> Dave
> 
> **************************************************************
> **********
> This Internet E-mail is intended solely for the person to whom it is
> addressed. It may contain confidential or privileged 
> information. If you
> have received it in error please notify us immediately by 
> telephone and
> destroy the transmission. You must not copy, distribute or 
> take any action
> in reliance on it.
> 
> Aerosystems International               Phone: +44 (0)1935 443000
>                                         Fax  : +44 (0)1935 443111
>                                         Web  : www.aeroint.com
> **************************************************************
> **********
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
> For additional commands, e-mail: batik-users-help@xml.apache.org
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
> For additional commands, e-mail: batik-users-help@xml.apache.org
> 
> **************************************************************
> **********
> This Internet E-mail is intended solely for the person to 
> whom it is addressed. It may contain confidential or 
> privileged information. If you have received it in error 
> please notify us immediately by telephone and destroy the 
> transmission. You must not copy, distribute or take any 
> action in reliance on it.
> 
> Aerosystems International               Phone: +44 (0)1935 443000
>                                         Fax  : +44 (0)1935 443111
>                                         Web  : www.aeroint.com
> **************************************************************
> **********
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
> For additional commands, e-mail: batik-users-help@xml.apache.org
> 

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


Mime
View raw message