xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas DeWeese <Thomas.DeWe...@Kodak.com>
Subject Re: Backend driven svg application
Date Sun, 18 Jul 2004 23:40:32 GMT
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: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


Mime
View raw message