Reinhard Brandst�dter wrote:I think calling setSVGDocument() after I've created the document "offline" isn't the right way but how can I use the updateManager to replace the whole document in the Canvas with the new one?
Thomas DeWeese wrote:The whole idea of the updateManager is that it tracks the changes to the document as you make them. One consequence of this is that it can be faster to make all your changes up front rather than have them tracked 'live'.
Reinhard Brandst�dter wrote:
So this means if I use the invokeLater() from the UpdateManager it's slower than directly modifying the document.
No, it just means that you may have two threads modifying the same document at the same time. Once the document is associated with the Canvas (and hence an UpdateManager) all modifications are tracked - it doesn't matter what thread the changes are made in it tracks them. However if the modifications aren't made in the UpdateManager thread you will have multi-threading issues.
> As I mentioned before there > is no need to immediately see the changes in the canvas as they are made. > But somehow this interferes with Java Scripting and Event handling.
The update of the display is only ever done _after_ a Runnable completes so if you moved the "reconstruction" of the document into a runnable no repaints would happen until the runnable completed. This would also make your document "play nicely" with JavaScript and Event handling. As it is your JavaScript and Events may be running on the same Document as you are constructing it!
I would take one of three routes here:
1) Don't load the document with setURI (do you even need to load something from a URI?[*]), but load the document yourself, modify it and then set it with setSVGDocument. 2) Move all your code into a Runnable and run it in the UpdateManager Thread. 3) Load the document with setURI, then deep clone the Document, then modify the clone (which doesn't have to be in the UpdateManager Thread and the changes won't be tracked by the Canvas). Then you can set the clone document on the canvas.
[*] What is the document you are loading from the URI? Is there any reason
that the document from the URI needs to be related to the document you
create on the fly?--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
