import java.awt.*;
import javax.swing.*;
import com.wildcrest.j2printerworks.*;

class J2FlowPrinterSimplestTest {

    static public void main(String args[]){
        System.out.println("\nJ2FlowPrinter test started...");

        // set up JTextPane
        JTextPane pane = new JTextPane();
        pane.setContentType("text/html");
        pane.setText("<html>Here are two lines of <b>HTML text</b>"
        + "<br>that <i>will</i> be printed</html>");

        // set up JTable
        Object[] columns = {"This", "is", "a", "JTable"};
        Object[][] data = {{"table", "", "", ""}, {"", "data", "", ""},
                          {"", "", "goes", ""}, {"", "", "", "here"}};
        JTable table = new JTable(data, columns);
        JScrollPane scrollPane = new JScrollPane(table);
        scrollPane.setSize(new Dimension(250,83));

        // set up JTree
        JTree tree = new JTree();    // has default content
        for (int i=0; i<tree.getRowCount(); i++) tree.expandRow(i);

        // set up JList
        String[] listdata;
        int num = 6;
        listdata = new String[num];
        for (int i=0; i<num; i++) {
           listdata[i] = "This is JList item number " + (i+1);
        }
        JList list = new JList(listdata);

        // set up JPanel
        JPanel panel = new JPanel();
        panel.add(new JLabel("<html>This text is <i>a JLabel</i>"
        + "<br>displayed inside<font size=5> a JPanel</font></html>"));
        panel.setBackground(Color.white);
        panel.setPreferredSize(new Dimension(200,75));

        // set up J2FlowPrinter
        J2FlowPrinter flowPrinter = new J2FlowPrinter();
        flowPrinter.addFlowable(new J2TextPrinter(pane));
        flowPrinter.addFlowable(new J2TablePrinter(table));
        flowPrinter.addFlowable(new J2TreePrinter(tree));
        flowPrinter.addFlowable(new J2ListPrinter(list));
        flowPrinter.addFlowable(new J2PanelPrinter(panel));
        flowPrinter.addFlowable(new HorizontalLine());


        // set up J2Printer and print
        J2Printer printer = new J2Printer();
        printer.setSeparatePrintThread(false);
        printer.addPageable(flowPrinter);
        printer.setPrintPreviewScale(1.0);
        printer.showPrintPreviewDialog();
        //printer.print();

        System.out.println("\n...J2FlowPrinter test completed");
        System.exit(0);

    }

}
