Thomas,
Thanks for all your input. It turns out that you were right about the
setAttributeNS(null, ...,...) method. Regards, Marc
To: [EMAIL PROTECTED]: [EMAIL PROTECTED]: Re: JSVGCanvas does not update with
modified DOM using Update ManagerFrom: [EMAIL PROTECTED]: Tue, 6 Nov 2007
06:17:00 -0500Hi Marc, "Marc-Wayne M. Formales" <[EMAIL PROTECTED]> wrote on
10/24/2007 03:00:33 PM:> I have a JApplet that loads an SVG via JSVGCanvas.>
setDocument(xmlDoc). If a user clicks on a certain part of the > document (any
<a> tag), then I have some code that will animate that> node and replace it in
the document object. I am doing this in the > update manager, which does run
in the gvtRendering event, but the UI> is not updated with the changes I made.
> um.getUpdateRunnableQueue().invokeLater(new Runnable() {> public void
run() {> System.out.println("connID: " + connID);>
diagramSVG.getDocumentElement().replaceChild(animatedALink,> aLink); //where
animatedALink is the modified> canvas.setDocument(diagramSVG); You
should not reset the document. This will be _very_ slow. However if that did
not work then there is almost certainly something wrong with the elements you
construct. > I know that the DOM object is correct because if I write that > to
the file system, the changes are there. Is there something > that I'm missing?
This test is almost useless for detecting namespace problems. The majority of
common namespace errors are corrected by writing the file and reparsing it.
"Tonny Kohar" <[EMAIL PROTECTED]> wrote on 11/01/2007 12:07:32 AM:> On 11/1/07,
Marc-Wayne M. Formales <[EMAIL PROTECTED]> wrote:> >> > Element animate =
diagramSVG.createElement("animateColor"); //where> > diagramSVG is Document
type> Batik is namespace aware, so you need to use namespace when creating> or
set attribute using the namespace aware methods> String svgNS =
SVGConstants.SVG_NAMESPACE_URI;> diagramSVG.createElementNS(svgNS,...) Tonny
is correct here. 'createElement("animateColor")' will not work. It needs to
be 'createElementNS(svgNS, "animateColor")'. However: > > //set
attributes> > animate.setAttribute( ...);> >
animate.setAttributeNS(svgNS,...) This is generally _not_ correct. With the
exception of the 'xlink' attributes (most notably xlink:href), all attributes
in SVN need to be set with: animate.setAttributeNS(null, ...) This could
be your problem as if you don't set any attributes on the animate element
(which is what it would look like to Batik if you put them all in the SVG
Namespace instead of the null namespace).