Frederik Santens wrote:
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.
You should be aware that you can modify the SVG Document from
Java directly (as long as you do it from within the UpdateManager
Thread). The most common mistake for systems like this is to fail
to inform the canvas that the document should be treated as dynamic.
This is done with:
svgCanvas.setDocumentState(JSVGComponent.ALWAYS_DYNAMIC).
UpdateManager um = svgCanvas.getUpdateManager();
Interpreter ip = um.getBridgeContext().getInterpreter("text/ecmascript");
ScriptRun sr = new ScriptRun("alert", ip);
This should probably be 'alert()'.
um.getUpdateRunnableQueue ( ).invokeLater(sr);
What is going wrong? Or are there better approaches to tackle this problem.
Does anything happen when you do this (exception etc?).
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]