deweese 2003/07/09 18:23:56 Modified: xdocs faq.xml Log: Added a few new FAQ entries Revision Changes Path 1.35 +63 -4 xml-batik/xdocs/faq.xml Index: faq.xml =================================================================== RCS file: /home/cvs/xml-batik/xdocs/faq.xml,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- faq.xml 19 Mar 2003 01:03:54 -0000 1.34 +++ faq.xml 10 Jul 2003 01:23:56 -0000 1.35 @@ -436,7 +436,7 @@ </p> <p> Beyond the use and mix with other XML syntaxes, being an XML grammar - lets SVG benefit from the pletora of XML tools that make it so easy + lets SVG benefit from the plethora of XML tools that make it so easy to manipulate, generate, search and edit SVG files. </p> </answer> @@ -555,6 +555,65 @@ </faq> <faq> + <question>When I change the document in Java it doesn't update the + display, even if I call repaint?</question> + <answer> + <p>There are two common causes for this. The first is that + the JSVGCanvas doesn't know it's a dynamic document. Normally + Batik detects this by looking for script elements but when you + modify the document from Java it can't tell. So call + JSVGCanvas.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC) before + loading the document.</p> + <p>The second common reason is that the changes aren't made in + The UpdateManager's thread. You can run code in the UpdateManager's + thread with the following: + </p> + <code>UpdateManager um = JSVGCanvas.getUpdateManager();</code> + <code>um.getUpdateRunnableQueue().invokeLater(Runnable);</code> + <p><strong>NOTE:</strong> The update manager only becomes + available after the first rendering completes. You can + be notified when this happens by registering a + GVTTreeRendererListener. + </p> + </answer> +</faq> + +<faq> + <question>When I get the UpdateManager from the canvas sometimes + it is null, why?</question> + <answer> + <p>The JSVGCanvs is highly asynchronous so when you call + setURI or setDocument they return essentially immediately. + Behind the scenes the Canvas sets up the rendering tree and + does a first rendering after running 'onload' scripts. Only + after this first rendering does the UpdateManger become + available. + </p> + </answer> +</faq> + +<faq> + <question>Why do I have to go through the UpdateManager to + run my code? Can't you just synchronize the DOM?</question> + <answer> + <p>It would be possible to synchronize individual calls to + the DOM, however in general this is almost useless for the + way DOM works. For example creating a single rectangle + element takes approximately 6 individual DOM calls. So + higher level synchronization is needed. + </p> + <p>The use of a Runnable is a common way of accomplishing + synchronization for a block of code. This is essentially the + approach that Swing takes (all Swing modification should take + place in the Swing thread). It was considered to use the Swing + event thread, but this would lock the user interface while scripts + were working. + </p> + </answer> +</faq> + + +<faq> <question> I can use the Batik extension tags with the source distribution but not with the binary distribution. What am I missing? @@ -597,7 +656,7 @@ </question> <answer> - <p>For efficeny if Batik Loads a static document it doesn't + <p>For efficiency if Batik Loads a static document it doesn't setup all the dynamic support. Batik normally decides a document is not dynamic by checking if it contains any 'script' elements. However if your Java Application is @@ -693,7 +752,7 @@ <p>The Batik <link href="http://xml.apache.org/batik/batikDemo.html">demo</link> uses Java Web Start. Java Web Start (under the Applications/Utilities folder), lets you start a Java application from a web browser. You can see the debug traces by enabling the Java console for Java Web Start. If you do, you will see that - there is a <code>java.lang.NoSuchMethodError</code> execption thrown.</p> + there is a <code>java.lang.NoSuchMethodError</code> exception thrown.</p> <p>This is happening because the Java Web Start jar file (<code>javaws.jar in /Applications/Utilities/Java Web Start/Content/MacOS)</code> contains an older version of the DOM bindings.</p> <p>One work around is to manually patch the javaws.jar file to remove the DOM bindings
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]