SwingPage.java :  » Report » datavision-1.1.0 » jimm » datavision » layout » swing » Java Open Source

Java Open Source » Report » datavision 1.1.0 
datavision 1.1.0 » jimm » datavision » layout » swing » SwingPage.java
package jimm.datavision.layout.swing;
import java.awt.*;
import java.awt.print.*;
import javax.swing.JPanel;

/**
 * A swing page is a single printable page from a report.
 *
 * @see SwingLE
 * @author Jim Menard, <a href="mailto:jimm@io.com">jimm@io.com</a>
 */
class SwingPage extends JPanel implements Printable {

protected Dimension preferredSize;

/**
 * Constructor.
 */
public SwingPage() {
    setLayout(null);
    setBackground(Color.white);
}

/** Needed because we use a null layout. */
public void setPreferredSize(Dimension dim) {
    preferredSize = dim;
}

/** Needed because we use a null layout. */
public Dimension getPreferredSize() {
    return preferredSize;
}

/**
 * Print a single page.
 */
public int print(Graphics g, PageFormat pf, int pageIndex)
    throws PrinterException
{
    // As suggested by Jaume (Tau Ingenieros <tauinge@menta.net>), use
    // paint instead of paintComponent and resize to page format.
    Dimension oldSize = getSize();
    setSize((int)pf.getWidth(), (int)pf.getHeight());
    print(g);
    setSize(oldSize);

    return Printable.PAGE_EXISTS;
}

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.