Hi Michael,

Bishop, Michael W. CONTR J9C880 wrote:

I don't think I need the <g> elements at all for basic shapes
which has got me going away from SVGGraphics2D.

The outer 'g' is also mostly useless in the 'one draw operation at a
time' case, so you are left with just the inner 'g' that needs to be
kept.

Why?  Can't I have:

<svg>
    <circle .../>
    <rect .../>
</svg>

   You can have this if you go with SVGShape, getting this from
the SVGGraphics2D would be difficult (you would have to move
the fill/stroke/etc attrs from the wrapping 'g' to the primitive).

   Yes, so you would want to do something like:

   Element e = svgShape.toSVG(java2dShape);
   e.setAttributeNS(null, "fill", "red");
   root.appendChild(e).

Right, since this is a whiteboard application, I will need to
communicate everything about the shape.  Color, fill color, size, shape,
etc.  Again, according to the SVG specification, I can declare all this
stuff.  So now I'm thinking:

- Create a root document.
- Set extra attributes on the root <svg> element; canvas size, etc.
- Translate mouse press/release to X/Y coordinates.
- Translate X/Y coordinates to Shape.
- Translate Shape2D to SVGShape.
- Use SVGShape.toSVG() to create the SVG element.
- Set extra attributes on the element; ID, fill color, color, etc.
- Append the SVG fragment to the document.
- At this point, ALWAYS_DYNAMIC should pick up the change and display it
on the application.

   This all sounds good (just a friendly reminder to use the
UpdateManager thread to append the new shape to the document).

The only question left in this line of thinking is the
SVGGeneratorContext.  It's needed as a constructor argument for the
SVGShape class.  I used to get it from SVGGraphics2D.  Where would I get
one for now?

   It has a factory method that takes a Document.  This is generally
what the SVGGraphics2D uses in the default case:

    SVGGeneratorContext gc = SVGGeneratorContext.createDefault(doc);


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to