xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas DeWeese <thomas.dewe...@gmail.com>
Subject Re: setting SVG_TRANSFORM_ATTRIBUTE after adding element to parent: element doesn't get painted
Date Fri, 29 Jun 2012 11:13:07 GMT
Hi Marco,
   It sounds like a bug, but since it seems to depend on a very particular
sequence of events I wonder if you could try and reproduce the bug in a
small standalone example (preferably in javascript, but a Java example will
do).

   Thomas

On Thu, Jun 28, 2012 at 7:56 AM, <ml@mherrn.de> wrote:

> Hi,
>
> I have found a strange behaviour.
> I create a <g> element with a <rect> subelement via DOM manipulation.
> The result is something like this:
>
>    <g transform="translate(150, 0)">
>      <rect width="100" height="30" stroke="blue" fill="yellow" />
>    </g>
>
> But if I am doing it this way, it fails:
>
>    final SVGGElement myGElement= (SVGGElement) doc.createElementNS(ns,
> "g");
>    doc.getRootElement().appendChild(myGElement);
>    final SVGRectElement myRectElement= (SVGRectElement)
> doc.createElementNS(ns, "rect");
>    myRectElement.setAttributeNS(null, "stroke", "blue");
>    myRectElement.setAttributeNS(null, "fill", "yellow");
>    myRectElement.setAttributeNS(null, "width", "100");
>    myRectElement.setAttributeNS(null, "height", "30");
>    myGElement.appendChild(myRectElement);
>    myGElement.setAttributeNS(null, "transform", "translate(150, 0)");
>
> The problem is: Train doesn't get painted. Not even after calling
> canvas.repaint().
>
> Of course I am doing this in the thread of the update manager. All other
> things I am painting do appear correctly.
> The interesing thing is, if I translate the <g> object so that the new
> location intersects the original location (0, 0), the part of the train in
> the intersection is correctly painted.
>
> If I set the "transform" attribute _before_ adding myGElement to its
> parent, everything works well. Only when doing this _after_ adding it to
> its parent, it fails.
>
> BUT: Another strange behaviour. Assume the above (failing) code snippet
> and insert a
>    myRectElement.setAttributeNS(null, "fill", "red");
> _after_ adding myRectElement to its parent (the <g> element)
> the whole train is getting painted correctly (with the new fill color)!
>
> What is the problem? Is it a bug? Am I doing something wrong?
>
>
> Regards
> Marco
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xmlgraphics.apache.org
> For additional commands, e-mail: batik-users-help@xmlgraphics.apache.org
>
>

Mime
View raw message