package fr.orsay.lri.varna.models.export;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import java.io.FileWriter;
import java.io.IOException;
import fr.orsay.lri.varna.exceptions.ExceptionWritingForbidden;
import fr.orsay.lri.varna.models.rna.RNA;
public class SecStrProducerGraphics implements VueVARNAGraphics{
SecStrDrawingProducer _ss;
double _thickness;
Color _color;
public SecStrProducerGraphics(SecStrDrawingProducer ss)
{
_ss = ss;
}
public void draw(GeneralPath s) {
_ss.fillPolygon(s, getColor());
}
public void drawArc(double x, double y, double rx, double ry,
double angleStart, double angleEnd) {
// TODO Auto-generated method stub
}
public void drawLine(double x1, double y1, double x2, double y2) {
this._ss.drawLine(x1, -y1, x2, -y2, _thickness);
}
public void drawCircle(double x, double y, double r) {
_ss.drawCircle(x+0.5*r, -y-0.5*r, 0.5*r, _thickness);
}
public void drawRect(double x, double y, double w, double h) {
// TODO Auto-generated method stub
}
public void drawRoundRect(double x, double y, double w, double h,
double rx, double ry) {
// TODO Auto-generated method stub
}
public void drawStringCentered(String res, double x, double y) {
_ss.drawText(x, -y, res);
}
public void fill(GeneralPath s) {
_ss.fillPolygon(s, getColor());
}
public void fillCircle(double x, double y, double r) {
_ss.fillCircle(x+0.5*r, -y-0.5*r, 0.5*r, _thickness, _ss.getCurrentColor());
}
public void fillRect(double x, double y, double w, double h) {
// TODO Auto-generated method stub
}
public void fillRoundRect(double x, double y, double w, double h,
double rx, double ry) {
// TODO Auto-generated method stub
}
public Color getColor() {
return _ss.getCurrentColor();
}
public Dimension getStringDimension(String s) {
// TODO Auto-generated method stub
return null;
}
public void setColor(Color c) {
_ss.setColor(c);
}
public void setDashedStroke() {
// TODO Auto-generated method stub
}
public void setFont(Font f) {
//System.out.println("Font "+f.getSize2D());
_ss.setFont(_ss.FONT_HELVETICA_BOLD,f.getSize2D());
}
public void setPlainStroke() {
// TODO Auto-generated method stub
}
public void setStrokeThickness(double t) {
_thickness = t;
}
public void saveToDisk(String path) throws ExceptionWritingForbidden
{
FileWriter fout;
try {
fout = new FileWriter(path);
fout.write(_ss.export());
fout.close();
} catch (IOException e) {
throw new ExceptionWritingForbidden(e.getMessage());
}
}
}