content: package aliview.settings;
  
  import java.awt.GridLayout;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  
  import javax.swing.JButton;
  import javax.swing.JFrame;
  import javax.swing.JLabel;
  import javax.swing.JPanel;
  import javax.swing.JTextField;
  import javax.swing.border.EmptyBorder;
  
  import aliview.HelpUtils;
  
  import java.awt.GridBagLayout;
  import java.awt.GridBagConstraints;
  import java.awt.Insets;
  import java.awt.Dimension;
  
  public class PrimerSettingsPanel extends JPanel{
  	private JTextField textMinPrimLen;
  	private JTextField textMaxPrimLen;
  	private JTextField textDimerReportThreashold;
  	private JFrame parentFrame;
  	private JTextField textMinPrimerTM;
  	private JTextField textMaxPrimerTM;
  
  	public PrimerSettingsPanel(JFrame parFrame) {
  		this.parentFrame = parFrame;
  		this.setBorder(new EmptyBorder(10, 10, 10, 10));
  		GridBagLayout gridBagLayout = new GridBagLayout();
  		gridBagLayout.columnWidths = new int[]{213, 213, 100, 0};
  		gridBagLayout.rowHeights = new int[]{32, 32, 32, 32, 32, 0, 32, 0};
  		gridBagLayout.columnWeights = new double[]{0.0, 1.0, 0.0, Double.MIN_VALUE};
  		gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, Double.MIN_VALUE};
  		setLayout(gridBagLayout);
  
  		JLabel lblMinPrimerLength = new JLabel("Min primer Length (" + 
  				Settings.getMinPrimerLength().getMinIntVal() + "-" + Settings.getMinPrimerLength().getMaxIntVal() + ")");
  		GridBagConstraints gbc_lblMinPrimerLength = new GridBagConstraints();
  		gbc_lblMinPrimerLength.fill = GridBagConstraints.BOTH;
  		gbc_lblMinPrimerLength.insets = new Insets(0, 0, 5, 5);
  		gbc_lblMinPrimerLength.gridx = 0;
  		gbc_lblMinPrimerLength.gridy = 0;
  		add(lblMinPrimerLength, gbc_lblMinPrimerLength);
  
  		textMinPrimLen = new JTextField();
  		textMinPrimLen.setText("" + Settings.getMinPrimerLength().getIntValue());
  		GridBagConstraints gbc_textMinPrimLen = new GridBagConstraints();
  		gbc_textMinPrimLen.gridwidth = 2;
  		gbc_textMinPrimLen.fill = GridBagConstraints.BOTH;
  		gbc_textMinPrimLen.insets = new Insets(0, 0, 5, 0);
  		gbc_textMinPrimLen.gridx = 1;
  		gbc_textMinPrimLen.gridy = 0;
  		add(textMinPrimLen, gbc_textMinPrimLen);
  
  
  		JLabel lblMaxPrimerLength = new JLabel("Max primer Length (" + 
  				Settings.getMaxPrimerLength().getMinIntVal() + "-" + Settings.getMaxPrimerLength().getMaxIntVal() + ")");
  		GridBagConstraints gbc_lblMaxPrimerLength = new GridBagConstraints();
  		gbc_lblMaxPrimerLength.fill = GridBagConstraints.BOTH;
  		gbc_lblMaxPrimerLength.insets = new Insets(0, 0, 5, 5);
  		gbc_lblMaxPrimerLength.gridx = 0;
  		gbc_lblMaxPrimerLength.gridy = 1;
  		add(lblMaxPrimerLength, gbc_lblMaxPrimerLength);
  
  		textMaxPrimLen = new JTextField();
  		textMaxPrimLen.setText("" + Settings.getMaxPrimerLength().getIntValue());
  		GridBagConstraints gbc_textMaxPrimLen = new GridBagConstraints();
  		gbc_textMaxPrimLen.gridwidth = 2;
  		gbc_textMaxPrimLen.fill = GridBagConstraints.BOTH;
  		gbc_textMaxPrimLen.insets = new Insets(0, 0, 5, 0);
  		gbc_textMaxPrimLen.gridx = 1;
  		gbc_textMaxPrimLen.gridy = 1;
  		add(textMaxPrimLen, gbc_textMaxPrimLen);
  
  
  		JLabel lblDimerReportThreashold = new JLabel("DimerReportThreashold (" + 
  				Settings.getDimerReportThreashold().getMinIntVal() + "-" + Settings.getDimerReportThreashold().getMaxIntVal() + ")");
  		GridBagConstraints gbc_lblDimerReportThreashold = new GridBagConstraints();
  		gbc_lblDimerReportThreashold.fill = GridBagConstraints.BOTH;
  		gbc_lblDimerReportThreashold.insets = new Insets(0, 0, 5, 5);
  		gbc_lblDimerReportThreashold.gridx = 0;
  		gbc_lblDimerReportThreashold.gridy = 2;
  		add(lblDimerReportThreashold, gbc_lblDimerReportThreashold);
  
  		textDimerReportThreashold = new JTextField();
  		textDimerReportThreashold.setText("" + Settings.getDimerReportThreashold().getIntValue());
  		GridBagConstraints gbc_textDimerReportThreashold = new GridBagConstraints();
  		gbc_textDimerReportThreashold.gridwidth = 2;
  		gbc_textDimerReportThreashold.fill = GridBagConstraints.BOTH;
  		gbc_textDimerReportThreashold.insets = new Insets(0, 0, 5, 0);
  		gbc_textDimerReportThreashold.gridx = 1;
  		gbc_textDimerReportThreashold.gridy = 2;
  		add(textDimerReportThreashold, gbc_textDimerReportThreashold);
  
  
  		JLabel lblMinTM = new JLabel("Min TM (" + 
  				Settings.getPrimerMinTM().getMinIntVal() + "-" + Settings.getPrimerMinTM().getMaxIntVal() + ")");
  		GridBagConstraints gbc_lblMinTM = new GridBagConstraints();
  		gbc_lblMinTM.fill = GridBagConstraints.BOTH;
  		gbc_lblMinTM.insets = new Insets(0, 0, 5, 5);
  		gbc_lblMinTM.gridx = 0;
  		gbc_lblMinTM.gridy = 3;
  		add(lblMinTM, gbc_lblMinTM);
  
  		textMinPrimerTM = new JTextField();
  		textMinPrimerTM.setText("" + Settings.getPrimerMinTM().getIntValue());
  		GridBagConstraints gbc_textMinPrimerTM = new GridBagConstraints();
  		gbc_textMinPrimerTM.gridwidth = 2;
  		gbc_textMinPrimerTM.fill = GridBagConstraints.BOTH;
  		gbc_textMinPrimerTM.insets = new Insets(0, 0, 5, 0);
  		gbc_textMinPrimerTM.gridx = 1;
  		gbc_textMinPrimerTM.gridy = 3;
  		add(textMinPrimerTM, gbc_textMinPrimerTM);
  
  
  		JLabel lblMaxTM = new JLabel("Max TM (" + 
  				Settings.getPrimerMaxTM().getMinIntVal() + "-" + Settings.getPrimerMaxTM().getMaxIntVal() + ")");
  		GridBagConstraints gbc_lblMaxTM = new GridBagConstraints();
  		gbc_lblMaxTM.fill = GridBagConstraints.BOTH;
  		gbc_lblMaxTM.insets = new Insets(0, 0, 5, 5);
  		gbc_lblMaxTM.gridx = 0;
  		gbc_lblMaxTM.gridy = 4;
  		add(lblMaxTM, gbc_lblMaxTM);
  
  		textMaxPrimerTM = new JTextField();
  		textMaxPrimerTM.setText("" + Settings.getPrimerMaxTM().getIntValue());
  		GridBagConstraints gbc_textMaxPrimerTM = new GridBagConstraints();
  		gbc_textMaxPrimerTM.gridwidth = 2;
  		gbc_textMaxPrimerTM.fill = GridBagConstraints.BOTH;
  		gbc_textMaxPrimerTM.insets = new Insets(0, 0, 5, 0);
  		gbc_textMaxPrimerTM.gridx = 1;
  		gbc_textMaxPrimerTM.gridy = 4;
  		add(textMaxPrimerTM, gbc_textMaxPrimerTM);
  
  
  		JButton btnOk = new JButton("OK");
  		btnOk.setPreferredSize(new Dimension(100, 30));
  		btnOk.addActionListener(new ActionListener() {
  			public void actionPerformed(ActionEvent e) {
  				saveSettings();
  				parentFrame.dispose();
  			}
  		});
  
  		JButton btnHelp = new JButton("Help");
  		btnHelp.setPreferredSize(new Dimension(100,30));
  		btnHelp.addActionListener(new ActionListener() {
  			public void actionPerformed(ActionEvent arg0) {
  				HelpUtils.display(HelpUtils.Find_Primer_settings, parentFrame);
  			}
  		});
  		GridBagConstraints gbc_btnHelp = new GridBagConstraints();
  		gbc_btnHelp.anchor = GridBagConstraints.WEST;
  		gbc_btnHelp.insets = new Insets(0, 0, 0, 5);
  		gbc_btnHelp.gridx = 0;
  		gbc_btnHelp.gridy = 6;
  		add(btnHelp, gbc_btnHelp);
  
  		GridBagConstraints gbc_btnOk = new GridBagConstraints();
  		gbc_btnOk.anchor = GridBagConstraints.WEST;
  		gbc_btnOk.gridx = 2;
  		gbc_btnOk.gridy = 6;
  		add(btnOk, gbc_btnOk);
  
  		JButton btnCancel = new JButton("Cancel");
  		btnCancel.setPreferredSize(new Dimension(100, 30));
  		btnCancel.addActionListener(new ActionListener() {
  			public void actionPerformed(ActionEvent e) {
  				parentFrame.dispose();
  			}
  		});
  		GridBagConstraints gbc_btnCancel = new GridBagConstraints();
  		gbc_btnCancel.insets = new Insets(0, 0, 0, 5);
  		gbc_btnCancel.anchor = GridBagConstraints.EAST;
  		gbc_btnCancel.gridx = 1;
  		gbc_btnCancel.gridy = 6;
  		add(btnCancel, gbc_btnCancel);
  
  
  
  
  
  
  
  
  		/*
  
  		add(new JLabel(""));
  		add(new JLabel(""));
  		add(new JLabel(""));
  		add(new JLabel(""));
  		 */	
  
  		/*
  		Pattern regex = Pattern.compile("10-20");
  	    RegexInputVerifier verifier = new RegexInputVerifier(regex, RegexInputVerifier.UseToolTip.FALSE, "20");
  
  	    textMinPrimLen.setToolTipText("Value has to be between...");
  		textMinPrimLen.setInputVerifier(verifier);
  		 */
  	}
  
  
  	public void saveSettings(){
  		try {
  			Settings.getMinPrimerLength().putIntValue(Integer.parseInt(textMinPrimLen.getText()));
  		} catch (NumberFormatException e) {
  			// TODO Auto-generated catch block
  			e.printStackTrace();
  		}
  
  		try {
  			Settings.getMaxPrimerLength().putIntValue(Integer.parseInt(textMaxPrimLen.getText()));
  		} catch (NumberFormatException e) {
  			// TODO Auto-generated catch block
  			e.printStackTrace();
  		}
  
  		try {
  			Settings.getDimerReportThreashold().putIntValue(Integer.parseInt(textDimerReportThreashold.getText()));
  		} catch (NumberFormatException e) {
  			// TODO Auto-generated catch block
  			e.printStackTrace();
  		}	
  
  		try {
  			Settings.getPrimerMinTM().putIntValue(Integer.parseInt(textMinPrimerTM.getText()));
  		} catch (NumberFormatException e) {
  			// TODO Auto-generated catch block
  			e.printStackTrace();
  		}
  
  		try {
  			Settings.getPrimerMaxTM().putIntValue(Integer.parseInt(textMaxPrimerTM.getText()));
  		} catch (NumberFormatException e) {
  			// TODO Auto-generated catch block
  			e.printStackTrace();
  		}
  	}
  }
  