>>>>> "CE" == Christian Enklaar <[EMAIL PROTECTED]> writes:
CE> Hello and thanx for your quick answers. One problem is that I
CE> change elements in the displayed svg upon messages received from a
CE> server. My application is kind of monitoring the state of a system
CE> and usually the user has to note changes while performing other
CE> tasks. But the dynamic update seems only to take place when the
CE> mouse is moved over the batik-application.
>> I take it you are modifying the DOM from Java not from JavaScript
>> embedded in the document? It sounds to me like you might not be
>> making your changes in the 'Update Thread'. Our DOM implementation
>> is not thread safe (it is almost impossible to make a DOM thread
>> safe), so all changes to the DOM must be made in the 'Update
>> Thread'.
>>
CE> Yes - you are right, I am modifying the DOM from Java. I am not
CE> sure how to use the 'Update Thread' though ... In fact I am using
CE> an applet (javax/swing/JApplet) which displays the svg-document in
CE> a svgCanvas. The applet starts a thread (runnable) that is waiting
CE> for changes and then calls an update function from the applet
CE> again to modify the DOM (depending on the changes). Can you give
CE> me a hint, about how to use the 'Update Thread' ?
Try something like:
import org.apache.batik.bridge.UpdateManager;
import org.apache.batik.util.RunnableQueue;
[...]
JSVGCanvas svg; // Your SVG Canvas.
UpdateManager um = svg.getUpdateManager()
RunnableQueue rq = um.getUpdateRunnableQueue();
rq.invokeLater(new Runnable() {
public void run() {
// Code that modifies the DOM tree...
}
});
I suspect (& hope) that this will solve many of your problems...
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]