Package application.controleurs

Source Code of application.controleurs.ControleurPanelAjout

package application.controleurs;

import java.awt.Color;
import java.awt.event.*;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Vector;
import javax.swing.JOptionPane;
import application.exceptions.*;
import application.modeles.ModeleGenre;
import application.modeles.ModeleIndividu;
import application.modeles.ModeleVideotheque;
import application.vues.VuePanelAjout;



/**
* Ce controleur servira pour les boutons d'ajout/supp d'acteurs et de genres (pour ajouter un film, il faut
* d'abord construire une liste d'acteurs et de genres), et pour l'ajout de film.
*
* @author Hitman
*/
public class ControleurPanelAjout implements ActionListener, MouseListener {

  public static final String AJOUTER_ACTEUR = "AJOUTER ACTEUR";
  public static final String AJOUTER_GENRE = "AJOUTER GENRE";
  public static final String SUPPRIMER_ACTEUR = "SUPPRIMER ACTEUR"
  public static final String SUPPRIMER_GENRE = "SUPPRIMER GENRE";
  public static final String AJOUTER_FILM = "AJOUTER FILM";
 
  private VuePanelAjout _pnl;
  private ModeleVideotheque _mod;
 
 
  public ControleurPanelAjout(VuePanelAjout pnl, ModeleVideotheque mod) {
   
    _pnl = pnl;
    _mod = mod;
  }

 
 
  @SuppressWarnings("static-access")
  @Override
  public void actionPerformed(ActionEvent event) {
   
    JOptionPane info = new JOptionPane();
   
   
    // Clic sur le bouton "Ajouter acteur"
    if(event.getActionCommand() == AJOUTER_ACTEUR){
     
      if(_pnl.get_txtAjoutActeur().getText().equals("")){
       
        info.showMessageDialog(_pnl, "L'acteur doit avoir un prenom et/ou un nom !", ".:: Ajout d'un acteur ::.", info.ERROR_MESSAGE);
      }
      else if (acteurDejaAjoute(_pnl.get_txtAjoutActeur().getText())){
       
        info.showMessageDialog(_pnl, "Attention, vous avez deja� ajoute cet acteur !", ".:: Ajout d'un acteur ::.", info.ERROR_MESSAGE);
      }
      else {
        // Au clic sur ajouter acteur, on ajoute l'item dans la liste.
        _pnl.get_lstActeurs().add(_pnl.get_txtAjoutActeur().getText());
        _pnl.get_txtAjoutActeur().setText("")
       
       
      }
    }
   
   
    // Clic sur le bouton "Supprimer acteur"
    if(event.getActionCommand() == SUPPRIMER_ACTEUR){
     
      if(_pnl.get_lstActeurs().getSelectedIndex()>=0){
       
        _pnl.get_lblResultat().setForeground(Color.GREEN);
        _pnl.get_lblResultat().setText("-");
        _pnl.get_lstActeurs().remove(_pnl.get_lstActeurs().getSelectedItem());
       
     
      }
      else info.showMessageDialog(_pnl, "Veuillez selectionner un acteur a supprimer !", ".:: Suppression d'un acteur ::.", info.ERROR_MESSAGE);
     
    }
   
   
    // Clic sur le bouton "Ajouter genre"
    if(event.getActionCommand() == AJOUTER_GENRE){
     
      if(_pnl.get_cbxGenreFilm().getSelectedItem().toString() == "**-**"){
       
        info.showMessageDialog(_pnl, "Il ne s'agit pas d'un genre", ".:: Ajout d'un genre ::.", info.ERROR_MESSAGE);
      }
     
      if(!genreDejaAjoute(_pnl.get_cbxGenreFilm().getSelectedItem().toString())){
        _pnl.get_lstGenres().add(_pnl.get_cbxGenreFilm().getSelectedItem().toString());
      }
      else info.showMessageDialog(_pnl, "Ce genre a deja� ete ajoute pour ce film !", ".:: Ajout d'un genre ::.", info.ERROR_MESSAGE);
     
    }
   
   
    // Clic sur le bouton "Supprimer genre"
    if(event.getActionCommand() == SUPPRIMER_GENRE){
 
      if(_pnl.get_lstGenres().getSelectedIndex()>=0){
       
        _pnl.get_lblResultat().setForeground(Color.GREEN);
        _pnl.get_lblResultat().setText("-");
        _pnl.get_lstGenres().remove(_pnl.get_lstGenres().getSelectedItem());
     
      }
      else info.showMessageDialog(_pnl, "Veuillez selectionner un genre a supprimer !", ".:: Suppression d'un genre ::.", info.ERROR_MESSAGE);
     
    }
   
   
    // Clic sur le bouton "Ajouter film"
    if(event.getActionCommand() == AJOUTER_FILM){
     
      this.ajouterFilm();
      _pnl.reset();
   
  }
 
 
 
  @Override
  public void mouseClicked(MouseEvent e) {
    // TODO Auto-generated method stub
   
  }



  @Override
  public void mouseEntered(MouseEvent event2) {
   
    if(event2.getSource() == _pnl.get_btnAjouter_Acteur()){
     
      _pnl.get_btnAjouter_Acteur().setForeground(Color.BLUE);
   
    }
   
    else if(event2.getSource() == _pnl.get_btnAjouter_Genre()){
     
      _pnl.get_btnAjouter_Genre().setForeground(Color.BLUE);
   
    }
   
    else if(event2.getSource() == _pnl.get_btnSupprimer_Acteur()){
     
      _pnl.get_btnSupprimer_Acteur().setForeground(Color.BLUE);
   
    }
   
    else if(event2.getSource() == _pnl.get_btnSupprimer_Genre()){
     
      _pnl.get_btnSupprimer_Genre().setForeground(Color.BLUE);
   
    }
   
    else if(event2.getSource() == _pnl.get_btnAjouter_Film()){
     
      _pnl.get_btnAjouter_Film().setForeground(Color.BLUE);
   
    }
   
   
  }



  @Override
  public void mouseExited(MouseEvent event3) {
   
  if(event3.getSource() == _pnl.get_btnAjouter_Acteur()){
     
      _pnl.get_btnAjouter_Acteur().setForeground(Color.BLACK);
   
    }
   
    if(event3.getSource() == _pnl.get_btnAjouter_Genre()){
     
      _pnl.get_btnAjouter_Genre().setForeground(Color.BLACK);
   
    }
   
    if(event3.getSource() == _pnl.get_btnSupprimer_Acteur()){
     
      _pnl.get_btnSupprimer_Acteur().setForeground(Color.BLACK);
   
    }
   
    if(event3.getSource() == _pnl.get_btnSupprimer_Genre()){
     
      _pnl.get_btnSupprimer_Genre().setForeground(Color.BLACK);
   
    }
   
    if(event3.getSource() == _pnl.get_btnAjouter_Film()){
     
      _pnl.get_btnAjouter_Film().setForeground(Color.BLACK);
   
   
  }



  @Override
  public void mousePressed(MouseEvent e) {
    // TODO Auto-generated method stub
   
  }



  @Override
  public void mouseReleased(MouseEvent e) {
    // TODO Auto-generated method stub
   
  }
 
 
 
  /**
   *
   * Methode d'ajout de film qui est appelee lors du clic
   * sur le bouton "Ajouter le film".
   *
   */
  @SuppressWarnings("static-access")
  public void ajouterFilm(){
   
    JOptionPane info = new JOptionPane();
   
    try{
     
      String[]Realisateur, Genre1;
      int numReal, numFilm;
      String nomRea = _pnl.get_txtRealisateur().getText();
      if(nomRea.length() < 1)
        throw new DataFormatException("Le nom du realisateur ne peut etre vide");

      Realisateur = _pnl.get_txtRealisateur().getText().split("_");
      String prenomRealisateur = Realisateur[0];
      String nomRealisateur = null;
      if(nomRea.contains("_"))
        nomRealisateur = Realisateur[1];
      String codeGenre, labelGenre, titre;
      Collection<ModeleGenre> lstGenres = new Vector<ModeleGenre> ();
      Collection<ModeleIndividu> lstActeurs = null;
      // On commence par creer le realisateur
      ModeleIndividu realisateur = new ModeleIndividu(prenomRealisateur, nomRealisateur);
     
     
      // On recupere le titre du film.
      titre =_pnl.get_txtTitreFilm().getText();
     
     
      // On construit la liste des genres.
      for(int i=0; i<_pnl.get_lstGenres().getItemCount(); i++){
       
        Genre1 = _pnl.get_lstGenres().getItem(i).split(" - ");
        codeGenre = Genre1[0];
        labelGenre = Genre1[1];

        ModeleGenre unGenre = new ModeleGenre(codeGenre, labelGenre );
        lstGenres.add(unGenre);
        unGenre.finalize();
       
      }
     
      // On construit la liste des acteurs.
      lstActeurs = this.ajoutActeurs();
     
      // On ajoute le film a partir de tous ces parametres.
      _mod.ajouterFilm(titre, lstGenres, realisateur, lstActeurs);
         
    }
    catch (DataFormatException dataFExcept){
     
      info.showMessageDialog(_pnl, dataFExcept.getMessage(), ".:: Ajouter un film ::.", info.ERROR_MESSAGE);
 
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
 
 
 
 
  /**
   *
   * Methode qui construit la liste des acteurs a ajouter.
   * Elle est appelee dans la methode ajouterFilm ci-dessus
   *
   */
  @SuppressWarnings("static-access")
  public Collection<ModeleIndividu> ajoutActeurs() {
   
    Collection<ModeleIndividu> lstActeurs = new Vector<ModeleIndividu> ()
    JOptionPane info = new JOptionPane();
   
    try {
      String[] Acteur;
      String prenomActeur, nomActeur;
     
      for(int i=0; i<_pnl.get_lstActeurs().getItemCount(); i++){
        Acteur = _pnl.get_lstActeurs().getItem(i).split("_");
        prenomActeur = Acteur[0];
        nomActeur = null;
        if(_pnl.get_lstActeurs().getItem(i).contains("_"))
          nomActeur   = Acteur[1];
       
        ModeleIndividu unActeur = new ModeleIndividu(prenomActeur, nomActeur);
        lstActeurs.add(unActeur);
        unActeur.finalize();
       
      }
     
    } catch (DataFormatException e) {
     
      info.showMessageDialog(_pnl, e.getMessage(), ".:: Ajout d'un acteur ::.", info.ERROR_MESSAGE);
     
    }
   
    return lstActeurs;
  }
 
 
 
  /**
   *
   * Methode permettant de verifier si l'acteur a deja
   * ete ajoute a la liste des acteurs du film.
   *
   * @param chaine  prenom et nom de l'acteur
   * @return true   si l'acteur est deja present
   *
   */
  public boolean acteurDejaAjoute(String chaine){
   
    boolean dejaAjoute = false;
    int i = 0;
   
    while (!dejaAjoute && (i <_pnl.get_lstActeurs().getItemCount())){
     
      if(chaine.toLowerCase().equals(_pnl.get_lstActeurs().getItem(i).toLowerCase())){
        dejaAjoute = true;
      }
     
      i++;
    }
   
    return dejaAjoute;
  }
 
 
 
 
  /**
   *
   * Methode permettant de savoir si le genre a deja ete
   * ajoute dans la liste des genres du film.
   *
   * @param chaine  le codeGenre et le libelle du genre
   * @return true   si le genre est deja dans la liste
   *
   */
  public boolean genreDejaAjoute(String chaine){
   
    boolean dejaAjoute = false;
    int i = 0;
   
    while (!dejaAjoute && (i <_pnl.get_lstGenres().getItemCount())){
     
      if(chaine.toLowerCase().equals(_pnl.get_lstGenres().getItem(i).toLowerCase())){
        dejaAjoute = true;
      }
     
      i++;
    }
   
    return dejaAjoute;
  }

}
TOP

Related Classes of application.controleurs.ControleurPanelAjout

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.