/*
 * Created on 24.07.2003
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
package de.skyrix.zsp.gui;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SpinnerNumberModel;
import javax.swing.border.TitledBorder;

import de.skyrix.zsp.conf.ZSPConfig;

/**Configuration panel for spider settings
 * 
 * @author sell
 *
 */
public class CFGPanelSpider extends JPanel {
	private JCheckBox cbEnableSpider = null;
	private JSpinner spInterval = null;

	public CFGPanelSpider() {
		JPanel spiderPanel = new JPanel(new BorderLayout());
		JPanel spiderPanel1 = new JPanel(new GridLayout(0, 2));
		final JCheckBox checkBox = new JCheckBox("Enable spider");
		cbEnableSpider = checkBox;
		checkBox.setSelected(
			"true".equalsIgnoreCase(ZSPConfig.getProperty("enable_spider")));

		spiderPanel.add(checkBox, BorderLayout.NORTH);

		int defInterval = 5;
		try {
			defInterval =
				new Integer(ZSPConfig.getProperty("spider_interval")).intValue();
		}
		catch (Exception e) {
		}

		SpinnerNumberModel model =
			new SpinnerNumberModel(
				new Integer(defInterval),
				new Integer(1),
				new Integer(120),
				new Integer(1));

		final JSpinner spinner = new JSpinner(model);
		((JSpinner.DefaultEditor) spinner.getEditor())
			.getTextField()
			.setHorizontalAlignment(JTextField.LEFT);
		spInterval = spinner;
		spinner.setPreferredSize(new JTextField(15).getPreferredSize());

		final JLabel label = new JLabel("Spider interval (min):");

		spiderPanel1.add(label);
		spiderPanel1.add(spInterval);

		checkBox.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				spInterval.setEnabled(checkBox.isSelected());
				label.setEnabled(checkBox.isSelected());
			}
		});

		spInterval.setEnabled(checkBox.isSelected());
		label.setEnabled(checkBox.isSelected());

		TitledBorder border =
			BorderFactory.createTitledBorder(
				BorderFactory.createEtchedBorder(),
				"Local cache");
		border.setTitleJustification(TitledBorder.DEFAULT_JUSTIFICATION);
		border.setTitlePosition(TitledBorder.CENTER);
		spiderPanel.setBorder(border);

		spiderPanel.add(spiderPanel1, BorderLayout.CENTER);

		setLayout(new BorderLayout());
		add(spiderPanel, BorderLayout.NORTH);
	}

	void save() {
		ZSPConfig.setProperty("enable_spider", "" + cbEnableSpider.isSelected());
		ZSPConfig.setProperty(
			"spider_interval",
			"" + ((Integer) spInterval.getValue()).intValue());
	}
}
