Hello,

 

We have a notification engine that fire events when changes occur in the backend system. Based upon those events we would like to update the JSVGCanvas in correspondence with these backend data changes. The rate at which those changes occur, is every 10 seconds, so, for performance reasons, we are probably not able to rerender the svg each time (with a setDocument(…)). We also want to avoid the blinking and the loss of the zoom status that occurs when rerendering the svg in the JSVGCanvas.

 

The ideal situation for us, would be to change the svg dynamically. I tried calling a script (defined in the svg) from within the java code but without success.

 

My code:

 

UpdateManager um = svgCanvas.getUpdateManager();

Interpreter ip = um.getBridgeContext().getInterpreter("text/ecmascript");

ScriptRun sr = new ScriptRun("alert", ip);

um.getUpdateRunnableQueue().invokeLater(sr);

 

public class ScriptRun implements Runnable{

    private Interpreter interpreter;

    private String scriptName;

 

    public ScriptRun(String scriptName, Interpreter interpreter) {

        this.interpreter = interpreter;

        this.scriptName = scriptName;

    }

 

    public void run() {

        try{

            interpreter.evaluate(this.scriptName);

        } catch(InterpreterException ie){

            ie.printStackTrace();

        }

    }

}

 

What is going wrong? Or are there better approaches to tackle this problem.

 

I’m using batik 1.5.1. on JDK 1.4.2_04.

 

Thx

Frederik

 


---
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

Reply via email to