Package gui.voiture.gestionvoiture

Source Code of gui.voiture.gestionvoiture.VoitureEditionFenetre

package gui.voiture.gestionvoiture;

import static gui.MotsCleProjet.CMD_CANCEL;

import static gui.MotsCleProjet.CMD_OK;
import static gui.MotsCleProjet.DATE_ERREUR_TEXTE;
import static gui.MotsCleProjet.DATE_FORMAT;
import static gui.MotsCleProjet.IsNum;
import static gui.MotsCleProjet.IsNumString;
import static gui.MotsCleProjet.IsLong;
import static gui.util.TaxiGuiUtil.FabricationButton;
import static gui.util.TaxiGuiUtil.MessageBox;
import modele.commun.Etat;
import modele.voiture.MarqueVoiture;
import modele.voiture.ModeleVoiture;
import modele.voiture.Voiture;
import dao.GestionnaireDeStockage;
import dao.IDao;
import gui.*;
import gui.commun.etat.EtatAffichable;
import gui.util.ErreurDeValidation;
import gui.util.TaxiGuiUtil;
import gui.voiture.marque.MarqueVoitureAffichable;
import gui.voiture.modele.ModeleVoitureAffichable;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JToolBar;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Point;
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.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Vector;

/**
* class VoitureEditionFenetre
* cr�e une fen�tre pour ajouter ou mpodifier un enregistrement
* @author Kasandra
*
*/
public class VoitureEditionFenetre implements ActionListener  {
  // R�f�rence � la boite de dialogue.
  ImageIcon ani;
  private JDialog aDialog;// R�f�rence � la boite de dialogue.

  private JTextControlKey textNumChassisVoit;
  private JTextControlKey textImmatricVoit;
  private JTextControlKey textNumIdentifAggloVoit;
  private JTextControlKey textNumIdentifCentralTelVoit;

  private JLabel labNumChassis;

  private JTextControlKey textKmVoit;
  private JTextControlKey textIndicKmEntretVoit;
  private JTextControlKey textIndicKmFinCircuVoit;
  private JTextField textAncVoit;

  private JLabel labImmi, labMrq, labMod, labDtPremImmatric, labIndicKmEntretVoit, labDtAch, labNumIdentifAggloVoit, labNumIdentifCentralTelVoit, labIndicKmFinCircuVoit, labKm, titres, textdateAchatVoit, textdatePremImmiVoit, labAncVoit, labEtat;
  private JPanel titre;

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

  private JComboBox cmbMarque, cmbModele, cmbEtatVoiture;

  Date current = new Date(new GregorianCalendar().getTime().getTime());
  private Date dateAchatVoiture, dateTamponAchat = null, datePremImmiVoit;
 
  public final long KILOMETRAGE_FIN_CIRCULATION =500000;


  private Voiture voiture = new Voiture();


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


  /**
   * Constructeur
   */
  public VoitureEditionFenetre() {
    aDialog = new JDialog(MainWindow.cadrePrincipal(), "  Fiche voitoire...", true);

    textImmatricVoit = new JTextControlKey("", 6, IsNumString);
    textNumChassisVoit = new JTextControlKey("", 30, IsNumString);


    ani = new ImageIcon(getClass().getClassLoader().getResource("images/logoCalender.jpg"));
    textdateAchatVoit = new JLabel();
    textdateAchatVoit.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(66, 79, 120), 2));
    textdateAchatVoit.setIcon(ani);
    textdateAchatVoit.setFont(titreFont);
    textdateAchatVoit.setForeground(new java.awt.Color(66, 79, 120));
    textdateAchatVoit.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 strDate = fen.retourDate();
          if ( strDate.after(new Date())) {
              MessageBox(MainWindow.desktop(), "DATE INVALIDE...");
          } else         
          textdateAchatVoit.setText(new SimpleDateFormat(DATE_FORMAT).format(strDate));

        } else {
          textdateAchatVoit.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) {}
    });



    textdatePremImmiVoit = new JLabel();
    textdatePremImmiVoit.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(66, 79, 120), 2));
    textdatePremImmiVoit.setIcon(ani);
    textdatePremImmiVoit.setForeground(new java.awt.Color(66, 79, 120));
    textdatePremImmiVoit.addMouseListener(new MouseListener() {
      public void mouseClicked(MouseEvent e) {
       
        DateCalendar fen = new DateCalendar(MainWindow.cadrePrincipal(), DateCalendar.Mode.DATE_SEULEMENT);
        fen.affiche();
        if (fen.okFlag) {
          Date strDate = fen.retourDate();
         
          if ( strDate.after(new Date()) ) {
              MessageBox(MainWindow.desktop(), "DATE INVALIDE...");
          }else         
          textdatePremImmiVoit.setText(new SimpleDateFormat(DATE_FORMAT).format(strDate));

        } else {
          textdatePremImmiVoit.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) {}
    });

    textNumIdentifAggloVoit = new JTextControlKey("", 10, IsNum);
    textNumIdentifCentralTelVoit = new JTextControlKey("", 10, IsNum);
    textKmVoit = new JTextControlKey("", 10, IsNum);

    textIndicKmFinCircuVoit = new JTextControlKey(KILOMETRAGE_FIN_CIRCULATION+"", 10, IsLong);

    getAncienneteVoit();

   


    cmbMarque = new JComboBox(getListeMarqueVoiture());
    cmbModele = new JComboBox(getListeModeleVoiture());
    cmbEtatVoiture = new JComboBox(getListeEtats());


      okFlag = false;
  }

  private JTextField getAncienneteVoit() {
    if (textAncVoit == null) {
      textAncVoit = new JTextField();
      textAncVoit.setFont(titreFont);
      textAncVoit.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(66, 79, 120), 2));

      textAncVoit.addMouseListener(new MouseListener() {
        public void mouseClicked(MouseEvent e) {

          int nb = 0;
          Date dtAchat, dtPremImmit;
          try {
            dtPremImmit = transformeStringToDate(RenvoiDtPremImmatricVoit());
            nb = calculeDate(dtPremImmit, current);
            textAncVoit.setText("" + nb);
          }
          catch (Exception e1) {
            e1.printStackTrace();
          }
        }
        public void mouseEntered(MouseEvent e) {}
        public void mouseExited(MouseEvent e) {}
        public void mousePressed(MouseEvent e) {}
        public void mouseReleased(MouseEvent e) {}
      });
      textAncVoit.setPreferredSize(new java.awt.Dimension(70, 20));
      textAncVoit.setEditable(false);
    }

    return textAncVoit;
  }
  /**
   * Renvoie date premi�re imatriculation voiture
   *
   * @return
   */
  public String RenvoiDtPremImmatricVoit() {
    return textdatePremImmiVoit.getText();
  }


  /**
   *
   * @param dateACalculerE
   * @param dateJour
   * @return
   */
  public int calculeDate(Date dateACalculerE, Date dateJour) {
    Calendar dtAcalcluler = new GregorianCalendar();
    Calendar cToday = new GregorianCalendar();
    dtAcalcluler.setTime(dateACalculerE);
    cToday.setTime(dateJour);

    int yearDiff = cToday.get(Calendar.YEAR) - dtAcalcluler.get(Calendar.YEAR);
    dtAcalcluler.set(Calendar.YEAR, cToday.get(Calendar.YEAR));

    if (dtAcalcluler.before(cToday)) {
      return yearDiff;
    } else {
      return Math.max(0, yearDiff - 1);
    }
  }

  /**
   * Change String en Date
   *
   * @param sDate
   * @return
   * @throws Exception
   */
  public Date transformeStringToDate(String sDate) throws Exception {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
    return sdf.parse(sDate);
  }

  /**
   * Initialise les donn�es d'une voiture
   * @param voiture
   */
  public void initializeDonnee(Voiture voiture) {
    this.voiture = voiture;
    textImmatricVoit.ChampsTxt.setText(voiture.getNumeroImmatriculation());
    textNumChassisVoit.ChampsTxt.setText(voiture.getNumeroChassis());
    textdateAchatVoit.setText(new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).format(voiture.getDateAchat()));
    textdatePremImmiVoit.setText(new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).format(voiture.getDatePremiereImmatriculation()));
    textNumIdentifAggloVoit.ChampsTxt.setText(voiture.getNumuroAgglomeration()+"");
    textNumIdentifCentralTelVoit.ChampsTxt.setText(voiture.getNumCentralTel()+"");
    textKmVoit.ChampsTxt.setText(voiture.getKilometrage()+"");
    textIndicKmFinCircuVoit.ChampsTxt.setText(voiture.getKilometrageFinCirculation()+"");

    selectionneMarqueVoiture(voiture.getMarque());
    selectionneModeleVoiture(voiture.getModele());
    selectionneEtat(voiture.getEtat());
  }

  /**
   * Selectionne Etat
   * @param etat
   */
  private void selectionneEtat(Etat etat) {
    int nbEtats = cmbEtatVoiture.getItemCount();
    for (int i = 0; i<nbEtats; i++) {
      if (((EtatAffichable)cmbEtatVoiture.getItemAt(i)).getEtat().getCdeEtat().equals(etat.getCdeEtat())) {
        cmbEtatVoiture.setSelectedIndex(i);
        break;
      }
    }
  }

  /**
   * Selectionne marque voiture
   * @param marqueVoiture
   */
  private void selectionneMarqueVoiture(MarqueVoiture marqueVoiture) {
    int nbMarqueVoiture = cmbMarque.getItemCount();
    for (int i = 0; i<nbMarqueVoiture; i++) {
      if (((MarqueVoitureAffichable)cmbMarque.getItemAt(i)).getMarqueVoiture().getId().equals(marqueVoiture.getId())) {
        cmbMarque.setSelectedIndex(i);
        break;
      }
    }
  }

  /**
   * Selectionne modele voiture
   * @param modeleVoiture
   */
  private void selectionneModeleVoiture(ModeleVoiture modeleVoiture) {
    int nbModeleVoiture = cmbModele.getItemCount();
    for (int i = 0; i<nbModeleVoiture; i++) {
      if (((ModeleVoitureAffichable)cmbModele.getItemAt(i)).getModeleVoiture().getId().equals(modeleVoiture.getId())) {
        cmbModele.setSelectedIndex(i);
        break;
      }
    }
  }

  /**
   *
   * @return voiture
   */
  public Voiture renvoiVoiture() {
    return voiture;
  }

  /**
   * Cr�e panel immatriculation voiture
   *
   * @return
   */
  private JPanel immatricVoitPane() {
    JPanel parameterPane = new JPanel(false);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(500, 25));

    labImmi = new JLabel("     Immatriculation : *");
    labImmi.setFont(titreFont);
    labImmi.setForeground(new java.awt.Color(66, 79, 120));
   
    parameterPane.add(labImmi);
    parameterPane.add(textImmatricVoit.ChampsTxt);
   
    return parameterPane;
  }

  /**
   * Cr�e panel num�ro ch�ssis voiture
   *
   * @return
   */
  private JPanel numChassisVoitPane() {
    JPanel parameterPane = new JPanel(false);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(500, 25));

    labNumChassis = new JLabel("     Num�ro  de Chassis : *");
    labNumChassis.setFont(titreFont);
    labNumChassis.setForeground(new java.awt.Color(66, 79, 120));
   
    parameterPane.add(labNumChassis);
    parameterPane.add(textNumChassisVoit.ChampsTxt);
    return parameterPane;
  }

  /**
   * Cr�e panel marque voiture
   *
   * @return
   */
  private JPanel marqueVoitPane() {
    JPanel parameterPane = new JPanel(false);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(500, 25));

    labMrq = new JLabel("     Marque voiture : *");
    labMrq.setFont(titreFont);
    labMrq.setForeground(new java.awt.Color(66, 79, 120));
   
    parameterPane.add(labMrq);
    parameterPane.add(cmbMarque);
    return parameterPane;
  }

  /**
   * Cr�e panel mod�le voiture
   *
   * @return
   */
  private JPanel modeleVoitPane() {
    JPanel parameterPane = new JPanel(false);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(500, 25));

    labMod = new JLabel("     Mod�le voiture : *");
    labMod.setFont(titreFont);
    labMod.setForeground(new java.awt.Color(66, 79, 120));
   
    parameterPane.add(labMod);
    parameterPane.add(cmbModele);
    return parameterPane;
  }

  /**
   * Cr�e panel date premi�re immatriculation voiture
   *
   * @return
   */
  private JPanel datePremImmatricVoitPane() {
    JPanel parameterPane = new JPanel(false);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(500, 25));

    labDtPremImmatric = new JLabel("     Date premi�re immatriculation : *");
    labDtPremImmatric.setFont(titreFont);
    labDtPremImmatric.setForeground(new java.awt.Color(66, 79, 120));
   
    parameterPane.add(labDtPremImmatric);
    parameterPane.add(textdatePremImmiVoit);
    return parameterPane;
  }

  /**
   * Cr�e panel date achat voiture
   *
   * @return
   */
  private JPanel dateAchatVoitPane() {
    JPanel parameterPane = new JPanel(false);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(500, 25));

    labDtAch = new JLabel("     Date achat : *");
    labDtAch.setFont(titreFont);
    labDtAch.setForeground(new java.awt.Color(66, 79, 120));
   
    parameterPane.add(labDtAch);
    parameterPane.add(textdateAchatVoit);
    return parameterPane;
  }

  /**
   * Cr�e panel identification agglom�ration voiture
   *
   * @return
   */
  private JPanel numIdentifAggloVoitPane() {
    JPanel parameterPane = new JPanel(false);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(500, 25));

    labNumIdentifAggloVoit = new JLabel("     N� identification agglom�ration :");
    labNumIdentifAggloVoit.setFont(titreFont);
    labNumIdentifAggloVoit.setForeground(new java.awt.Color(66, 79, 120));
   
    parameterPane.add(labNumIdentifAggloVoit);
    parameterPane.add(textNumIdentifAggloVoit.ChampsTxt);
    return parameterPane;
  }

  /**
   * Cr�e panel identification central t�l�phonique voiture
   *
   * @return
   */
  private JPanel numIdentifCentralTelVoitPane() {
    JPanel parameterPane = new JPanel(false);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(500, 25));

    labNumIdentifCentralTelVoit = new JLabel("     Num�ro identification Central T�l :");
    labNumIdentifCentralTelVoit.setFont(titreFont);
    labNumIdentifCentralTelVoit.setForeground(new java.awt.Color(66, 79, 120));
   
    parameterPane.add(labNumIdentifCentralTelVoit);
    parameterPane.add(textNumIdentifCentralTelVoit.ChampsTxt);
   
    return parameterPane;
  }

  /**
   * Panel anciennet� voiture
   *
   * @return
   */
 

  private JPanel anciennetePane() {
    JPanel parameterPane = new JPanel(false);
    // parameterPane.setBackground(Color.WHITE);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(500, 25));

    labAncVoit = new JLabel("     Anciennet� :");
    labAncVoit.setFont(titreFont);
    labAncVoit.setForeground(new java.awt.Color(66, 79, 120));
    parameterPane.add(labAncVoit);

    parameterPane.add(getAncienneteVoit());
    return parameterPane;
  }

  /**
   * Cr�ze panel km voiture
   *
   * @return
   */
  private JPanel kmVoitPane() {
    JPanel parameterPane = new JPanel(false);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));

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

    labKm = new JLabel("     Km voiture initial : *");
    labKm.setFont(titreFont);
    labKm.setForeground(new java.awt.Color(66, 79, 120));
   
    parameterPane.add(labKm);
    parameterPane.add(textKmVoit.ChampsTxt);
   
    return parameterPane;
  }

 

  /**
   * Cr�e panel indicatif km fin circulation voiture
   *
   * @return
   */
  private JPanel indicKmFinCircuPane() {
    JPanel parameterPane = new JPanel(false);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));

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

    labIndicKmFinCircuVoit = new JLabel("     Indication Km fin circu voiture : *");
    labIndicKmFinCircuVoit.setFont(titreFont);
    labIndicKmFinCircuVoit.setForeground(new java.awt.Color(66, 79, 120));
   
    parameterPane.add(labIndicKmFinCircuVoit);   
    parameterPane.add(textIndicKmFinCircuVoit.ChampsTxt);
   
    return parameterPane;
  }

  /**
   * Panel etat voiture
   * @return
   */
  private JPanel codeEtatVoiturePane() {
    JPanel parameterPane = new JPanel(false);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(500, 25));

    labEtat = new JLabel("     Etat voiture:");
    labEtat.setFont(titreFont);
    labEtat.setForeground(new java.awt.Color(66, 79, 120));
    parameterPane.add(labEtat);

    parameterPane.add(cmbEtatVoiture);

    return parameterPane;
  }

  private JPanel paneEastPane() {

    JPanel parameterPane = new JPanel(false);
    parameterPane.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(66, 79, 120), 2));

    // parameterPane.setBackground(Color.WHITE);
    //parameterPane.setBackground(new java.awt.Color(170, 207, 249));

    parameterPane.setPreferredSize(new Dimension(550, 300));

    parameterPane.add(immatricVoitPane());
    parameterPane.add(numChassisVoitPane());

    parameterPane.add(dateAchatVoitPane());
    parameterPane.add(datePremImmatricVoitPane());

    parameterPane.add(numIdentifAggloVoitPane());
    parameterPane.add(numIdentifCentralTelVoitPane());

    return parameterPane;
  }

  /**
   * Panel sud
   *
   * @return
   */
  private JPanel paneSudPane() {

    JPanel parameterPane = new JPanel(false);
    parameterPane.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(66, 79, 120), 2));

    parameterPane.setPreferredSize(new Dimension(550, 300));
    parameterPane.add(kmVoitPane());
    parameterPane.add(indicKmFinCircuPane());

    parameterPane.add(marqueVoitPane());
    parameterPane.add(modeleVoitPane());
    parameterPane.add(codeEtatVoiturePane());

    return parameterPane;
  }





  /**
   * D�finit la fen�tre et ses composants
   */
  public void affiche() throws PrjException {
    try {
      JToolBar toolBar = new JToolBar("Outils...");

      JPanel parameterPane = new JPanel(false);
      parameterPane.setBackground(new Color(170, 207, 249));

      parameterPane.setLayout(new FlowLayout());
      parameterPane.setPreferredSize(new Dimension(1200, 400));
      parameterPane.setBorder(BorderFactory.createTitledBorder(" "));
      parameterPane.add(paneEastPane(), BorderLayout.CENTER);
      parameterPane.add(paneSudPane(), BorderLayout.WEST);

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

      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 + 150), (p.y + 170));

      aDialog.pack();
      aDialog.setVisible(true);
    } catch (NullPointerException exc) {
      throw new PrjException(exc.getMessage());
    }
  }

  /**
   * Gestionnaire des �v�nements
   */
  public void actionPerformed(ActionEvent e) {
   
   
    try {
      // Restaure la couleur de fonds par d�faut.
      for (JComponent composant : Arrays.asList(textImmatricVoit.ChampsTxt, textNumChassisVoit.ChampsTxt,textdateAchatVoit,
          textdatePremImmiVoit, textNumIdentifAggloVoit.ChampsTxt, textNumIdentifCentralTelVoit.ChampsTxt, textKmVoit.ChampsTxt
          )) {
        composant.setBackground(Color.WHITE);
        composant.setToolTipText("");
      }
    String cmd = e.getActionCommand();
    if (CMD_OK.equals(cmd)) {

      Vector<ErreurDeValidation> erreursDeValidation = new Vector<ErreurDeValidation>();
     
      if (textImmatricVoit.ChampsTxt.getText().trim().equals("")) {
        erreursDeValidation.add(new ErreurDeValidation(textImmatricVoit.ChampsTxt, " le champ 'num�ro chassis' est obligatoire"));
      }
     
      if (textNumChassisVoit.ChampsTxt.getText().trim().equals("")) {
        erreursDeValidation.add(new ErreurDeValidation(textNumChassisVoit.ChampsTxt, " le champ 'num�ro chassis' est obligatoire"));
      }
     
      Date dateAchat;
      try {
        dateAchat = new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).parse(textdateAchatVoit.getText());
        voiture.setDateAchat(dateAchat);
      } catch (ParseException e1) {
        //TaxiGuiUtil.MessageBox(MainWindow.desktop(), "Le format de date est invalide : attendu " + gui.MotsCleProjet.DATE_FORMAT, "Erreur");
        erreursDeValidation.add(new ErreurDeValidation(textdateAchatVoit, "le format date est invalide  attendu' "+ gui.MotsCleProjet.DATE_FORMAT));
       
      }

      Date datePremiereImmatric;
      try {
        datePremiereImmatric = new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).parse(textdatePremImmiVoit.getText());
        voiture.setDatePremiereImmatriculation(datePremiereImmatric);
      } catch (ParseException e1) {
        //TaxiGuiUtil.MessageBox(MainWindow.desktop(), "Le format de date est invalide : attendu " + gui.MotsCleProjet.DATE_FORMAT, "Erreur");
        erreursDeValidation.add(new ErreurDeValidation(textdatePremImmiVoit, "le format date est format invalide attendu :' "+ gui.MotsCleProjet.DATE_FORMAT));
       
      }
     
      if (textNumIdentifAggloVoit.ChampsTxt.getText().trim().equals("")) {
        erreursDeValidation.add(new ErreurDeValidation(textNumIdentifAggloVoit.ChampsTxt, "le champ 'num�ro identification agglom�ration' est obligatoire"));
      }
      try {
        Integer.parseInt(textNumIdentifAggloVoit.ChampsTxt.getText());
      } catch (NumberFormatException ex) {
        erreursDeValidation.add(new ErreurDeValidation(textNumIdentifAggloVoit.ChampsTxt, "le champ 'num�ro identification agglom�ration' n'est pas un nombre"));
      }
     
      if (textNumIdentifCentralTelVoit.ChampsTxt.getText().trim().equals("")) {
        erreursDeValidation.add(new ErreurDeValidation(textNumIdentifCentralTelVoit.ChampsTxt, "le champ 'num�ro central t�l�phonique' est obligatoire"));
      }
      try {
        Integer.parseInt(textNumIdentifCentralTelVoit.ChampsTxt.getText());
      } catch (NumberFormatException ex) {
        erreursDeValidation.add(new ErreurDeValidation(textNumIdentifCentralTelVoit.ChampsTxt, "le champ 'num�ro central t�l�phonique' n'est pas un nombre"));
      }
     
      if (textKmVoit.ChampsTxt.getText().trim().equals("")) {
        erreursDeValidation.add(new ErreurDeValidation(textKmVoit.ChampsTxt, "le champ 'km voiture initial' est obligatoire"));
      }
      try {
        Long.parseLong(textKmVoit.ChampsTxt.getText());
      } catch (NumberFormatException ex) {
        erreursDeValidation.add(new ErreurDeValidation(textKmVoit.ChampsTxt, "le champ 'km voiture initial' n'est pas un nombre"));
      }
     
     
      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{

     
      voiture.setNumeroImmatriculation(textImmatricVoit.ChampsTxt.getText());
      voiture.setNumeroChassis(textNumChassisVoit.ChampsTxt.getText());

      voiture.setNumeroAgglomeration(Integer.parseInt(textNumIdentifAggloVoit.ChampsTxt.getText()));
      voiture.setNumCentralTel(Integer.parseInt(textNumIdentifCentralTelVoit.ChampsTxt.getText()));
      voiture.setKilometrage(Long.parseLong(textKmVoit.ChampsTxt.getText()));
      voiture.setKilometrageFinCirculation(Long.parseLong(textIndicKmFinCircuVoit.ChampsTxt.getText()));
     
      voiture.setMarque(getMarqueVoitureSelectionne());
      voiture.setModele(getModeleVoitureSelectionne());
      voiture.setEtat(getEtatSelectionne());

      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");
      ex.printStackTrace();
    }
  }
  protected boolean okFlag;

  public boolean OK_Button() {
    return okFlag;
  }

  /**
   * s�lectionne �tat voiture
   * @return
   */
  private Etat getEtatSelectionne() {
    return ((EtatAffichable)cmbEtatVoiture.getSelectedItem()).getEtat();
  }

  /**
   * Selectionne marque voiture
   * @return
   */
  private MarqueVoiture getMarqueVoitureSelectionne() {
    return ((MarqueVoitureAffichable)cmbMarque.getSelectedItem()).getMarqueVoiture();
  }

  /**
   * S�lectionne mod�le voiture
   * @return
   */
  private ModeleVoiture getModeleVoitureSelectionne() {
    return ((ModeleVoitureAffichable)cmbModele.getSelectedItem()).getModeleVoiture();
  }

  /**
   *
   * @return liste �tat voiture
   */
  private Vector<EtatAffichable> getListeEtats() {
    Vector<EtatAffichable> etatsAffichables = new Vector<EtatAffichable>();
    ArrayList<Etat> etats = getEtatDao().findAll();
    for (Etat etat : etats) {
      etatsAffichables.add(new EtatAffichable(etat));
    }
    return etatsAffichables;
  }

  /**
   *
   * @return liste marque voiture
   */
  private Vector<MarqueVoitureAffichable> getListeMarqueVoiture() {
    Vector<MarqueVoitureAffichable> marqueVoitureAffichable = new Vector<MarqueVoitureAffichable>();
    ArrayList<MarqueVoiture> marqueVoiture = getMarqueVoitureDao().findAll();
    for (MarqueVoiture emarqueVoiture : marqueVoiture) {
      marqueVoitureAffichable.add(new MarqueVoitureAffichable(emarqueVoiture));
    }
    return marqueVoitureAffichable;
  }

  /**
   *
   * @return liste modele voiture
   */
  private Vector<ModeleVoitureAffichable> getListeModeleVoiture() {
    Vector<ModeleVoitureAffichable> modeleVoitureAffichable = new Vector<ModeleVoitureAffichable>();
    ArrayList<ModeleVoiture> modeleVoiture = getModeleVoitureDao().findAll();
    for (ModeleVoiture emodeleVoiture : modeleVoiture) {
      modeleVoitureAffichable.add(new ModeleVoitureAffichable(emodeleVoiture));
    }
    return modeleVoitureAffichable;
  }

  /**
   * retourne l'instance de la classe MysqlMarqueVoitureDao pour pouvoir
   *  utiliser les m�thodes de l'interface IDao
   * @return MarqueVoiture Dao
   */
  private IDao<MarqueVoiture> getMarqueVoitureDao() {
    try {
      return GestionnaireDeStockage.getInstance().getMarqueVoitureDao();
    } 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 MysqlModeleVoitureDao pour pouvoir
   *  utiliser les m�thodes de l'interface IDao
   * @return Modele de voiture Dao
   */
  private IDao<ModeleVoiture> getModeleVoitureDao() {
    try {
      return GestionnaireDeStockage.getInstance().getModeleVoitureDao();
    } 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 MysqlEtatDao pour pouvoir
   *  utiliser les m�thodes de l'interface IDao
   * @return Etat Dao
   */
  private IDao<Etat> getEtatDao() {
    try {
      return GestionnaireDeStockage.getInstance().getEtatDao();
    } 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.voiture.gestionvoiture.VoitureEditionFenetre

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.