import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.wildcrest.j2printerworks.*;

public class J2Printer14Applet extends JApplet {
    JTextPane pane;
    J2Printer14 printer;
    JCheckBox crossplatform;

    public void init() {
        getContentPane().setLayout(new BorderLayout());

        pane = new JTextPane();
        pane.setSize(150,100);
        pane.setContentType("text/html");
        pane.setText("<html><center><b><big>J2Printer14 Applet Test</big></b><br>"
            + "This is a basic test of <i>JDK 1.4 applet printing</i> using<br>"
            + "<b>J2PrinterWorks</b> by <b>Wildcrest Associates</b><br>"
            + "<font face=monospaced>http://www.wildcrest.com</font><br>"
            + "</center></html>");
        getContentPane().add(pane,"Center");

        JPanel buttons = new JPanel(); buttons.setBackground(Color.white);

        crossplatform = new JCheckBox("Cross-platform dialogs", true);
        crossplatform.setBackground(Color.white);
        buttons.add(crossplatform);

        JButton print = new JButton("Print");
        JButton preview = new JButton("Print preview");
        JButton setup = new JButton("Page Setup");

        buttons.add(print);
        buttons.add(preview);
        buttons.add(setup);

        getContentPane().add(buttons,"South");

        print.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) { print(); }});
        preview.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) { preview(); }});
        setup.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) { setup(); }});

    }

    void prep() {
        if (printer==null) {
            printer = new J2Printer14();
            printer.setLeftMargin(.5);
            printer.setRightMargin(.5);
            printer.setTopMargin(.5);
            printer.setBottomMargin(.5);
        }
        J2TextPrinter textPrinter = new J2TextPrinter(pane);
        textPrinter.setCloningUsed(false); // serialization can be an untrusted applet security violation
        printer.setPageable(textPrinter);
        printer.setSeparatePrintThread(false);
        printer.setCrossPlatformDialogs(crossplatform.isSelected());
    }

    void print() { prep(); printer.print(); }
    void preview() { prep(); printer.showPrintPreviewDialog(new JFrame()); }
    void setup() { prep(); printer.showPageSetupDialog(); }

}
