Hi Marco,
        I would suggest adding your listener before starting the load of the 
document.
Then you know for sure that the document hasn't finished when you add your 
listener.

        Also I should point out that getSVGDocument might return true before 
the SVG DOM
is really ready to be used so just checking that could be bad you really need 
to use the
LoadEventDispatcherListener.

        Finally you need to make sure that you set the canvas to ALWAYS_DYNAMIC
otherwise you might not get the load event called for static looking SVG 
documents.

        Thomas

On Jun 5, 2012, at 7:31 AM, m...@mherrn.de wrote:

> Hi,
> 
> when trying to access the DOM of an SVG document in a JSVGCanvas, it
> should be done via an SVGLoadEventDispatcherListener, to assert that the
> document is only accessed, when the parsing finished.
> For example:
> 
> this.svgCanvas.addSVGLoadEventDispatcherListener(new
> SVGLoadEventDispatcherAdapter() {
>          @Override
>          public void
> svgLoadEventDispatchStarted(SVGLoadEventDispatcherEvent e) {
>              final Element element=
> svgCanvas.getSVGDocument().getElementById(elementId);
>                  element.setAttribute("visibility", "hidden");
>              }
>          }
>      });
> 
> 
> But, of course, this handler is only called once, when the document was
> loaded. But what, if I can't be sure whether the document was already
> loaded, but still want to apply this code?
> 
> What is the recommended approach to modify the DOM, regardless of the
> fact, whether the document finished loading or not?
> 
> 
> Regards
> Marco
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscr...@xmlgraphics.apache.org
> For additional commands, e-mail: batik-users-h...@xmlgraphics.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscr...@xmlgraphics.apache.org
For additional commands, e-mail: batik-users-h...@xmlgraphics.apache.org

Reply via email to