Yes, you're using the createElementNS as well which is what I missed. I thought it was a rendering problem because saving/loading fixes it, but apparently my interpretation of the symptoms was wrong...:) Michael Bishop
________________________________ From: Steiner, Dominik [mailto:[EMAIL PROTECTED] Sent: Thu 9/22/2005 2:13 AM To: [email protected] Subject: AW: Possible bug with JSVGCanvas and certain Elements? Hi Michael, I do a similar drawing application and I'm creating my elements using the SVGGraphics2D (to what you already posted a message) Basically I'm creating a path-element out of my Java2D GeneralPath... and it works fine... here's the code Element polygonLayer = canvas.getElementById(LayerManager.POLYGON_LAYER); Shape shape = (Shape) object; // Transform the shape from screen to viewbox coordinates try { AffineTransform at = canvas.getViewBoxTransform().createInverse(); shape = at.createTransformedShape(shape); } catch (NoninvertibleTransformException e1) { e1.printStackTrace(); } // create the path element SVGGraphics2D svgGenerator = new SVGGraphics2D(canvas.getSVGDocument()); svgGenerator.setSVGCanvasSize((Dimension) canvas.getSVGDocumentSize()); Element svgShape = svgGenerator.getShapeConverter().toSVG(shape); // set the elements attributes svgShape.setAttributeNS(null, SVGConstants.SVG_ID_ATTRIBUTE, id); svgShape.setAttributeNS(null, SVGConstants.SVG_FILL_ATTRIBUTE, SVGConstants.SVG_NONE_VALUE); svgShape.setAttributeNS(null, SVGConstants.SVG_STROKE_ATTRIBUTE, "blue"); svgShape.setAttributeNS(null, SVGConstants.CSS_CURSOR_PROPERTY, SVGConstants.CSS_CROSSHAIR_VALUE); svgShape.setAttributeNS(null, SVGConstants.SVG_STROKE_WIDTH_ATTRIBUTE, "5"); polygonLayer.appendChild(svgShape); I hope this helps.... Dominik ________________________________ Von: Bishop, Michael W. CONTR J9C880 [mailto:[EMAIL PROTECTED] Gesendet: Mittwoch, 21. September 2005 22:24 An: [email protected] Betreff: Possible bug with JSVGCanvas and certain Elements? I'm implementing a "free-form" line where the user can draw by pressing and holding the mouse. This is for a whiteboard application. I sample the mouse locations, get a collection of Points, and then create a "polyline" element from the results and append it to the document (in the RunnableQueue) which should update my JSVGCanvas (set to ALWAYS_DYNAMIC). This will not update the screen! I can draw other shapes using the SVGShape class (Ellipse, Rectangle, Line) and they all work fine. Even drawing after the polyline does not cause the polyline to be rendered. However, if I save the SVGDocument to a file, then load it, the polyline shows up?? In essence, appending a polyline Element to a document does not seem to update the JSVGCanvas while other Element types seem to work. Any suggestions? SVG Before (Empty Canvas): <svg contentScriptType="text/ecmascript" fill="none" width="480" xmlns:xlink="http://www.w3.org/1999/xlink" zoomAndPan="magnify" contentStyleType="text/css" height="272" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" version="1.0"></svg> SVG After (Polyline drawn, no updates): <svg contentScriptType="text/ecmascript" fill="none" width="480" xmlns:xlink="http://www.w3.org/1999/xlink" zoomAndPan="magnify" contentStyleType="text/css" height="272" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" version="1.0"> <polyline stroke-opacity="1" points="23,16 32,26 45,38 67,57 89,76 111,90 145,92 176,84 184,73" stroke="black"></polyline> </svg> Michael Bishop
<<winmail.dat>>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
