JAL-3026 srcjar files for VARNA and log4j
[jalview.git] / srcjar / fr / orsay / lri / varna / applications / VARNAPrinter.java
1 package fr.orsay.lri.varna.applications;
2
3 import java.awt.*;
4 import javax.swing.*;
5 import java.awt.print.*;
6
7 public class VARNAPrinter implements Printable {
8   private Component componentToBePrinted;
9
10   public static void printComponent(Component c) {
11     new VARNAPrinter(c).print();
12   }
13   
14   public VARNAPrinter(Component componentToBePrinted) {
15     this.componentToBePrinted = componentToBePrinted;
16   }
17   
18   public void print() {
19     PrinterJob printJob = PrinterJob.getPrinterJob();
20     printJob.setPrintable(this);
21     if (printJob.printDialog())
22       try {
23         printJob.print();
24       } catch(PrinterException pe) {
25         //System.out.println("Error printing: " + pe);
26       }
27   }
28
29   public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
30     if (pageIndex > 0) {
31       return(NO_SUCH_PAGE);
32     } else {
33       Graphics2D g2d = (Graphics2D)g;
34       g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
35       disableDoubleBuffering(componentToBePrinted);
36       componentToBePrinted.paint(g2d);
37       enableDoubleBuffering(componentToBePrinted);
38       return(PAGE_EXISTS);
39     }
40   }
41
42   public static void disableDoubleBuffering(Component c) {
43     RepaintManager currentManager = RepaintManager.currentManager(c);
44     currentManager.setDoubleBufferingEnabled(false);
45   }
46
47   public static void enableDoubleBuffering(Component c) {
48     RepaintManager currentManager = RepaintManager.currentManager(c);
49     currentManager.setDoubleBufferingEnabled(true);
50   }
51 }