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).


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

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" />

But if I am doing it this way, it fails:

   final SVGGElement myGElement= (SVGGElement) doc.createElementNS(ns, "g");
   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.setAttributeNS(null, "transform", "translate(150, 0)");

The problem is: Train doesn't get painted. Not even after calling

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?


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