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();
        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(); }

}
