package gui.vues.demande;
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.Demande;
import misc.GU;
import data.abonne.Abonne;
import data.programmation.Piece;
/**
* Panel de séléction d'un abonné.
* Point 3a1. du cas d'utilisation 1
*
* @author Ait Elhaj Brahim
*
*/
public class AbonnePanel extends NtpPanel implements ActionListener {
/* Le champ du numéro d'abonné */
private JTextField idAbonneField;
private JLabel message = new JLabel("Entrez un numéro d'abonné et valider : ");
private JButton ok = new JButton("Continuer");
private Piece p;
private CurrentDateModel cdm;
/**
* Construction d'un <code>AbonnePanel</code>
*
*
* @param p La piéce
* @param cdm Le modèle de date
* @param owner Le <code>JDialog</code> parent
* @param previous Le panel précédent
*/
public AbonnePanel(Piece p,CurrentDateModel cdm, JDialog owner,NtpPanel previous){
super(owner,previous);
this.p = p;
this.cdm = cdm;
this.setLayout(new GridLayout(0,1));
owner.setTitle("Saisie du numéro d'abonné");
idAbonneField = new JTextField(5);
idAbonneField.addActionListener(this);
//Panel haut
JPanel panelHaut = new JPanel();
panelHaut.add(new JLabel("Numéro d'abonné : "));
panelHaut.add(idAbonneField);
//Panel Centre
//Panel du bas : champ numéro abonné
JPanel panelBas = new JPanel();
//panelBas.add(arret);
panelBas.add(message);
panelBas.add(ok);
this.add(panelHaut);
//this.add(infoPanel);
this.add(panelBas);
//this.add(message);
//Gestion des évenements
ok.addActionListener(this);
//arret.addActionListener(this);
}
/**
* Permet d'indiquer l'existence ou non d'un abonné
* @return true si l'abonné existe
*/
private Abonne existe(String idAbonne){
Demande d = new Demande();
Abonne a = d.abonneExiste(idAbonne);
if(a == null){
String message = "Cet abonné n'existe pas !";
GU.warn(message);
}
//System.out.println("Cette abonné n'existe pas ! ");
return a;
}
/**
* 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 idAbonne = idAbonneField.getText();
if(idAbonne.trim().equals("")){
String message = "Vous devez saisir un identifiant d'abonné";
GU.info(message);
return;
}
Abonne abonne = existe(idAbonne);
// Si l'objet est non nul
if (abonne!=null){
NtpPanel next = new InfosAbonne(abonne, p,cdm.getDate(), owner,this);
// Affichage de l'écran suivant
this.displayScreen(next);
}
}
}
}