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);
}
}
}