1 package org.wcb.common; 2 3 import javax.swing.*; 4 import org.wcb.common.component.PrintPreviewPanel; 5 import java.awt.*; 6 import java.awt.print.PrinterJob; 7 import java.awt.print.PrinterException; 8 import java.awt.event.ActionListener; 9 import java.awt.event.ActionEvent; 10 11 /*** 12 * Copyright (C) 1999 Walter Bogaardt 13 * 14 * This library is free software; you can redistribute it and/or 15 * modify it under the terms of the GNU Lesser General Public 16 * License as published by the Free Software Foundation; either 17 * version 2 of the License, or (at your option) any later version. 18 * 19 * This library is distributed in the hope that it will be useful, 20 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 22 * Lesser General Public License for more details. 23 * 24 * You should have received a copy of the GNU Lesser General Public 25 * License along with this library; if not, write to the Free Software 26 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 27 * 28 * Project: Alice X10 Home Automation 29 * Filename: $Id: PrintPreviewDialog.java,v 1.2 2004/07/22 03:06:50 wbogaardt Exp $<BR> 30 * Abstract: Used to display Print preview panel settings. 31 * 32 * $Log: PrintPreviewDialog.java,v $ 33 * Revision 1.2 2004/07/22 03:06:50 wbogaardt 34 * removed deprecated method calls. 35 * 36 * Revision 1.1 2004/02/20 23:56:20 wbogaardt 37 * added print preview dialog box 38 * 39 */ 40 public class PrintPreviewDialog extends JDialog implements ActionListener{ 41 42 private PrintPreviewPanel printPanel; 43 44 private JButton jbPrint = new JButton("Print"); 45 46 /*** 47 * This dialog takes the frame reference a calender object to to 48 * display a time dialog box. This dialog box makes it easier for the 49 * user to set the time as they can drag a slide bar across and it will 50 * change the time rather than typing in the time. 51 * @param frame main frame reference 52 * @param controller The button that will controll closing this dialog. 53 */ 54 public PrintPreviewDialog(Frame frame, JButton controller){ 55 super(frame,"Print Preview",true); 56 Container pane = getContentPane(); 57 pane.setLayout(new BorderLayout()); 58 JPanel southPanel = new JPanel(); 59 southPanel.add(controller); 60 southPanel.add(jbPrint); 61 jbPrint.addActionListener(this); 62 printPanel = new PrintPreviewPanel(); 63 pane.add(printPanel, BorderLayout.CENTER); 64 pane.add(southPanel, BorderLayout.SOUTH); 65 pack(); 66 } 67 68 public void setPrintableText(String text){ 69 printPanel.setTextArea(text); 70 } 71 72 public void actionPerformed(ActionEvent e) { 73 if (e.getSource() instanceof JButton) { 74 PrinterJob printJob = PrinterJob.getPrinterJob(); 75 printJob.setPrintable(printPanel); 76 if (printJob.printDialog()) { 77 try { 78 printJob.print(); 79 } catch (PrinterException ex) { 80 ex.printStackTrace(); 81 } 82 } 83 } 84 } 85 }