package edu.byu.cs.roots.opg.io;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import edu.byu.cs.roots.opg.model.OpgPage;
import edu.byu.cs.roots.opg.model.OpgSession;
public class PrintableChart implements Printable
{
OpgPage page;
ChartWriter writer;
OpgSession session;
public PrintableChart(OpgPage page, ChartWriter writer, OpgSession session) {
this.page = page;
this.writer = writer;
this.session = session;
}
public int print(Graphics g, PageFormat pageFormat, int PageNumber)
{
Graphics2D g2d = (Graphics2D) g;
//Translate the origin to 0,0 for the top left corner
g2d.translate (pageFormat.getImageableX () , pageFormat.getImageableY ());
double scaleRatio = Math.min(pageFormat.getImageableWidth() / page.getPageWidth(), pageFormat.getImageableHeight() / page.getPageHeight());
g2d.scale(scaleRatio, scaleRatio);
writer.createChart(page ,g2d, (int)pageFormat.getImageableWidth(), (int)pageFormat.getImageableHeight(), 0, 0, 0, g, false, session);
return (PAGE_EXISTS);
}
}