package controleur;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import javax.swing.JOptionPane;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import modele.DataMoniteur;
import vue.*;
public class EcouteurMoniteur implements MouseListener, ActionListener,DocumentListener {
private FenetreMoniteur f;
int index = -1;
//boolean modif = false;
private DataMoniteur moniteur = new DataMoniteur();
public EcouteurMoniteur(FenetreMoniteur f) {
this.f = f;
}
public void mouseClicked(java.awt.event.MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(java.awt.event.MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(java.awt.event.MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(java.awt.event.MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(java.awt.event.MouseEvent e) {
if(e.getSource() == f.getListeMoni() && e.getClickCount()==2) {
index = f.getListeMoni().getSelectedIndex();
String s = f.getListeMoni().getModel().getElementAt(index).toString();
String nom, prenom;
int i = 0;
while ( i < s.length() && s.charAt(i)!=' ') {
i++;
}
if(i == s.length()) {
nom = s;
prenom = "";
}
else {
nom = s.substring(0, i);
prenom = s.substring(i+1, s.length());
}
f.getNom().setText(nom);
f.getPrenom().setText(prenom);
//f.getTextAjout().setText("Ajout / Modification d'un Moniteur");
//f.getAjouter().setText("Ok");
//f.getEffacer().setText("Supprimer Moniteur");
//System.out.println(index);
f.getAjouter().setEnabled(false);
f.getEffacer().setEnabled(true);
f.getMaj().setEnabled(true);
//modif = true;
}
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == f.getEffacer()) {
moniteur.supprimerMoniteur(f.getKListe().get( f.getListeMoni().getSelectedIndex()).getId());
for (int i = 0; i< f.getKListe().count(); i++){
f.getKListe().remove(f.getKListe().get(i));
}
f.setKListe(moniteur.recupererListe());
f.getListeMemMoni().removeAll(f.getListeMemMoni());
for (int i = 0; i< f.getKListe().count(); i++){
f.getListeMemMoni().add(f.getKListe().get(i).getPRENOM_MONITEUR().toLowerCase()+" "+f.getKListe().get(i).getNOM_MONITEUR().toUpperCase());
}
f.getListeMoni().setListData(f.getListeMemMoni().toArray());
}else if(e.getSource() == f.getAjouter()) {
if((f.getNom().getText().equals(""))||(f.getPrenom().getText().equals("") )){new JOptionPane().showMessageDialog(null, "Un champ blanc ne peut �tre ins�r�", "Erreur",JOptionPane.ERROR_MESSAGE); }
else{
moniteur.ajouterMoniteur(f.getNom().getText(), f.getPrenom().getText(), f.getKListe().count()+1);
}
for (int i = 0; i< f.getKListe().count(); i++){
f.getKListe().remove(f.getKListe().get(i));
}
f.setKListe(moniteur.recupererListe());
f.getListeMemMoni().removeAll(f.getListeMemMoni());
for (int i = 0; i< f.getKListe().count(); i++){
f.getListeMemMoni().add(f.getKListe().get(i).getPRENOM_MONITEUR().toLowerCase()+" "+f.getKListe().get(i).getNOM_MONITEUR().toUpperCase());
f.getListeMoni().setListData(f.getListeMemMoni().toArray());
}
}else if(e.getSource() == f.getMaj()) {
moniteur.majMoniteur(f.getNom().getText(), f.getPrenom().getText(), f.getKListe().get( f.getListeMoni().getSelectedIndex()).getId());
for (int i = 0; i< f.getKListe().count(); i++){
f.getKListe().remove(f.getKListe().get(i));
}
f.setKListe(moniteur.recupererListe());
f.getListeMemMoni().removeAll(f.getListeMemMoni());
for (int i = 0; i< f.getKListe().count(); i++){
f.getListeMemMoni().add(f.getKListe().get(i).getPRENOM_MONITEUR().toLowerCase()+" "+f.getKListe().get(i).getNOM_MONITEUR().toUpperCase());
}
f.getListeMoni().setListData(f.getListeMemMoni().toArray());
}
else if(e.getSource() == f.getReinitialiser()){
f.getNom().setText("");
f.getPrenom().setText("");
f.getAjouter().setEnabled(false);
f.getEffacer().setEnabled(false);
f.getMaj().setEnabled(false);
}
}
//m�thode automatiquement g�n�r� par DocumentListener.
@Override
public void changedUpdate(DocumentEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void insertUpdate(DocumentEvent arg0) {
f.getAjouter().setEnabled(true);
}
@Override
public void removeUpdate(DocumentEvent arg0) {
handleTextField(arg0);
}
public boolean handleTextField (DocumentEvent e){
if ((e.getDocument().getLength()<=0)){
f.getAjouter().setEnabled(false);
return true;
}
return false;
}
public void changeUpdate (DocumentEvent e){
if(!handleTextField(e)){f.getAjouter().setEnabled(true);}
}
}