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]



Reply via email to