/* $ID:$
 * Created on 24.07.2003
 *
 */
package de.skyrix.zsp.gui;

import java.awt.BorderLayout;
import java.awt.GridLayout;

import javax.swing.BorderFactory;
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;

/**Panel for proxy configuration.
 * 
 * @author sell
 *
 */
public class CFGPanelProxy extends JPanel {
	private JTextField tfCacheDir = null;
	private JSpinner spProxyPort = null;

	public CFGPanelProxy() {
		JPanel cachePanel = new JPanel(new GridLayout(0, 2));

		cachePanel.add(new JLabel("Cache directory:"));
		cachePanel.add(
			tfCacheDir = new JTextField(ZSPConfig.getProperty("cache_dir"), 15));

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

		JPanel proxyPanel = new JPanel(new BorderLayout());
		JPanel proxyPanel1 = new JPanel(new GridLayout(0, 2));

		int defPort = 23000;
		try {
			defPort = new Integer(ZSPConfig.getProperty("proxy_port")).intValue();
		}
		catch (Exception e) {
		}

		SpinnerNumberModel model =
			new SpinnerNumberModel(
				new Integer(defPort),
				new Integer(1),
				new Integer(65535),
				new Integer(1));

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

		proxyPanel1.add(new JLabel("Proxy port:"));
		proxyPanel1.add(spProxyPort);

		border =
			BorderFactory.createTitledBorder(
				BorderFactory.createEtchedBorder(),
				"Proxy");
		border.setTitleJustification(TitledBorder.DEFAULT_JUSTIFICATION);
		border.setTitlePosition(TitledBorder.CENTER);

		proxyPanel.add(proxyPanel1, BorderLayout.NORTH);
		proxyPanel.setBorder(border);

		setLayout(new BorderLayout());
		add(cachePanel, BorderLayout.NORTH);
		add(proxyPanel, BorderLayout.CENTER);
	}

	void save() {
		ZSPConfig.setProperty("cache_dir", tfCacheDir.getText());
    ZSPConfig.setProperty(
          "proxy_port",
          "" + ((Integer) spProxyPort.getValue()).intValue());
	}
}
