package gui.vues.demande;
import gui.vues.NtpPanel;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import metier.reservations.Demande;
import misc.GU;
import data.abonne.Abonne;
import data.programmation.Piece;
import data.programmation.Representation;
import data.reservation.Reservation;
/**
* Panel de fin de réservation. Affichage du numéro de réservation et de la date limite
* de paiement.
*
* Point 13. et 13a. du cas d'utilisation 1
*
* @author Ait Elhaj Brahim
*
*/
public class FinReservation extends NtpPanel implements ActionListener {
private JLabel message = new JLabel("Accepter et terminer : ");
JButton ok = new JButton("Oui");
JButton non = new JButton("Non");
JButton arret = new JButton("Arrêter");
//JButton quitter = new JButton("Quitter");
private Piece p;
private Abonne a;
private Reservation res;
private Representation rep;
/**
* Construction d'un objet <code>FinReservation</code>.
*
* @param p
* La piéce
* @param a
* L'abonné
* @param res
* La réservation
* @param rep
* La représentation
* @param owner
* Le <code>JDialog</code> parent
* @param previous
* Le panel précédent
*/
public FinReservation(Piece p, Abonne a, Reservation res,
Representation rep, JDialog owner,NtpPanel previous){
super(owner,previous);
this.p = p;
this.a = a;
this.res = res;
this.rep = rep;
this.owner = owner;
owner.setTitle("Attribution des places ");
this.setLayout(new GridLayout(0,1));
JPanel panelBas = new JPanel();
//panelBas.add(quitter);
panelBas.add(message);
panelBas.add(ok);
panelBas.add(non);
//On créer la réservation
Demande d = new Demande();
String idReserv = d.getNewId(res.getIdSeance());
//On attribue l'id à la réservation
res.setIdReserv(idReserv);
//d.creerReservation(res);
String txt = GU.formatValidationDemandeToHtml(res, "Votre Réservation : ");
JLabel infos = new JLabel(txt,JLabel.CENTER);
this.add(infos);
this.add(panelBas);
ok.addActionListener(this);
non.addActionListener(this);
}
/**
* Gestion des évenements
*
* @param e L'évenement déclencheur (ex : Click sur un bouton ...)
*/
public void actionPerformed(ActionEvent e) {
Object o = e.getSource();
if(o == ok){
Demande d = new Demande();
//On demande la confirmation
boolean confirm = GU.confirm("Voulez-vous confirmer cette demande de réservation ?");
if(confirm){
boolean reservationReussi = d.creerReservation(res);
// Enregistrement de la réservation
if(reservationReussi){
GU.info("La réservation "+res.getIdReserv()+" a bien été créee !");
this.finishCaseWithoutMessage();
}else{
GU.info("La réservation n'a pu être créee, désolé !");
}
}
}else if(o == non){
this.finishCase();
}
}
}