/*  J2PrinterWorks
    (C) Copyright 2007
    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,190);
		setVisible(false);
		JPanelAll.setLayout(null);
		getContentPane().add(JPanelAll);
		JPanelAll.setBackground(new java.awt.Color(223,223,223));
		JPanelAll.setBounds(0,0,620,264);
		JPanelHeaders.setOpaque(false);
		JPanelHeaders.setLayout(new GridLayout(1,3,0,0));
		JPanelAll.add(JPanelHeaders);
		JPanelHeaders.setBounds(6,6,610,34);
		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,42,610,34);
		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,78,610,34);
		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,114,610,34);
		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,150,610,36);
		JButtonOK.setText("OK");
		JButtonOK.setActionCommand("OK");
		JPanelMisc1.add(JButtonOK);
		JButtonOK.setBackground(java.awt.Color.lightGray);
		JButtonOK.setBounds(400,8,73,23);
		JButtonCancel.setText("Cancel");
		JButtonCancel.setActionCommand("Cancel");
		JPanelMisc1.add(JButtonCancel);
		JButtonCancel.setBackground(java.awt.Color.lightGray);
		JButtonCancel.setBounds(500,8,73,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,24);
		//}}

		//{{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);
	}


}
