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]