Hi, Instead of calling the javascript from updatemanager thread, I manipulate the DOM tree of the svg now. Here is the code:
UpdateManager um = svgCanvas.getUpdateManager(); ScriptRun1 sr = new ScriptRun1(doc); try{ um.getUpdateRunnableQueue().invokeLater(sr); }catch(Throwable t){ t.printStackTrace(); } public class ScriptRun1 implements Runnable{ Document doc; public ScriptRun1(Document doc) { this.doc = doc; } public void run() { Element element = doc.getElementById("testContent"); Element node = (Element)element.getChildNodes().item(1); int x = Integer.parseInt(node.getAttribute("x")); x = x + 10; node.setAttribute("x", "" + x); } } I'm just trying to move the position of a text field. However the svgCanvas does not reflect the changes. What am I doing wrong? Frederik -----Original Message----- From: Thomas DeWeese [mailto:[EMAIL PROTECTED] Sent: maandag 19 juli 2004 15:39 To: Batik Users Subject: Re: Backend driven svg application Frederik Santens wrote: > I had a javascript function named "alert" which just called > alert("Helloworld"); > > When I called my alert js function from within java > (Interpeter.evaluate("alert()")) I got this StackOverflowError. When I > changed the name of the function to 'displayMessage' it worked. Probably > something with reserved words. Well just confusion about which 'alert' function to call, in JS there is no function overloading so your 'alert' function called itself. > Can I pass references to custom objects to the javascript too? Yes, although you'll have to work at it a bit since you can't easily reference your custom object from the string. The easiest thing to do is use 'bind' to associate your custom object with a global variable in JS, then have your function just use that global var - Iky, I know. Also be careful as it is really easy to introduce memory leaks this way. > You mentioned also in the previous reply that I don't need javascript to > do the dynamic updates of my rendered svg. Do you mean manipulating the > DOM tree via the updatemanager thread is the alternative way of doing > this or are there other ways? This is what I mean. Once you are running in the Update manager thread you can just manipulate the DOM tree using Java. What other way did you have in mind? --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.708 / Virus Database: 464 - Release Date: 18/06/2004 --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.708 / Virus Database: 464 - Release Date: 18/06/2004 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]