Package gui.chauffeur.avertissement

Source Code of gui.chauffeur.avertissement.AvertissementEditionFenetre

package gui.chauffeur.avertissement;

import static gui.MotsCleProjet.CMD_CANCEL;

import static gui.MotsCleProjet.CMD_OK;
import static gui.MotsCleProjet.DATE_ERREUR_TEXTE;
import static gui.util.TaxiGuiUtil.FabricationButton;
import static gui.util.TaxiGuiUtil.MessageBox;
import gui.*;
import gui.chauffeur.gestionchauffeur.ChauffeurAffichable;
import gui.util.ErreurDeValidation;
import gui.util.TaxiGuiUtil;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

import javax.swing.*;

import modele.chauffeur.*;
import dao.GestionnaireDeStockage;
import dao.IDao;
import dao.IReadOnlyDao;

/**
* class AvertissementEditionFenetre \n
* cr�e une fen�tre pour ajouter, modifier un enregistrement
* @author Kasandra
*
*/
class AvertissementEditionFenetre implements ActionListener {
 
  private JDialog aDialog;// R�f�rence � la boite de dialogue.

  private JComboBox cmbChauf, cmbTypeAverti;

  private JTextArea textDescrip;

  private JLabel labDescrip, titres, labDateAverti,  labIdChauf, labIdTypeAverti, textDtAverti, textDtFinAverti, labDateFin;

  Date current = new GregorianCalendar().getTime();

  ImageIcon ani;

  private JComboBox cmbEtats;

  private JPanel titre;

  private Avertissement avertissement = new Avertissement();

  static Font titreFont = new Font("Tahoma", 1, 12);

  protected boolean okFlag;

  public boolean OK_Button() {
    return okFlag;
  }

  /**
   * Constructeur
   */
  public AvertissementEditionFenetre() {
    aDialog = new JDialog(MainWindow.cadrePrincipal(), "  Avertissement...", true);
   
    textDescrip = new JTextArea();
    textDescrip.setFont(titreFont);
    textDescrip.setForeground(new java.awt.Color(66, 79, 120));

    ani = new ImageIcon(getClass().getClassLoader().getResource("images/logoCalender.jpg"));
    textDtAverti = new JLabel();
    textDtAverti.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(66, 79, 120), 2));
    textDtAverti.setIcon(ani);
    textDtAverti.setFont(titreFont);
    textDtAverti.setForeground(new java.awt.Color(66, 79, 120));
   
    textDtAverti.addMouseListener(new MouseListener() {
      public void mouseClicked(MouseEvent e) {
        DateCalendar fen = new DateCalendar(MainWindow.cadrePrincipal(), 0, DateCalendar.Mode.DATE_SEULEMENT);
        fen.affiche();

        if (fen.okFlag) {
          Date dateDebut = fen.retourDate();
          if (dateDebut.after(new Date())) {
            MessageBox(MainWindow.desktop(), "DATE INVALIDE...");
          } else {
            avertissement.setDateDebut(dateDebut);
            textDtAverti.setText(new SimpleDateFormat(MotsCleProjet.DATE_FORMAT).format(dateDebut));
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(dateDebut);
            calendar.add(Calendar.MONTH, 6);
            textDtFinAverti.setText(new SimpleDateFormat(MotsCleProjet.DATE_FORMAT).format(calendar.getTime()));
          }
        } else {
          textDtAverti.setText(DATE_ERREUR_TEXTE);
          MessageBox(MainWindow.desktop(), "DATE INVALIDE...");
        }
      }

      public void mouseEntered(MouseEvent e) {}
      public void mouseExited(MouseEvent e) {}
      public void mousePressed(MouseEvent e) {}
      public void mouseReleased(MouseEvent e) {}
    });

    textDtFinAverti = new JLabel();
    textDtFinAverti.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(66, 79, 120), 2));
    textDtFinAverti.setEnabled(false);
    textDtFinAverti.setFont(titreFont);
    textDtFinAverti.setForeground(new java.awt.Color(66, 79, 120));

    cmbChauf = new JComboBox(getListeChauffeur());
   
    cmbTypeAverti = new JComboBox(getListeTypeAvertissement());
    cmbTypeAverti.setFont(titreFont);
   
      okFlag = false;
  }

  /**
   * Initialise les donn�es
   */
  public void initializeDonnee(Avertissement avertissement) {
    this.avertissement = avertissement;
    textDescrip.setText(avertissement.getDescription());
   
    textDtAverti.setText(new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).format(avertissement.getDateDebut()));
    textDtFinAverti.setText(new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).format(avertissement.getDateFin()));
           
    selectionneChauffeur(avertissement.getChauffeur());
    selectionneTypeAvertissement(avertissement.getTypeAvertissement());
  }

  /**
   * Selectionne r�f�rence chauffeur
   * @param chauffeur
   */
  private void selectionneChauffeur(ReferenceChauffeur chauffeur) {
    int nbChauf = cmbChauf.getItemCount();
    for (int i = 0; i<nbChauf; i++) {
      @SuppressWarnings("unchecked")
      ChauffeurAffichable<ReferenceChauffeur> chauffeurAffichable = (ChauffeurAffichable<ReferenceChauffeur>)cmbChauf.getItemAt(i);
      if (chauffeurAffichable.getChauffeur().getId().equals(chauffeur.getId())) { 
      cmbChauf.setSelectedIndex(i);
        break;
      }
    }
  }

  /**
   * Selectionne type avertissement
   * @param typeAvertissement
   */
  private void selectionneTypeAvertissement(TypeAvertissement typeAvertissement) {
    int nbTypeAverti = cmbTypeAverti.getItemCount();
    for (int i = 0; i<nbTypeAverti; i++) {
      if (((TypeAvertissementAffichable)cmbTypeAverti.getItemAt(i)).getTypeAvertissement().getId().equals(typeAvertissement.getId())) {
        cmbTypeAverti.setSelectedIndex(i);
        break;
      }
    }
  }

 
  /**
   *
   * @return avertissement
   */
  public Avertissement renvoiAvertissement() {
    return avertissement;
  }

  /**
   * Panel description
   *
   * @return
   */
  private JPanel creeDescripPane() {
    JPanel parameterPane = new JPanel(false);
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(600, 50));

    labDescrip = new JLabel("     Description : *");
    labDescrip.setFont(titreFont);
    labDescrip.setForeground(new java.awt.Color(66, 79, 120));
    parameterPane.add(labDescrip);

    // parameterPane.add(textDescrip.ChampsTxt);
    parameterPane.add(textDescrip);

    return parameterPane;
  }

  /**
   * Panel date avertissement
   *
   * @return
   */
  private JPanel creeDateDebAvertiPane() {
    JPanel parameterPane = new JPanel(false);

    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(600, 25));

    labDateAverti = new JLabel("     Date avertissement : *");
    labDateAverti.setFont(titreFont);
    labDateAverti.setForeground(new java.awt.Color(66, 79, 120));
    parameterPane.add(labDateAverti);

    parameterPane.add(textDtAverti);

    return parameterPane;
  }

  private JPanel creeDateFinPane() {
    JPanel parameterPane = new JPanel(false);

    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(600, 25));

    labDateFin = new JLabel("     Date Fin : *");
    labDateFin.setFont(titreFont);
    labDateFin.setForeground(new java.awt.Color(66, 79, 120));

    parameterPane.add(labDateFin);
    parameterPane.add(textDtFinAverti);

    return parameterPane;
  }

 

  /**
   * Panel id chauffeur
   *
   * @return
   */
  private JPanel creeChauffeurPane() {
    JPanel parameterPane = new JPanel(false);

    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(600, 25));

    labIdChauf = new JLabel("     Id chauffeur :");
    labIdChauf.setFont(titreFont);
    labIdChauf.setForeground(new java.awt.Color(66, 79, 120));
    parameterPane.add(labIdChauf);

    parameterPane.add(cmbChauf);

    return parameterPane;
  }

  /**
   * Panel id type contrat
   *
   * @return
   */
  private JPanel creeTypeAvertissementPane() {
    JPanel parameterPane = new JPanel(false);
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(600, 25));

    labIdTypeAverti = new JLabel("     Id type avertissement :");
    labIdTypeAverti.setFont(titreFont);
    labIdTypeAverti.setForeground(new java.awt.Color(66, 79, 120));
    parameterPane.add(labIdTypeAverti);
    parameterPane.add(cmbTypeAverti);

    return parameterPane;
  }

 
  /**
   * Renvoie titre formulaire
   *
   * @return
   */
  private JPanel getTitre() {
    if (titre == null) {
      GridBagConstraints gridBagTitre = new GridBagConstraints();
      gridBagTitre.gridx = 0;
      gridBagTitre.gridy = 0;
      titres = new JLabel();
      titres.setText("  Fiche avertissement");
      titres.setFont(new java.awt.Font("Comic Sans MS", 1, 20));
      titres.setForeground(new Color(255, 255, 255));
      titre = new JPanel();
      titre.setLayout(new GridBagLayout());
      titre.setPreferredSize(new Dimension(50, 45));
      titre.setBackground(new Color(66, 79, 120));
      titre.add(titres, gridBagTitre);
    }

    return titre;
  }

  /**
   * D�finit la fen�tre et ses composants
   */
  public void affiche() {
   
      JToolBar toolBar = new JToolBar("Outils...");
      JPanel parameterPane = new JPanel(false);
      parameterPane.setLayout(new FlowLayout());
      parameterPane.setPreferredSize(new Dimension(650, 300));
     
      parameterPane.add(creeDescripPane());
      parameterPane.add(creeDateDebAvertiPane());
      parameterPane.add(creeDateFinPane());
      parameterPane.add(creeChauffeurPane());
      parameterPane.add(creeTypeAvertissementPane());

      aDialog.getContentPane().add(getTitre(), BorderLayout.NORTH);
      aDialog.getContentPane().add(parameterPane, BorderLayout.CENTER);
      aDialog.getContentPane().add(toolBar, BorderLayout.PAGE_END);

      toolBar.setBackground(new java.awt.Color(66, 79, 120));
      toolBar.add(FabricationButton("OK", CMD_OK, "OK...", this));
      toolBar.add(FabricationButton("ANNULER", CMD_CANCEL, "Annuler...", this));
     
      Point p = MainWindow.cadrePrincipal().getLocation();
      aDialog.setLocation((p.x + 450), (p.y + 200));
     
      aDialog.pack();
      aDialog.setVisible(true);
     
   
  }

  /**
   * Gestionnaire des �v�nements
   */
  public void actionPerformed(ActionEvent e) {
   
    try {
      // Restaure la couleur de fonds par d�faut.
      for (JComponent composant : Arrays.<JComponent>asList(textDescrip, textDtAverti)) {
        composant.setBackground(Color.WHITE);
        composant.setToolTipText("");
      }
    String cmd = e.getActionCommand();
    if (CMD_OK.equals(cmd)) {
     
     
      Vector<ErreurDeValidation> erreursDeValidation = new Vector<ErreurDeValidation>();
     
      if (textDescrip.getText().trim().equals("")) {
        erreursDeValidation.add(new ErreurDeValidation(textDescrip, "le champ 'description avertissement' est obligatoire."));
      }
     
      Date dateAverti;
      try {
        dateAverti = new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).parse(textDtAverti.getText());
        avertissement.setDateDebut(dateAverti);
      } catch (ParseException e1) {
       
        erreursDeValidation.add(new ErreurDeValidation(textDtAverti, "le format date est invalide' "+ gui.MotsCleProjet.DATE_FORMAT));
       
        //TaxiGuiUtil.MessageBox(MainWindow.desktop(), "Le format de date est invalide : attendu " + gui.MotsCleProjet.DATE_FORMAT, "Erreur");
      }
      if (!erreursDeValidation.isEmpty()) {
        StringBuffer erreurAffichee = new StringBuffer();
        for (ErreurDeValidation erreurDeValidation : erreursDeValidation) {
          erreurAffichee.append(erreurDeValidation.getMessageErreur());
          erreurAffichee.append("\n");
          erreurDeValidation.getComposant().setBackground(Color.RED);
          erreurDeValidation.getComposant().setToolTipText(erreurDeValidation.getMessageErreur());
        }
        TaxiGuiUtil.MessageBox(MainWindow.desktop(), erreurAffichee.toString(), "ERREUR");
       
        return;
     
      else{

      avertissement.setDescription(textDescrip.getText());
     
     
      Date dateFinAverti;
      try {
        dateFinAverti = new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).parse(textDtFinAverti.getText());
        avertissement.setDateFin(dateFinAverti);
      } catch (ParseException e1) {
        TaxiGuiUtil.MessageBox(MainWindow.desktop(), "Le format de date est invalide : attendu " + gui.MotsCleProjet.DATE_FORMAT, "Erreur");
      }
      avertissement.setChauffeur(getChauffeurSelectionne());     
      avertissement.setTypeAvertissement(getTypeAvertissementSelectionne());
     
      okFlag = true;
      aDialog.setVisible(false);
    } }
    else if (CMD_CANCEL.equals(cmd)) {
      okFlag = false;
      aDialog.setVisible(false);
    }
    }catch(Exception ex) {
      TaxiGuiUtil.MessageBox(MainWindow.desktop(), "Erreur syst�me : " + ex.getMessage(), "Erreur syst�me");
    }
  }

  /**
   * Selectionne le chauffeur
   * @return
   */
 
  private ReferenceChauffeur getChauffeurSelectionne() {
    @SuppressWarnings("unchecked")
    ChauffeurAffichable<ReferenceChauffeur> chauffeurAffichable = (ChauffeurAffichable<ReferenceChauffeur>)cmbChauf.getSelectedItem();
    return chauffeurAffichable.getChauffeur();
  }
   
 
 
  /**
   * S�lmectionne type avertissement
   * @return
   */
  private TypeAvertissement getTypeAvertissementSelectionne() {
    return ((TypeAvertissementAffichable)cmbTypeAverti.getSelectedItem()).getTypeAvertissement();
  }

  private Vector<ChauffeurAffichable<? extends IChauffeur>> getListeChauffeur() {
    Vector<ChauffeurAffichable<? extends IChauffeur>> chauffeurAffichables = new Vector<ChauffeurAffichable<? extends IChauffeur>>();
    ArrayList<ReferenceChauffeur> chauffeurs = getReferenceChauffeurDao().findAll();
    for (ReferenceChauffeur chauffeur : chauffeurs) {
      chauffeurAffichables.add(new ChauffeurAffichable<ReferenceChauffeur>(chauffeur));
    }
    return chauffeurAffichables;
  }
 
 
  private Vector<TypeAvertissementAffichable> getListeTypeAvertissement() {
    Vector<TypeAvertissementAffichable> typeAvertissementAffichables = new Vector<TypeAvertissementAffichable>();
    ArrayList<TypeAvertissement> typeAvertissement = getTypeAvertissementDao().findAll();
    for (TypeAvertissement etypeAvertissement : typeAvertissement) {
      typeAvertissementAffichables.add(new TypeAvertissementAffichable(etypeAvertissement));
    }
    return typeAvertissementAffichables;
  }
 
  /**
   * retourne l'instance de la classe MySqlReferenceChauffeurDao pour pouvoir
   *  utiliser les m�thodes de l'interface IReadOnlyDao<ReferenceChauffeur>
   * @return IReadOnlyDao<ReferenceChauffeur>
   */
  private IReadOnlyDao<ReferenceChauffeur> getReferenceChauffeurDao() {
    try {
      return GestionnaireDeStockage.getInstance().getReferenceChauffeurDao();
    } catch (ClassNotFoundException e) {
      throw new RuntimeException(e);
    } catch (InstantiationException e) {
      throw new RuntimeException(e);
    } catch (IllegalAccessException e) {
      throw new RuntimeException(e);
    }
  }
 
  /**
   * retourne l'instance de la classe MySqlTypeAvertissementDao pour pouvoir
   *  utiliser les m�thodes de l'interface IDao
   * @return IDao<TypeAvertissement>
   */
  private IDao<TypeAvertissement> getTypeAvertissementDao() {
    try {
      return GestionnaireDeStockage.getInstance().getTypeAvertissementDao();
    } catch (ClassNotFoundException e) {
      throw new RuntimeException(e);
    } catch (InstantiationException e) {
      throw new RuntimeException(e);
    } catch (IllegalAccessException e) {
      throw new RuntimeException(e);
    }
  }
}
TOP

Related Classes of gui.chauffeur.avertissement.AvertissementEditionFenetre

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.