package view.vueAjoutVille;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.SwingConstants;

import language.Francais;
import language.Language;
import view.tool.inputField.JValidTextField;

public class ModifierVille extends AjoutVille
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1702326643253409026L;

	private JPanel 				panelModification;
	
	private GridBagConstraints 	constraint;
	
	private JLabel 		labelModificationVille,
						labelModificationProvince,
						labelModificationPays;	
	
	private JValidTextField		textModificationVille,
							    textModificationProvince,
							    textModificationPays;
	
	private Language lang;
	
	public ModifierVille(Language lang) throws Exception
	{
		super(lang);
		initVariable(lang);
		initComponents();
	}
	
	private int ville_id;
	
	/**
	 * initialise tout les variable
	 */
	private void initVariable(Language lang)
	{
		this.lang = lang;
		ville_id = 0;
		
		constraint = new GridBagConstraints();

		labelModificationVille 	 		= new JLabel(lang.getVilleVille().replaceAll("%", ""));
		labelModificationProvince 		= new JLabel(lang.getVilleProvince().replaceAll("%", ""));
		labelModificationPays        	= new JLabel(lang.getVillePays().replaceAll("%", ""));
		
		textModificationVille    = JValidTextField.JValidTextFieldWithoutText(20);
		textModificationProvince = JValidTextField.JValidTextFieldWithoutText(20);
		textModificationPays 	 = JValidTextField.JValidTextFieldWithoutText(20);
		
		panelModification   = new JPanel(new GridBagLayout());
		
		textModificationVille.setEnabled(false);
		textModificationProvince.setEnabled(false);
		textModificationPays.setEnabled(false);
	}
	
	/**
	 * initialise tout les components
	 */
	private void initComponents()
	{
		//============Modification=============================
		constraint.anchor = GridBagConstraints.NORTHWEST;
		constraint.fill = GridBagConstraints.HORIZONTAL;
		constraint.gridheight = 1;
		constraint.gridwidth = 5;
		constraint.weightx = 1;
		constraint.weighty = 0;
		constraint.gridx = 0;
		constraint.gridy = 1;
		constraint.insets = new Insets(0, 5, 10, 5);
		add(new JSeparator(SwingConstants.HORIZONTAL), constraint);
		
		constraint.anchor = GridBagConstraints.NORTHWEST;
		constraint.fill = GridBagConstraints.HORIZONTAL;
		constraint.weightx = 1;
		constraint.weighty = 1;
		constraint.gridheight = 1;
		constraint.gridwidth = 1;
		constraint.gridx = 0;
		constraint.gridy = 0;
		constraint.insets = new Insets(0, 5, 10, 5);
		panelModification.add(labelModificationVille, constraint);
		
		constraint.fill = GridBagConstraints.NONE;
		constraint.weightx = 1;
		constraint.weighty = 1;
		constraint.gridx = 1;
		constraint.gridy = 0;
		constraint.insets = new Insets(0, 5, 10, 5);
		panelModification.add(textModificationVille, constraint);
		
		constraint.fill = GridBagConstraints.HORIZONTAL;
		constraint.weightx = 1;
		constraint.weighty = 1;
		constraint.gridx = 0;
		constraint.gridy = 1;
		constraint.insets = new Insets(0, 5, 10, 5);
		panelModification.add(labelModificationProvince, constraint);
		
		constraint.fill = GridBagConstraints.NONE;
		constraint.weightx = 1;
		constraint.weighty = 1;
		constraint.gridx = 1;
		constraint.gridy = 1;
		constraint.insets = new Insets(0, 5, 10, 5);
		panelModification.add(textModificationProvince, constraint);
		
		constraint.fill = GridBagConstraints.HORIZONTAL;
		constraint.weightx = 1;
		constraint.weighty = 1;
		constraint.gridx = 0;
		constraint.gridy = 2;
		constraint.insets = new Insets(0, 5, 10, 5);
		panelModification.add(labelModificationPays, constraint);
		
		constraint.fill = GridBagConstraints.NONE;
		constraint.weightx = 1;
		constraint.weighty = 1;
		constraint.gridx = 1;
		constraint.gridy = 2;
		constraint.insets = new Insets(0, 5, 10, 5);
		panelModification.add(textModificationPays, constraint);

		//===========Ajout au panel principal==================
		
		constraint.anchor = GridBagConstraints.NORTHWEST;
		constraint.fill = GridBagConstraints.NONE;
		constraint.weightx = 1;
		constraint.weighty = 1;
		constraint.gridx = 0;
		constraint.gridy = 2;
		constraint.insets = new Insets(0, 5, 10, 5);
		add(panelModification, constraint);
	}
	
	public void addDataToFields(String Ville, String Province, String Pays)
	{
		super.addDataToFields(Ville,Province,Pays);
		
		textModificationVille.setText(Ville);
		textModificationProvince.setText(Province);
		textModificationPays.setText(Pays);
	}
	
	public void clearInfo()
	{
		super.clearInfo();
		
		textModificationVille.setText("");
		textModificationProvince.setText("");
		textModificationPays.setText("");
		ville_id = 0;
	}

	public int getVille_id() {
		return ville_id;
	}

	public void setVille_id(int ville_id) {
		this.ville_id = ville_id;
	}
	
	public static void main(String[] args) throws Exception {
		JFrame a = new JFrame("window");
		ModifierVille norme = new ModifierVille(Francais.getInstance());
		//norme.getObservable().addObserver(new Controleur());
		a.add(norme);
		
		String[] ville = {"Sherbrooke"},
				 groupe = {"Bob"},
				 telephone = {"819-829-3931"};
		
		norme.addDataToFields("sher2","queb2","can2");
		a.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		a.pack();
		a.setVisible(true);
	}
}
