package client.view.Probleme;

import java.awt.Color;

import javax.swing.JLabel;
import javax.swing.JPanel;

/** <u><b>Explication générale de la classe :</b></u>
 * <P>Cette classe permet de créer le panel des résultats d'un problème
 *
 * @author Dream Team - ING2
 */
public class PanelResultat extends JPanel {
	
	//Déclaration des variables
	private JLabel titreResultat, titreProbleme, titreMethode, titreComplexite, titreDate, titreEpsilon,
					titreErrAbsolue, titreMaxIteration, titrePas, titrePointDeDepart, titrePointValOptim, 
					titreValeurResultat;

	private JLabel resultat, probleme, methode, complexite, date, epsilon, errAbsolue, maxIteration,
					pas, pointDeDepart, pointValOptim, valeurResultat;
	
	/**<u><i>Explication générale du constructeur :</i></u>
     * <P> Constructeur de la classe permettant de créer un panel de résultat
     *
     */
	public PanelResultat(){
		
		//On met le panel comme on veut
		this.setBackground(new Color(234, 232, 233));
		this.setBounds(0, 0, 480, 210);
		this.setLayout(null);
		
		//Nom du résultat
		titreResultat = new JLabel("Nom du Resultat : ");
		titreResultat.setBounds(20, 10, 150, 20);
		this.add(titreResultat);
		
		resultat = new JLabel();
		resultat.setBounds(250, 10, 150, 20);
		this.add(resultat);
		
		//Nom du problème
		titreProbleme = new JLabel("Nom du Problème : ");
		titreProbleme.setBounds(20, 30, 150, 20);
		this.add(titreProbleme);
		
		probleme = new JLabel();
		probleme.setBounds(250, 30, 150, 20);
		this.add(probleme);
		
		//Nom de la méthode
		titreMethode = new JLabel("Nom de la Méthode : ");
		titreMethode.setBounds(20, 50, 150, 20);
		this.add(titreMethode);
		
		methode = new JLabel();
		methode.setBounds(250, 50, 150, 20);
		this.add(methode);
		
		//Complexité
		titreComplexite = new JLabel("Complexite : ");
		titreComplexite.setBounds(20, 70, 100, 20);
		this.add(titreComplexite);
		
		complexite = new JLabel();
		complexite.setBounds(250, 70, 150, 20);
		this.add(complexite);
		
		//Date
		titreDate = new JLabel("Date : ");
		titreDate.setBounds(20, 90, 100, 20);
		this.add(titreDate);
		
		date = new JLabel("");
		date.setBounds(250, 90, 150, 20);
		this.add(date);
		
		//Epsilon
		titreEpsilon = new JLabel("Epsilon : ");
		titreEpsilon.setBounds(20, 110, 100, 20);
		this.add(titreEpsilon);
		
		epsilon = new JLabel("");
		epsilon.setBounds(250, 110, 150, 20);
		this.add(epsilon);
		
		//Erreur absolue
		titreErrAbsolue = new JLabel("Erreur Absolue : ");
		titreErrAbsolue.setBounds(20, 130, 150, 20);
		this.add(titreErrAbsolue);
		
		errAbsolue = new JLabel();
		errAbsolue.setBounds(250, 130, 150, 20);
		this.add(errAbsolue);
		
		//Itérations
		titreMaxIteration = new JLabel("Nombre d'Itération(s): ");
		titreMaxIteration.setBounds(20, 150, 170, 20);
		this.add(titreMaxIteration);
		
		maxIteration = new JLabel();
		maxIteration.setBounds(250, 150, 150, 20);
		this.add(maxIteration);
		
		//Pas
		titrePas = new JLabel("Pas : ");
		titrePas.setBounds(20, 170, 100, 20);
		this.add(titrePas);
		
		pas = new JLabel();
		pas.setBounds(250, 170, 100, 20);
		this.add(pas);
		
		//Point de départ
		titrePointDeDepart = new JLabel("Point de départ : ");
		titrePointDeDepart.setBounds(20, 190, 120, 20);
		this.add(titrePointDeDepart);
		
		pointDeDepart = new JLabel();
		pointDeDepart.setBounds(250, 190, 100, 20);
		this.add(pointDeDepart);
		
		//Point d'optimisation
		titrePointValOptim = new JLabel("Point de la valeur optimisée : ");
		titrePointValOptim.setBounds(20, 210, 250, 20);
		this.add(titrePointValOptim);
		
		pointValOptim = new JLabel();
		pointValOptim.setBounds(250, 210, 100, 20);
		this.add(pointValOptim);
		
		//Résultat
		titreValeurResultat = new JLabel("Résultat : ");
		titreValeurResultat.setBounds(20, 230, 100, 20);
		this.add(titreValeurResultat);
		
		valeurResultat = new JLabel();
		valeurResultat.setBounds(250, 230, 100, 20);
		this.add(valeurResultat);
	}

	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le JLabel du résultat
     * 
     * @return le résultat
     */
	public JLabel getResultat() {
		return resultat;
	}
	
	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le JLabel du problème
     * 
     * @return le problème
     */
	public JLabel getProbleme() {
		return probleme;
	}

	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le JLabel de la méthode
     * 
     * @return la méthode
     */
	public JLabel getMethode() {
		return methode;
	}

	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le JLabel de la complexité
     * 
     * @return la complexité
     */
	public JLabel getComplexite() {
		return complexite;
	}
	
	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le JLabel de la date
     * 
     * @return la date
     */
	public JLabel getDate() {
		return date;
	}

	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le JLabel d'epsilon
     * 
     * @return epsilon
     */
	public JLabel getEpsilon() {
		return epsilon;
	}

	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le JLabel de l'erreur absolue
     * 
     * @return l'erreur absolue
     */
	public JLabel getErrAbsolue() {
		return errAbsolue;
	}

	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le JLabel du nombre d'itérations
     * 
     * @return nombre d'itérations
     */
	public JLabel getMaxIteration() {
		return maxIteration;
	}

	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le JLabel du pas
     * 
     * @return le pas
     */
	public JLabel getPas() {
		return pas;
	}

	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le JLabel du point de départ
     * 
     * @return point de départ
     */
	public JLabel getPointDeDepart() {
		return pointDeDepart;
	}
	
	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le JLabel du point de valeur d'optimisation
     * 
     * @return valeur d'optimisation
     */
	public JLabel getPointValOptim() {
		return pointValOptim;
	}

	/**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le JLabel du résultat
     * 
     * @return valeur d'optimisation
     */
	public JLabel getValeurResultat() {
		return valeurResultat;
	}
	
}
