import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.wildcrest.j2printerworks.*;

class J2Printer14PrinterSelectionTest{
    static J2Printer14 printer;
    static JList list;
    static JCheckBox checkbox;

    static public void main(String args[]){
        JTree tree = new JTree();    // has default content
        for (int i=0; i<tree.getRowCount(); i++) tree.expandRow(i);

        printer = new J2Printer14();
        printer.setSeparatePrintThread(false);
        printer.addPageable(new J2TreePrinter(tree));
        list = new JList(printer.getAllPrinterNames());

        JFrame frame = new JFrame("J2Printer14 test");
        frame.getContentPane().setLayout(new BorderLayout());
        frame.getContentPane().add(new JScrollPane(list), "Center");
        JPanel panel = new JPanel();
        JButton button = new JButton("Print on selected printer");
        panel.add(button);
        checkbox = new JCheckBox("Use print dialog", true);
        panel.add(checkbox);
        frame.getContentPane().add(panel, "South");
        frame.setSize(350,200);
        frame.setVisible(true);

        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) { printOnSelectedPrinter(); }});

        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) { System.exit(0); }});

    }

    static public void printOnSelectedPrinter(){
        String whichPrinter = (String)list.getSelectedValue();
        if (whichPrinter==null) System.out.println("\nNo printer selected!");
        else {
            printer.setPrinter(whichPrinter);
            printer.setPrintDialogUsed(checkbox.isSelected());
            printer.print();
        }
        System.exit(0);
    }

}
