X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2Fapplications%2FVARNAPrinter.java;fp=srcjar%2Ffr%2Forsay%2Flri%2Fvarna%2Fapplications%2FVARNAPrinter.java;h=6dbc3324d58ac1a5c689e8f22e93b250f0821f3a;hp=0000000000000000000000000000000000000000;hb=2d6292c0377bc6b773c6844a45d3f2c5fac352c7;hpb=954af328a2a6a0055572cd1a09ee035301222574 diff --git a/srcjar/fr/orsay/lri/varna/applications/VARNAPrinter.java b/srcjar/fr/orsay/lri/varna/applications/VARNAPrinter.java new file mode 100644 index 0000000..6dbc332 --- /dev/null +++ b/srcjar/fr/orsay/lri/varna/applications/VARNAPrinter.java @@ -0,0 +1,51 @@ +package fr.orsay.lri.varna.applications; + +import java.awt.*; +import javax.swing.*; +import java.awt.print.*; + +public class VARNAPrinter implements Printable { + private Component componentToBePrinted; + + public static void printComponent(Component c) { + new VARNAPrinter(c).print(); + } + + public VARNAPrinter(Component componentToBePrinted) { + this.componentToBePrinted = componentToBePrinted; + } + + public void print() { + PrinterJob printJob = PrinterJob.getPrinterJob(); + printJob.setPrintable(this); + if (printJob.printDialog()) + try { + printJob.print(); + } catch(PrinterException pe) { + //System.out.println("Error printing: " + pe); + } + } + + public int print(Graphics g, PageFormat pageFormat, int pageIndex) { + if (pageIndex > 0) { + return(NO_SUCH_PAGE); + } else { + Graphics2D g2d = (Graphics2D)g; + g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); + disableDoubleBuffering(componentToBePrinted); + componentToBePrinted.paint(g2d); + enableDoubleBuffering(componentToBePrinted); + return(PAGE_EXISTS); + } + } + + public static void disableDoubleBuffering(Component c) { + RepaintManager currentManager = RepaintManager.currentManager(c); + currentManager.setDoubleBufferingEnabled(false); + } + + public static void enableDoubleBuffering(Component c) { + RepaintManager currentManager = RepaintManager.currentManager(c); + currentManager.setDoubleBufferingEnabled(true); + } +}