Hi, Here is the page http://xml.apache.org/batik/javaScripting.html that might help you. It describe the steps to go through in order to take advantage of dynamic updates in Batik with Java ( this is working with Batik 1.5beta3 ).
Nicolas > -----Original Message----- > From: Ingrid Falk [mailto:[EMAIL PROTECTED]] > Sent: July 19, 2002 4:45 AM > To: Batik Users > Subject: Re: JSVGComponent and updating display via the DOM > > > >>>>> "George" == George Armhold <[EMAIL PROTECTED]> writes: > > George> Greetings, I'd like to inquire about the current state of > George> Batik with respect to dynamically updating documents via > George> the DOM. I've seen a few messages in the list archives > George> suggesting that some dynamic features work in the 1.5 > George> beta, however my updates don't seem to work. (I also > George> tried the latest version from CVS, no luck.) What I'm > George> doing is extending JSVGComponent with a class that loads a > George> document, and then modifies the DOM programmatically via > George> Java (no scripting.) My changes never seem to get > George> displayed in the JSVGComponent. The updates I'm doing are > George> pretty simple- I'm adding <svg> elements that contain > George> <line> elements. If I write out the updated SVG document > George> to a file, I can successfully view my added items with the > George> batik-svgbrowser. > > George> I also tried forcing a re-display by calling > > George> setSVGDocument(getSVGocument()); > > George> but I get a NullPointerException. > > I think I had a similar problem with the setSVGDocument method. I > I could only make it render my document after making sure > that every <svg> > element had certain attributes, like this: > > <svg x="0.0" contentScriptType="text/ecmascript" y="0.0" width="210.0" > zoomAndPan="magnify" contentStyleType="text/css" id="N400001tag1" > height="80.0" preserveAspectRatio="xMidYMid meet" > xmlns="http://www.w3.org/2000/svg" version="1.0"> > > This one wouldn't be displayed (or raise some exceptions): > > <svg height="40.0" id="N400008tag1" width="70.0" x="140.0" y="40.0"> > > To transform the initial SVG to the one that would be rendered, I > serialized it first and then used the SAXSVGDocumentFactory (there may > be a less clumsy way to do it, but I don't know better) like: > > the serialization: > > StringWriter osw = new StringWriter(); > PrintWriter pw = new PrintWriter(osw, false); > serializer.transform(new javax.xml.transform.dom.DOMSource(SVG), > new > javax.xml.transform.stream.StreamResult(pw)); > > transformation of "plain" SVG to batik-SVGDocument: > > String parser = > org.apache.batik.util.XMLResourceDescriptor.getXMLParserClassName(); > SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory(parser); > Document svgDoc = factory.createDocument(null, new > StringReader(osw.toString())); > > I'd like to know if this helped and whether you know about any > improvements > > best > > Ingrid > > > > --------------------------------------------------------------------- > 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]