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]

Reply via email to