This is a piece of code that i wrote:

public class Test {

        public static JSVGCanvas svgCanvas;
        public static JFrame f, frame;
        public static Test app;
        public static String parser, uri;
        public static SAXSVGDocumentFactory factory;
        public static SVGDocument doc;
        final String svgNS = "http://www.w3.org/2000/svg";;
        JButton button = new JButton("Load...");
        JLabel label = new JLabel();
        JButton prova;
        JToggleButton muovi;
        JButton save;
        
        String SCALE = "scale";
    String DRAG = "drag";
    String action;
    EventTarget actionNode, actionTgt;
    SVGPoint startPt;
    boolean dragged = false;
        
        
        
        public static void main(String[] args) {
        f = new JFrame("Batik");
        app = new Test(f);
        f.getContentPane().add(app.createComponents());
            
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        
        f.setSize(400, 400);
        f.setVisible(true);
    }
        
         public Test (JFrame f) {
                        svgCanvas = new JSVGCanvas();
                frame = f;
         }
         
         public JComponent createComponents() {
                 final JPanel panel = new JPanel(new BorderLayout());

                JPanel p = new JPanel(new FlowLayout(FlowLayout.LEFT));
                p.setSize(new Dimension(184, 91));
                p.add(button);
                p.add(label);

                p.add(getMuovi());
                p.add(getProva());
                p.add(getSave());
                panel.add("North", p);
                panel.add("Center", svgCanvas);
                
                //Set the button action.
                button.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent ae) {
                        JFileChooser fc = new JFileChooser(".");
                        int choice = fc.showOpenDialog(panel);
                        if (choice == JFileChooser.APPROVE_OPTION) {
                            File f = fc.getSelectedFile();
                            try {
                                
svgCanvas.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC);
                                parser =
XMLResourceDescriptor.getXMLParserClassName();
                                factory = new SAXSVGDocumentFactory(parser);
                                svgCanvas.setURI(f.toURL().toString());
                                uri = svgCanvas.getURI();
                                doc = factory.createSVGDocument(uri);
                                svgCanvas.setSVGDocument(doc);
                            }catch(IOException ex){
                                 ex.printStackTrace();
                            }
                        }
                    }
                });
         
     // Set the JSVGCanvas listeners.
     svgCanvas.addSVGDocumentLoaderListener(new SVGDocumentLoaderAdapter() {
         public void documentLoadingStarted(SVGDocumentLoaderEvent e) {
             label.setText("Document Loading...");
         }
         public void documentLoadingCompleted(SVGDocumentLoaderEvent e) {
             label.setText("Document Loaded.");
         }
     });

     svgCanvas.addGVTTreeBuilderListener(new GVTTreeBuilderAdapter() {
         public void gvtBuildStarted(GVTTreeBuilderEvent e) {
             label.setText("Build Started...");
         }
         public void gvtBuildCompleted(GVTTreeBuilderEvent e) {
             label.setText("Build Done.");
             frame.pack();
         }
     });

     svgCanvas.addGVTTreeRendererListener(new GVTTreeRendererAdapter() {
         public void gvtRenderingPrepare(GVTTreeRendererEvent e) {
             label.setText("Rendering Started...");
         }
         public void gvtRenderingCompleted(GVTTreeRendererEvent e) {
             label.setText("");
         }
     });

     return panel;
        }

         public JButton getProva() {
                prova = new JButton();
                prova.setText("rect");
                prova.addActionListener(new java.awt.event.ActionListener() {
                        public void actionPerformed(java.awt.event.ActionEvent 
e) {     
               
svgCanvas.getUpdateManager().getUpdateRunnableQueue().invokeLater(new
Runnable() {
                                        public void run() {
                                                        //SVGDocument doc = 
svgCanvas.getSVGDocument();
                                        //svgCanvas.setDocument(doc);
                                                        SVGElement svgRoot = 
doc.getRootElement();
                                                        Element elem = 
doc.createElementNS(svgNS, "rect");
                                                        
elem.setAttributeNS(null, "id", "bgrectangle");
                                                        
elem.setAttributeNS(null, "x","200");
                                                        
elem.setAttributeNS(null, "y","100");
                                                        
elem.setAttributeNS(null, "width", "150");
                                                        
elem.setAttributeNS(null, "height", "150");
                                                        
//elem.setAttributeNS(null, "pointer-events", "fill");
                                                        
elem.setAttributeNS(null, "style", "fill:red;stroke:none"); 
                                                        
svgRoot.appendChild(elem);
                                        }
                });
                                //svgCanvas.repaint();
                        }

                });
                return prova;
         }

private JButton getSave(){
                        save = new JButton();
                        save.setText("Save");
                        save.addActionListener(new ActionListener() {
                                public void 
actionPerformed(java.awt.event.ActionEvent e) {     

                                        try {
                                                
org.apache.batik.dom.util.DOMUtilities.writeNode(doc.getFirstChild(),
                                                new 
FileWriter("c:\\prova.svg"));
                                        } catch (IOException e1) {
                                                // TODO Auto-generated catch 
block
                                                e1.printStackTrace();
                                        }
                                }
                        });
                        return save;
                }

-- 
View this message in context: 
http://www.nabble.com/save-into-a-file-tf2612562.html#a7293645
Sent from the Batik - Users mailing list archive at Nabble.com.


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

Reply via email to