Thanks a lot to both of you!!! Now it works :)

On Jan 9, 2006, at 2:19 PM, Dylan Browne wrote:

I think if you've changed the SVG namespaces to be null as suggested in the previous reply, your text is probably rendering, but being rendered outside the visible canvas... changing the values of X and Y for the text would
probably do it

This worked for me, (modified version of your code)....

import java.awt.*;

import javax.swing.*;

import org.apache.batik.bridge.UpdateManager;
import org.apache.batik.dom.svg.SVGDOMImplementation;
import org.apache.batik.swing.JSVGCanvas;
import org.apache.batik.swing.gvt.GVTTreeRendererAdapter;
import org.apache.batik.swing.gvt.GVTTreeRendererEvent;
import org.apache.batik.swing.svg.GVTTreeBuilderEvent;
import org.apache.batik.swing.svg.GVTTreeBuilderListener;
import org.apache.batik.swing.svg.SVGLoadEventDispatcherAdapter;
import org.apache.batik.swing.svg.SVGLoadEventDispatcherEvent;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
import org.w3c.dom.svg.SVGDocument;

public class TextTest
{

    //~ Methods

    public static void main(String[] args)
    {
        final JSVGCanvas svgCanvas = new JSVGCanvas();
        svgCanvas.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC);
        final String nSvg = SVGDOMImplementation.SVG_NAMESPACE_URI;

        Document doc =
SVGDOMImplementation.getDOMImplementation().createDocument(nSvg,
"svg", null);
        svgCanvas.setDocument(doc);
        JPanel panel = new JPanel();
        panel.add(svgCanvas);

        svgCanvas.addSVGLoadEventDispatcherListener(new
SVGLoadEventDispatcherAdapter() {
                public void
svgLoadEventDispatchStarted(SVGLoadEventDispatcherEvent event)
                {
                    Element root =
svgCanvas.getSVGDocument().getDocumentElement();
                    root.setAttributeNS(nSvg, "width", "400");
                    root.setAttributeNS(nSvg, "height", "400");
                    svgCanvas.setBackground(Color.RED);
                }
            });
svgCanvas.addGVTTreeRendererListener(new GVTTreeRendererAdapter() { public void gvtRenderingPrepare (GVTTreeRendererEvent e) {}

public void gvtRenderingCompleted (GVTTreeRendererEvent e)
                {
                    UpdateManager updateManager =
svgCanvas.getUpdateManager();

updateManager.getUpdateRunnableQueue().invokeLater(new Runnable() {
                            public void run()
                            {
                                String      nSvg =
SVGDOMImplementation.SVG_NAMESPACE_URI;
                                SVGDocument doc =
svgCanvas.getSVGDocument();

Element text = doc.createElementNS (nSvg,
"text");
                                text.setAttributeNS(null, "font-size",
"15");
text.setAttributeNS(null, "fill", "black");
                                text.setAttributeNS(null, "x", "100");
                                text.setAttributeNS(null, "y", "100");
Text textNode = doc.createTextNode ("hello");
                                text.appendChild(textNode);

                                //
Element rect = doc.createElementNS(nSvg, "rect");
                                //
rect.setAttributeNS(null, "x", "100");
                                //
rect.setAttributeNS(null, "y", "100");
                                //
rect.setAttributeNS(null, "width", "40");
                                //
rect.setAttributeNS(null, "height", "50");
                                //
rect.setAttributeNS(null, "style", "fill:green");
                                //
rect.appendChild(text);
                                //
doc.getDocumentElement().appendChild(rect);
doc.getDocumentElement().appendChild (text);
                            }
                        });
                }
            });

        JFrame frame = new JFrame();
        frame.getContentPane().add(panel);
        frame.pack();
        frame.setVisible(true);
    }
}





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



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

Reply via email to