package edu.buffalo.cse.green.editor.save;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import org.apache.batik.svggen.SVGGraphics2DIOException;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.svg.export.GraphicsSVG;
import edu.buffalo.cse.green.editor.DiagramEditor;
/**
* @author dan
*
*/
public class SVGFormat implements ISaveFormat {
/* (non-Javadoc)
* @see edu.buffalo.cse.green.editor.save.ISaveFormat#getDescription()
*/
public String getDescription ( ) {
return "SVG Vector Graphic";
}
/* (non-Javadoc)
* @see edu.buffalo.cse.green.editor.save.ISaveFormat#getExtension()
*/
public String getExtension ( ) {
return "svg";
}
/* (non-Javadoc)
* @see edu.buffalo.cse.green.editor.save.ISaveFormat#saveInformation(edu.buffalo.cse.green.editor.DiagramEditor, java.lang.String, org.eclipse.draw2d.IFigure)
*/
public void saveInformation ( DiagramEditor editor, String fileName,
IFigure figure ) {
Rectangle bounds = figure.getBounds( );
GraphicsSVG g = GraphicsSVG.getInstance( bounds );
figure.paint( g );
try {
g.getSVGGraphics2D().stream(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName))));
} catch ( SVGGraphics2DIOException e ) {
e.printStackTrace();
} catch ( FileNotFoundException e ) {
e.printStackTrace();
} finally {
g.dispose();
}
}
}