From: Michael T H. <mic...@us...> - 2003-10-20 16:49:42
|
Update of /cvsroot/jmol/Jmol/src/org/openscience/jmol/app In directory sc8-pr-cvs1:/tmp/cvs-serv2961/src/org/openscience/jmol/app Modified Files: DisplayPanel.java Jmol.java Log Message: fixed printing in the app Index: DisplayPanel.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/app/DisplayPanel.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- DisplayPanel.java 6 Oct 2003 21:35:41 -0000 1.19 +++ DisplayPanel.java 20 Oct 2003 14:03:55 -0000 1.20 @@ -27,30 +27,15 @@ import org.openscience.jmol.*; import org.openscience.jmol.viewer.*; -import java.awt.Image; -import java.awt.image.BufferedImage; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Dimension; -import java.awt.Rectangle; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.ActionEvent; -import java.awt.event.MouseMotionAdapter; -import java.awt.event.ComponentListener; -import javax.swing.event.MenuListener; -import javax.swing.event.MenuEvent; -import javax.swing.Action; -import javax.swing.AbstractAction; -import javax.swing.JComponent; -import javax.swing.JMenu; -import javax.swing.JMenuItem; -import javax.swing.JCheckBoxMenuItem; -import javax.swing.JRadioButtonMenuItem; -import javax.swing.JPanel; -import javax.swing.RepaintManager; +import java.awt.*; +import java.awt.image.*; +import java.awt.event.*; +import java.awt.print.*; +import javax.swing.*; +import javax.swing.event.*; -public class DisplayPanel extends JPanel implements ComponentListener { +public class DisplayPanel extends JPanel + implements ComponentListener, Printable { private StatusBar status; private GuiMap guimap; private JmolViewer viewer; @@ -114,8 +99,6 @@ startPaintClock(); g.getClipBounds(rectClip); Image image = viewer.renderScreenImage(rectClip); - g.setColor(viewer.getColorBackground()); - g.fillRect(rectClip.x, rectClip.y, rectClip.width, rectClip.height); g.drawImage(image, 0, 0, null); if (showPaintTime) stopPaintClock(); @@ -123,6 +106,18 @@ public Image takeSnapshot() { return viewer.getScreenImage(); + } + + public int print(Graphics g, PageFormat pf, int pageIndex) { + Graphics2D g2 = (Graphics2D)g; + if (pageIndex > 0) + return Printable.NO_SUCH_PAGE; + rectClip.x = rectClip.y = 0; + rectClip.width = viewer.getScreenWidth(); + rectClip.height = viewer.getScreenHeight(); + Image image = viewer.renderScreenImage(rectClip); + g.drawImage(image, (int)pf.getImageableX(), (int)pf.getImageableY(), null); + return Printable.PAGE_EXISTS; } // The actions: Index: Jmol.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/openscience/jmol/app/Jmol.java,v retrieving revision 1.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- Jmol.java 6 Oct 2003 12:46:02 -0000 1.48 +++ Jmol.java 20 Oct 2003 14:03:55 -0000 1.49 @@ -47,88 +47,16 @@ import com.lowagie.text.pdf.PdfTemplate; import com.lowagie.text.pdf.PdfWriter; import com.obrador.JpegEncoder; -import java.awt.BasicStroke; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Container; -import java.awt.Cursor; -import java.awt.Dialog; -import java.awt.Dimension; -import java.awt.Font; -import java.awt.Frame; -import java.awt.Graphics2D; -import java.awt.Graphics; -import java.awt.Image; -import java.awt.Insets; -import java.awt.Point; -import java.awt.PrintJob; -import java.awt.Toolkit; -import java.awt.Window; -import java.awt.event.ActionEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.event.MouseEvent; +import java.awt.*; +import java.awt.event.*; import java.awt.geom.*; -import java.beans.PropertyChangeSupport; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.PrintStream; -import java.io.Reader; -import java.io.StringReader; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.EventObject; -import java.util.Hashtable; -import java.util.Locale; -import java.util.MissingResourceException; -import java.util.StringTokenizer; -import java.util.Vector; -import javax.swing.AbstractAction; -import javax.swing.AbstractButton; -import javax.swing.Action; -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; -import javax.swing.BorderFactory; -import javax.swing.Box; -import javax.swing.ButtonGroup; -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JCheckBoxMenuItem; -import javax.swing.JComponent; -import javax.swing.JFileChooser; -import javax.swing.JFrame; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JMenuItem; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JRadioButtonMenuItem; -import javax.swing.JTextArea; -import javax.swing.JToggleButton; -import javax.swing.JToolBar; -import javax.swing.SwingConstants; -import javax.swing.UIManager; -import javax.swing.event.MenuListener; -import javax.swing.event.MenuEvent; - -/** - * The main class in Jmol. - * - * @author Bradley A. Smith (br...@ba...) - * @author Peter Murray-Rust - */ +import java.awt.print.*; +import java.beans.*; +import java.io.*; +import java.util.*; +import javax.swing.*; +import javax.swing.event.*; + public class Jmol extends JPanel { /** @@ -1081,20 +1009,15 @@ **/ public void print() { - Toolkit tk = Toolkit.getDefaultToolkit(); - PrintJob pJob = tk.getPrintJob(frame, "Jmol Print Job", null); - - if (pJob != null) { - Graphics pg = pJob.getGraphics(); - if (pg != null) { - display.print(pg); - - // Flush the print job - pg.dispose(); + PrinterJob job = PrinterJob.getPrinterJob(); + job.setPrintable(display); + if (job.printDialog()) { + try { + job.print(); + } catch (PrinterException e) { + System.out.println("" + e); } - pJob.end(); } - } class OpenAction extends NewAction { |