/*  J2PrinterWorks
    (C) Copyright 2009
    Wildcrest Associates
    http://www.wildcrest.com
This source code may be freely used, modified, incorporated, and
distributed without restriction as part of any software that uses
J2TextPrinter by Wildcrest Associates.
*/
import java.awt.*;
import javax.swing.*;
import com.wildcrest.j2printerworks.*;

public class J2PrinterSettingsDialog extends javax.swing.JDialog
{
	public J2PrinterSettingsDialog(Frame parent, J2Printer printer)
	{
           super(parent);
           this.printer = printer;

           // This code is automatically generated by Visual Cafe when you add
           // components to the visual environment. It instantiates and initializes
           // the components. To modify the code, only use code syntax that matches
           // what Visual Cafe can generate, or Visual Cafe may be unable to back
           // parse your Java file into its visual environment.
           //{{INIT_CONTROLS
           setTitle("Settings");
           setResizable(false);
           setModal(true);
           getContentPane().setLayout(null);
           setSize(619, 225);
           setVisible(false);
           JPanelAll.setLayout(null);
           getContentPane().add(JPanelAll);
           JPanelAll.setBackground(new java.awt.Color(223, 223, 223));
           JPanelAll.setBounds(0, 0, 620, 300);
           JPanelHeaders.setOpaque(false);
           JPanelHeaders.setLayout(new GridLayout(1, 3, 0, 0));
           JPanelAll.add(JPanelHeaders);
           JPanelHeaders.setBounds(6, 6, 610, 40);
           JPanelLeftHeader.setAlignmentY(0.473684F);
           JPanelLeftHeader.setLayout(new BorderLayout(0, 0));
           JPanelHeaders.add(JPanelLeftHeader);
           JPanelLeftHeader.setBackground(new java.awt.Color(223, 223, 223));
           JLabelLeftHeader.setText("Left header");
           JPanelLeftHeader.add(BorderLayout.NORTH, JLabelLeftHeader);
           JLabelLeftHeader.setForeground(java.awt.Color.black);
           JLabelLeftHeader.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelLeftHeader.add(BorderLayout.SOUTH, JTextFieldLeftHeader);
           JTextFieldLeftHeader.setFont(new Font("Dialog", Font.PLAIN, 11));
           JPanelCenterHeader.setAlignmentY(0.473684F);
           JPanelCenterHeader.setLayout(new BorderLayout(0, 0));
           JPanelHeaders.add(JPanelCenterHeader);
           JPanelCenterHeader.setBackground(new java.awt.Color(223, 223, 223));
           JLabelCenterHeader.setText("Center header");
           JPanelCenterHeader.add(BorderLayout.NORTH, JLabelCenterHeader);
           JLabelCenterHeader.setForeground(java.awt.Color.black);
           JLabelCenterHeader.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelCenterHeader.add(BorderLayout.SOUTH, JTextFieldCenterHeader);
           JTextFieldCenterHeader.setFont(new Font("Dialog", Font.PLAIN, 11));
           JPanelRightHeader.setAlignmentY(0.473684F);
           JPanelRightHeader.setLayout(new BorderLayout(0, 0));
           JPanelHeaders.add(JPanelRightHeader);
           JPanelRightHeader.setBackground(new java.awt.Color(223, 223, 223));
           JLabelRightHeader.setText("Right header");
           JPanelRightHeader.add(BorderLayout.NORTH, JLabelRightHeader);
           JLabelRightHeader.setForeground(java.awt.Color.black);
           JLabelRightHeader.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelRightHeader.add(BorderLayout.SOUTH, JTextFieldRightHeader);
           JTextFieldRightHeader.setFont(new Font("Dialog", Font.PLAIN, 11));
           JPanelFooters.setOpaque(false);
           JPanelFooters.setLayout(new GridLayout(1, 3, 0, 0));
           JPanelAll.add(JPanelFooters);
           JPanelFooters.setBounds(6, 50, 610, 40);
           JPanelLeftFooter.setAlignmentY(0.473684F);
           JPanelLeftFooter.setLayout(new BorderLayout(0, 0));
           JPanelFooters.add(JPanelLeftFooter);
           JPanelLeftFooter.setBackground(new java.awt.Color(223, 223, 223));
           JLabelLeftFooter.setText("Left footer");
           JPanelLeftFooter.add(BorderLayout.NORTH, JLabelLeftFooter);
           JLabelLeftFooter.setForeground(java.awt.Color.black);
           JLabelLeftFooter.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelLeftFooter.add(BorderLayout.SOUTH, JTextFieldLeftFooter);
           JTextFieldLeftFooter.setFont(new Font("Dialog", Font.PLAIN, 11));
           JPanelCenterFooter.setAlignmentY(0.473684F);
           JPanelCenterFooter.setLayout(new BorderLayout(0, 0));
           JPanelFooters.add(JPanelCenterFooter);
           JPanelCenterFooter.setBackground(new java.awt.Color(223, 223, 223));
           JLabelCenterFooter.setText("Center footer");
           JPanelCenterFooter.add(BorderLayout.NORTH, JLabelCenterFooter);
           JLabelCenterFooter.setForeground(java.awt.Color.black);
           JLabelCenterFooter.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelCenterFooter.add(BorderLayout.SOUTH, JTextFieldCenterFooter);
           JTextFieldCenterFooter.setFont(new Font("Dialog", Font.PLAIN, 11));
           JPanelRightFooter.setAlignmentY(0.473684F);
           JPanelRightFooter.setLayout(new BorderLayout(0, 0));
           JPanelFooters.add(JPanelRightFooter);
           JPanelRightFooter.setBackground(new java.awt.Color(223, 223, 223));
           JLabelRightFooter.setText("Right footer");
           JPanelRightFooter.add(BorderLayout.NORTH, JLabelRightFooter);
           JLabelRightFooter.setForeground(java.awt.Color.black);
           JLabelRightFooter.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelRightFooter.add(BorderLayout.SOUTH, JTextFieldRightFooter);
           JTextFieldRightFooter.setFont(new Font("Dialog", Font.PLAIN, 11));
           JPanelHeaderFooterDetails.setOpaque(false);
           JPanelHeaderFooterDetails.setLayout(new GridLayout(1, 4, 0, 0));
           JPanelAll.add(JPanelHeaderFooterDetails);
           JPanelHeaderFooterDetails.setBounds(6, 95, 610, 40);
           JPanelGapBelowHeader.setAlignmentY(0.473684F);
           JPanelGapBelowHeader.setLayout(new BorderLayout(0, 0));
           JPanelHeaderFooterDetails.add(JPanelGapBelowHeader);
           JPanelGapBelowHeader.setBackground(new java.awt.Color(223, 223, 223));
           JLabelGapBelowHeader.setText("Gap below header");
           JPanelGapBelowHeader.add(BorderLayout.NORTH, JLabelGapBelowHeader);
           JLabelGapBelowHeader.setForeground(java.awt.Color.black);
           JLabelGapBelowHeader.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelGapBelowHeader.add(BorderLayout.SOUTH, JTextFieldGapBelowHeader);
           JTextFieldGapBelowHeader.setFont(new Font("Dialog", Font.PLAIN, 11));
           JPanelGapAboveFooter.setAlignmentY(0.473684F);
           JPanelGapAboveFooter.setLayout(new BorderLayout(0, 0));
           JPanelHeaderFooterDetails.add(JPanelGapAboveFooter);
           JPanelGapAboveFooter.setBackground(new java.awt.Color(223, 223, 223));
           JLabelGapAboveFooter.setText("Gap above footer");
           JPanelGapAboveFooter.add(BorderLayout.NORTH, JLabelGapAboveFooter);
           JLabelGapAboveFooter.setForeground(java.awt.Color.black);
           JLabelGapAboveFooter.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelGapAboveFooter.add(BorderLayout.SOUTH, JTextFieldGapAboveFooter);
           JTextFieldGapAboveFooter.setFont(new Font("Dialog", Font.PLAIN, 11));
           JPanelHeaderAdornments.setLayout(new GridLayout(2, 1, 0, 0));
            JPanelHeaderFooterDetails.add(JPanelHeaderAdornments);
           JCheckBoxAroundHeader.setText("Box around header");
           JCheckBoxAroundHeader.setActionCommand("Box around header");
           JPanelHeaderAdornments.add(JCheckBoxAroundHeader);
           JCheckBoxAroundHeader.setBackground(new java.awt.Color(223, 223, 223));
           JCheckBoxAroundHeader.setForeground(java.awt.Color.black);
           JCheckBoxAroundHeader.setFont(new Font("Dialog", Font.BOLD, 11));
           JCheckBoxLineBelowHeader.setText("Line below header");
           JCheckBoxLineBelowHeader.setActionCommand("Line below header");
           JPanelHeaderAdornments.add(JCheckBoxLineBelowHeader);
           JCheckBoxLineBelowHeader.setBackground(new java.awt.Color(223, 223, 223));
           JCheckBoxLineBelowHeader.setForeground(java.awt.Color.black);
           JCheckBoxLineBelowHeader.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelFooterAdornments.setLayout(new GridLayout(2, 1, 0, 0));
           JPanelHeaderFooterDetails.add(JPanelFooterAdornments);
           JCheckBoxAroundFooter.setText("Box around footer");
           JCheckBoxAroundFooter.setActionCommand("Box around footer");
           JPanelFooterAdornments.add(JCheckBoxAroundFooter);
           JCheckBoxAroundFooter.setBackground(new java.awt.Color(223, 223, 223));
           JCheckBoxAroundFooter.setForeground(java.awt.Color.black);
           JCheckBoxAroundFooter.setFont(new Font("Dialog", Font.BOLD, 11));
           JCheckBoxLineAboveFooter.setText("Line above footer");
           JCheckBoxLineAboveFooter.setActionCommand("Line above footer");
           JPanelFooterAdornments.add(JCheckBoxLineAboveFooter);
           JCheckBoxLineAboveFooter.setBackground(new java.awt.Color(223, 223, 223));
           JCheckBoxLineAboveFooter.setForeground(java.awt.Color.black);
           JCheckBoxLineAboveFooter.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelMisc2.setOpaque(false);
           JPanelMisc2.setLayout(new GridLayout(1, 3, 0, 0));
           JPanelAll.add(JPanelMisc2);
           JPanelMisc2.setBounds(6, 140, 610, 40);
           JPanelPrintJobName.setAlignmentY(0.473684F);
           JPanelPrintJobName.setLayout(new BorderLayout(0, 0));
           JPanelMisc2.add(JPanelPrintJobName);
           JPanelPrintJobName.setBackground(new java.awt.Color(223, 223, 223));
           JLabelPrintJobName.setText("Print job name");
           JPanelPrintJobName.add(BorderLayout.NORTH, JLabelPrintJobName);
           JLabelPrintJobName.setBackground(new java.awt.Color(223, 223, 223));
           JLabelPrintJobName.setForeground(java.awt.Color.black);
           JLabelPrintJobName.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelPrintJobName.add(BorderLayout.SOUTH, JTextFieldPrintJobName);
           JTextFieldPrintJobName.setFont(new Font("Dialog", Font.PLAIN, 11));
           JPanelHeaderFooterFont.setAlignmentY(0.473684F);
           JPanelHeaderFooterFont.setLayout(new BorderLayout(0, 0));
           JPanelMisc2.add(JPanelHeaderFooterFont);
           JPanelHeaderFooterFont.setBackground(new java.awt.Color(223, 223, 223));
           JLabelHeaderFooterFont.setText("Header/footer font");
           JPanelHeaderFooterFont.add(BorderLayout.NORTH, JLabelHeaderFooterFont);
           JLabelHeaderFooterFont.setForeground(java.awt.Color.black);
           JLabelHeaderFooterFont.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelHeaderFooterFont.add(BorderLayout.SOUTH, JTextFieldHeaderFooterFont);
           JTextFieldHeaderFooterFont.setFont(new Font("Dialog", Font.PLAIN, 11));
           JPanelScale.setAlignmentY(0.473684F);
           JPanelScale.setLayout(new BorderLayout(0, 0));
           JPanelMisc2.add(JPanelScale);
           JPanelScale.setBackground(new java.awt.Color(223, 223, 223));
           JLabelScale.setText("Scale");
           JPanelScale.add(BorderLayout.NORTH, JLabelScale);
           JLabelScale.setBackground(new java.awt.Color(223, 223, 223));
           JLabelScale.setForeground(java.awt.Color.black);
           JLabelScale.setFont(new Font("Dialog", Font.BOLD, 11));
           JTextFieldScale.setColumns(4);
           JPanelScale.add(BorderLayout.SOUTH, JTextFieldScale);
           JTextFieldScale.setFont(new Font("Dialog", Font.PLAIN, 11));
           JPanelPrintNup.setAlignmentY(0.473684F);
           JPanelPrintNup.setLayout(new BorderLayout(0, 0));
           JPanelMisc2.add(JPanelPrintNup);
           JPanelPrintNup.setBackground(new java.awt.Color(223, 223, 223));
           JLabelPrintNup.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
           JLabelPrintNup.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
           JLabelPrintNup.setText("N-up printing");
           JLabelPrintNup.setAlignmentY(0.0F);
           JPanelPrintNup.add(BorderLayout.NORTH, JLabelPrintNup);
           JLabelPrintNup.setBackground(new java.awt.Color(223, 223, 223));
           JLabelPrintNup.setForeground(java.awt.Color.black);
           JLabelPrintNup.setFont(new Font("Dialog", Font.BOLD, 11));
           JPanelPrintNup.add(BorderLayout.CENTER, JComboBoxNup);
           JComboBoxNup.setFont(new Font("Dialog", Font.PLAIN, 11));
           JPanelMisc1.setOpaque(false);
           JPanelMisc1.setLayout(null);
           JPanelAll.add(JPanelMisc1);
           JPanelMisc1.setBackground(new java.awt.Color(223, 223, 223));
           JPanelMisc1.setBounds(6, 185, 610, 40);
           JButtonOK.setText("OK");
           JButtonOK.setActionCommand("OK");
           JPanelMisc1.add(JButtonOK);
           JButtonOK.setBackground(java.awt.Color.lightGray);
           JButtonOK.setBounds(380, 8, 100, 23);
           JButtonCancel.setText("Cancel");
           JButtonCancel.setActionCommand("Cancel");
           JPanelMisc1.add(JButtonCancel);
           JButtonCancel.setBackground(java.awt.Color.lightGray);
           JButtonCancel.setBounds(500, 8, 100, 23);
           JPanelOKCancel.setOpaque(false);
           JPanelOKCancel.setLayout(null);
           JPanelAll.add(JPanelOKCancel);
           JPanelOKCancel.setBackground(new java.awt.Color(223, 223, 223));
           JPanelOKCancel.setForeground(java.awt.Color.black);
           JPanelOKCancel.setBounds(108, 190, 372, 40);
           //}}

           //{{REGISTER_LISTENERS
           SymAction lSymAction = new SymAction();
           JButtonCancel.addActionListener(lSymAction);
           JButtonOK.addActionListener(lSymAction);
           //}}

           JPanelAll.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
           JComboBoxNup.addItem("1");
           JComboBoxNup.addItem("2");
           JComboBoxNup.addItem("4");
           JComboBoxNup.addItem("6");
           JComboBoxNup.addItem("9");
           JComboBoxNup.addItem("16");
	}


	private void updatePageSetupDialog() {
	    if (this.printer!=null) {
	        JTextFieldLeftHeader.setText(printer.getLeftHeader().toString());
	        JTextFieldCenterHeader.setText(printer.getCenterHeader().toString());
	        JTextFieldRightHeader.setText(printer.getRightHeader().toString());
	        JTextFieldLeftFooter.setText(printer.getLeftFooter().toString());
	        JTextFieldCenterFooter.setText(printer.getCenterFooter().toString());
	        JTextFieldRightFooter.setText(printer.getRightFooter().toString());
	        JCheckBoxAroundHeader.setSelected(printer.getHeaderStyle()==J2Printer.BOX);
	        JCheckBoxLineBelowHeader.setSelected(printer.getHeaderStyle()==J2Printer.LINE);
	        JTextFieldGapBelowHeader.setText(Double.toString(printer.getGapBelowHeader()));
	        JTextFieldGapAboveFooter.setText(Double.toString(printer.getGapAboveFooter()));
	        JCheckBoxAroundFooter.setSelected(printer.getFooterStyle()==J2Printer.BOX);
	        JCheckBoxLineAboveFooter.setSelected(printer.getFooterStyle()==J2Printer.LINE);
	        JTextFieldPrintJobName.setText(printer.getPrintJobName());
	        JTextFieldHeaderFooterFont.setText(font2String(printer.getFooterFont()));
	        JTextFieldScale.setText(Double.toString(printer.getScale()));
	        if (printer.getNup() == 1) JComboBoxNup.setSelectedIndex(0);
	        if (printer.getNup() == 2) JComboBoxNup.setSelectedIndex(1);
	        if (printer.getNup() == 4) JComboBoxNup.setSelectedIndex(2);
	        if (printer.getNup() == 6) JComboBoxNup.setSelectedIndex(3);
	        if (printer.getNup() == 9) JComboBoxNup.setSelectedIndex(4);
	        if (printer.getNup() == 16) JComboBoxNup.setSelectedIndex(5);
	    }
	}

	private String font2String(Font f) {
	    int style = f.getStyle();
	    String styleName = "PLAIN";
		if (style==Font.BOLD) styleName = "BOLD";
		if (style==Font.ITALIC) styleName = "ITALIC";
		return f.getFamily() + "," + styleName + "," + f.getSize();
	}


	public void setVisible(boolean b)
	{
	    if (b) {
	        this.setLocation(75,75);
            updatePageSetupDialog();
        }
		super.setVisible(b);
	}


	public void addNotify()
	{
		// Record the size of the window prior to calling parents addNotify.
		Dimension size = getSize();

		super.addNotify();

		if (frameSizeAdjusted)
			return;
		frameSizeAdjusted = true;

		// Adjust size of frame according to the insets
		Insets insets = getInsets();
		setSize(insets.left + insets.right + size.width, insets.top + insets.bottom + size.height);
	}

	// Used by addNotify
	boolean frameSizeAdjusted = false;

	//{{DECLARE_CONTROLS
	javax.swing.JPanel JPanelAll = new javax.swing.JPanel();
	javax.swing.JPanel JPanelHeaders = new javax.swing.JPanel();
	javax.swing.JPanel JPanelLeftHeader = new javax.swing.JPanel();
	javax.swing.JLabel JLabelLeftHeader = new javax.swing.JLabel();
	javax.swing.JTextField JTextFieldLeftHeader = new javax.swing.JTextField();
	javax.swing.JPanel JPanelCenterHeader = new javax.swing.JPanel();
	javax.swing.JLabel JLabelCenterHeader = new javax.swing.JLabel();
	javax.swing.JTextField JTextFieldCenterHeader = new javax.swing.JTextField();
	javax.swing.JPanel JPanelRightHeader = new javax.swing.JPanel();
	javax.swing.JLabel JLabelRightHeader = new javax.swing.JLabel();
	javax.swing.JTextField JTextFieldRightHeader = new javax.swing.JTextField();
	javax.swing.JPanel JPanelFooters = new javax.swing.JPanel();
	javax.swing.JPanel JPanelLeftFooter = new javax.swing.JPanel();
	javax.swing.JLabel JLabelLeftFooter = new javax.swing.JLabel();
	javax.swing.JTextField JTextFieldLeftFooter = new javax.swing.JTextField();
	javax.swing.JPanel JPanelCenterFooter = new javax.swing.JPanel();
	javax.swing.JLabel JLabelCenterFooter = new javax.swing.JLabel();
	javax.swing.JTextField JTextFieldCenterFooter = new javax.swing.JTextField();
	javax.swing.JPanel JPanelRightFooter = new javax.swing.JPanel();
	javax.swing.JLabel JLabelRightFooter = new javax.swing.JLabel();
	javax.swing.JTextField JTextFieldRightFooter = new javax.swing.JTextField();
	javax.swing.JPanel JPanelHeaderFooterDetails = new javax.swing.JPanel();
	javax.swing.JPanel JPanelGapBelowHeader = new javax.swing.JPanel();
	javax.swing.JLabel JLabelGapBelowHeader = new javax.swing.JLabel();
	javax.swing.JTextField JTextFieldGapBelowHeader = new javax.swing.JTextField();
	javax.swing.JPanel JPanelGapAboveFooter = new javax.swing.JPanel();
	javax.swing.JLabel JLabelGapAboveFooter = new javax.swing.JLabel();
	javax.swing.JTextField JTextFieldGapAboveFooter = new javax.swing.JTextField();
	javax.swing.JPanel JPanelHeaderAdornments = new javax.swing.JPanel();
	javax.swing.JCheckBox JCheckBoxAroundHeader = new javax.swing.JCheckBox();
	javax.swing.JCheckBox JCheckBoxLineBelowHeader = new javax.swing.JCheckBox();
	javax.swing.JPanel JPanelFooterAdornments = new javax.swing.JPanel();
	javax.swing.JCheckBox JCheckBoxAroundFooter = new javax.swing.JCheckBox();
	javax.swing.JCheckBox JCheckBoxLineAboveFooter = new javax.swing.JCheckBox();
	javax.swing.JPanel JPanelMisc2 = new javax.swing.JPanel();
	javax.swing.JPanel JPanelPrintJobName = new javax.swing.JPanel();
	javax.swing.JLabel JLabelPrintJobName = new javax.swing.JLabel();
	javax.swing.JTextField JTextFieldPrintJobName = new javax.swing.JTextField();
	javax.swing.JPanel JPanelHeaderFooterFont = new javax.swing.JPanel();
	javax.swing.JLabel JLabelHeaderFooterFont = new javax.swing.JLabel();
	javax.swing.JTextField JTextFieldHeaderFooterFont = new javax.swing.JTextField();
	javax.swing.JPanel JPanelScale = new javax.swing.JPanel();
	javax.swing.JLabel JLabelScale = new javax.swing.JLabel();
	javax.swing.JTextField JTextFieldScale = new javax.swing.JTextField();
	javax.swing.JPanel JPanelPrintNup = new javax.swing.JPanel();
	javax.swing.JLabel JLabelPrintNup = new javax.swing.JLabel();
	javax.swing.JComboBox JComboBoxNup = new javax.swing.JComboBox();
	javax.swing.JPanel JPanelMisc1 = new javax.swing.JPanel();
	javax.swing.JButton JButtonOK = new javax.swing.JButton();
	javax.swing.JButton JButtonCancel = new javax.swing.JButton();
	javax.swing.JPanel JPanelOKCancel = new javax.swing.JPanel();
	//}}

    J2Printer printer;
    int rememberOrientationAtStart;

	class SymAction implements java.awt.event.ActionListener
	{
		public void actionPerformed(java.awt.event.ActionEvent event)
		{
			Object object = event.getSource();
			if (object == JButtonCancel)
				JButtonCancel_actionPerformed(event);
			else if (object == JButtonOK)
				JButtonOK_actionPerformed(event);
		}
	}

	void JButtonCancel_actionPerformed(java.awt.event.ActionEvent event)
	{
		// to do: code goes here.

		JButtonCancel_actionPerformed_Interaction1(event);
	}

	void JButtonCancel_actionPerformed_Interaction1(java.awt.event.ActionEvent event)
	{
		try {
			// JPageSetupDialog Hide the JPageSetupDialog
			this.setVisible(false);
		} catch (Exception e) {
		}
	}

	void JButtonOK_actionPerformed(java.awt.event.ActionEvent event)
	{
	    updateJ2TablePrinter();
		try {
			// JPageSetupDialog Hide the JPageSetupDialog
			this.setVisible(false);
		} catch (Exception e) {
		}
	}

	private void updateJ2TablePrinter() {
	    if (printer!=null) {
	        printer.setLeftHeader(JTextFieldLeftHeader.getText());
	        printer.setCenterHeader(JTextFieldCenterHeader.getText());
	        printer.setRightHeader(JTextFieldRightHeader.getText());
	        printer.setLeftFooter(JTextFieldLeftFooter.getText());
	        printer.setCenterFooter(JTextFieldCenterFooter.getText());
	        printer.setRightFooter(JTextFieldRightFooter.getText());
	        int headerStyle = J2Printer.NONE;
	        if (JCheckBoxLineBelowHeader.isSelected()) headerStyle = J2Printer.LINE;
	        if (JCheckBoxAroundHeader.isSelected()) headerStyle = J2Printer.BOX;
	        printer.setHeaderStyle(headerStyle);
	        printer.setGapBelowHeader(Double.valueOf(JTextFieldGapBelowHeader.getText()).doubleValue());
	        printer.setGapAboveFooter(Double.valueOf(JTextFieldGapAboveFooter.getText()).doubleValue());
	        int footerStyle = J2Printer.NONE;
	        if (JCheckBoxLineAboveFooter.isSelected()) footerStyle = J2Printer.LINE;
	        if (JCheckBoxAroundFooter.isSelected()) footerStyle = J2Printer.BOX;
	        printer.setFooterStyle(footerStyle);
	        printer.setPrintJobName(JTextFieldPrintJobName.getText());
                printer.setHeaderFont(string2Font(JTextFieldHeaderFooterFont.getText()));
                printer.setFooterFont(string2Font(JTextFieldHeaderFooterFont.getText()));
	        printer.setScale(Double.valueOf(JTextFieldScale.getText()).doubleValue());
	        printer.setNup(1);
	        if (JComboBoxNup.getSelectedIndex() == 1) printer.setNup(2);
	        if (JComboBoxNup.getSelectedIndex() == 2) printer.setNup(4);
	        if (JComboBoxNup.getSelectedIndex() == 3) printer.setNup(6);
	        if (JComboBoxNup.getSelectedIndex() == 4) printer.setNup(9);
	        if (JComboBoxNup.getSelectedIndex() == 5) printer.setNup(16);
            }
	}


	private Font string2Font(String s) {
		int firstcomma = s.indexOf(",");
		int lastcomma = s.lastIndexOf(",");
		String font = s.substring(0,firstcomma);
		String stylename = s.substring(firstcomma+1,lastcomma);
		int style=Font.PLAIN;
		if (stylename.equals("BOLD")) style=Font.BOLD;
		if (stylename.equals("ITALIC")) style=Font.ITALIC;
		int size = Integer.valueOf(s.substring(lastcomma+1)).intValue();
		return new Font(font,style,size);
	}


}

