package normeDeCodage.vue.swing;

import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class ExempleVue extends JPanel{
	/*une vue n'a pour but QUE d'afficher de l'information
	 * c'était le cas dans le temp des interfaces TELETYPE
	 * aujourd'huis les interfaces on des bouttons, 
	 * mais toujours est-il qu'un interface n'affiche QUE
	 * l'information et ses bouttons appelent le controleur
	 * 
	 * donc regle générale
	 * aucun objet du modèle ne devrait etre stocké dans un objet swing
	 * 
	 * les action listener n'appelent que des méthodes du mème objet 
	 *   (ces dernier tan qua eux appelerons les méthodes du controleur)
	 * donc pas de sous-objet
	 * 
	 * pour y integrer l'information, des setters et des getters seront
	 * coder pour inserer les données directement dans les objets swings
	 * et ça aussi relève du controleur de les appeler
	 * 
	 * un objet swing n'a rien d'autre que des objet swing en propriété
	 * et des getters et des setters pour y mettre des données
	 * 
	 * parcontre, un objet swing est autorisé à appeler des regex de la factory
	 * */
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -5094934602673962055L;
	private JComboBox<String> combobox;			//le propriété portent exactement le nom de leurs label en lowercase
	private JTextField textfield;
	
	public ExempleVue(){
		combobox = new JComboBox<String>();
		//combobox.addActionListener(this);
		JLabel lblcombobox = new JLabel("combobox");
		lblcombobox.setLabelFor(combobox);			//label obligatoire pour chaque field
		lblcombobox.setDisplayedMnemonic('c');		//mnemonic obligatoire
		add(lblcombobox);
		add(combobox);
		
		textfield = new JTextField();
		JLabel lbltextfield = new JLabel("textfield");
		lbltextfield.setLabelFor(textfield);
		lbltextfield.setDisplayedMnemonic('t');
		add(lbltextfield);
		add(textfield);
	}
	
	/*
	 * getter et setter
	 * */
	
	//setter spécial pour changer les choix
	public void setComboboxChoix(String ... choix){
		combobox.removeAllItems();
		int index=1;
		for (String choi : choix)
			combobox.insertItemAt(choi, index++);
	}
	
	
	public void setCombobox(String selection){
		combobox.setSelectedItem(selection);
	}
	
	public String getCombobox(){
		return (String)combobox.getSelectedItem();
	}
	
	public void setTextfield(String str){
		textfield.setText(str);
	}
	
	public String getTextfield(){
		return textfield.getText();
	}
	
	/*
	 * listener
	 */
}
