package gui.vues.annulationvalidation;
import gui.models.CurrentDateModel;
import gui.vues.NtpPanel;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import metier.reservations.AnnulationValidation;
import misc.GU;
import data.programmation.Piece;
import data.reservation.Reservation;
/**
* Panel utilisé pour l'annulation ET la validation.
* Il permet de chosiir une réservation en saisissant un id de réservation.
*
*
* @author Ait Elhaj Brahim
*
* @see NtpPanel
* @see ActionLister
*
*/
public class ChoixReservation extends NtpPanel implements ActionListener {
/* Le champ du numéro d'abonné */
JTextField idReservationField;
private JLabel message = new JLabel("Entrez un numéro de réservation et valider : ");
JButton ok = new JButton("Continuer");
JButton arret = new JButton("Arrêter");
private CurrentDateModel cdm;
private boolean annulation;
/**
* Crée un panel permettant de choisir une réservation.
*
*
*
* @param owner Le <code>JDialog</code> parent
* @param cdm Le modèle de date
* @param annulation booléen pour indiquer si il s'agit d'une annulation ou d'une réservation
*/
public ChoixReservation(JDialog owner,CurrentDateModel cdm,boolean annulation){
super(owner,null);
this.cdm = cdm;
this.annulation = annulation;
this.setLayout(new GridLayout(0,1));
owner.setTitle("Saisie de l'identifiant de réservation");
idReservationField = new JTextField(5);
idReservationField.addActionListener(this);
//Panel haut
JPanel panelHaut = new JPanel();
panelHaut.add(new JLabel("Identifiant de réservation : "));
panelHaut.add(idReservationField);
//Panel Centre
//Panel du bas : champ numéro abonné
JPanel panelBas = new JPanel();
panelBas.add(message);
panelBas.add(ok);
//panelBas.add(arret);
this.add(panelHaut);
//this.add(infoPanel);
this.add(panelBas);
//this.add(message);
//Gestion des évenements
ok.addActionListener(this);
//arret.addActionListener(this);
}
/**
* Indique si une réservation existe ou pas.
*
* @return vrai si la réservation existe, faux sinon
* @param L'id de la réservation
*/
private Reservation existe(String idReservation){
AnnulationValidation mr = new AnnulationValidation();
Reservation res = mr.getReservation(idReservation);
if(res == null){
String message = "Cette réservation n'existe pas !";
//idReservationField.setText("");
clear();
GU.warn(message);
}
return res;
}
/**
* Efface la zone de texte
*
*/
private void clear(){
idReservationField.setText("");
}
/**
* Gestion des évenements
*
* @param e L'évenement déclencheur (ex : Click sur un bouton ...)
*/
public void actionPerformed(ActionEvent e) {
Object o = e.getSource();
//On vérifie la saisie
if(o == ok){
//Effectuer les vérification sur la saisie via le métier
String idReservation = idReservationField.getText();
if(idReservation.trim().equals("")){
String message = "Vous devez saisir un identifiant de réservation";
GU.info(message);
return;
}
Reservation res = existe(idReservation);
// Si la réservation existe bel et bien
if(res != null){
//On efface l'id saisi
clear();
NtpPanel info = new InfoReservation(owner,cdm,annulation,res,this);
this.displayScreen(info);
}
}
}
}