Package gui.commun.localite

Source Code of gui.commun.localite.LocaliteEditionFenetre

package gui.commun.localite;

import static gui.MotsCleProjet.CMD_CANCEL;
import static gui.MotsCleProjet.CMD_OK;
import static gui.MotsCleProjet.IsNum;
import static gui.MotsCleProjet.IsNumString;
import static gui.util.TaxiGuiUtil.FabricationButton;
import gui.*;
import gui.commun.ville.VilleAffichable;
import gui.util.ErreurDeValidation;
import gui.util.TaxiGuiUtil;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Vector;

import javax.swing.*;

import modele.chauffeur.Localite;
import modele.chauffeur.Ville;
import dao.GestionnaireDeStockage;
import dao.IDao;

/**
* class LocaliteEditionFenetre
* cr�e l'interface utilisateur qui permet d'ajouter et modifier un enregistrement
* @author Kasandra
*
*/
public class LocaliteEditionFenetre implements ActionListener {
 

 
  protected boolean okFlag;

  public boolean OK_Button() {
    return okFlag;
  }

  private JDialog aDialog;// R�f�rence � la boite de dialogue.
  private JTextControlKey textCp, textLocalite;

  private JLabel titres, labCp, labLocalite, labIdVille;

  private JComboBox cmbVille;


  private JPanel titre;
 

  private Localite localite= new Localite();

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

  /**
   * Constructeur
   */
  public LocaliteEditionFenetre() {
    aDialog = new JDialog(MainWindow.cadrePrincipal(), "  Localit�..", true);
   
    textCp = new JTextControlKey("", 5, IsNum);
    textLocalite = new JTextControlKey("", 30, IsNumString);
    cmbVille = new JComboBox(getListeVille())
    cmbVille.setForeground(new java.awt.Color(66, 79, 120));
      okFlag = false;
  }

  /**
   * Initialise les donn�es
   * @param localite
   */
  public void initializeDonnee(Localite localite) {
    this.localite = localite;
    textCp.ChampsTxt.setText(""+localite.getCp());
    textLocalite.ChampsTxt.setText(localite.getCommune());
    selectionneVille(localite.getVille());
   
  }

  /**
   * Selectionne la ville
   * @param ville
   */
  private void selectionneVille(Ville ville) {
    int nbLocalite = cmbVille.getItemCount();
    for (int i = 0; i<nbLocalite; i++) {
      if (((VilleAffichable)cmbVille.getItemAt(i)).getVille().equals(ville)) {
        cmbVille.setSelectedIndex(i);
        break;
      }
    }
  }

  /**
   *
   * @return localite
   */
  public Localite renvoiLocalite() {
    return localite;
  }

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

    labCp = new JLabel("     Code postal : *");
    labCp.setFont(titreFont);
    labCp.setForeground(new java.awt.Color(66, 79, 120));

    parameterPane.add(labCp);
    parameterPane.add(textCp.ChampsTxt);

    return parameterPane;
  }

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

    labLocalite = new JLabel("     Localit� : *");
    labLocalite.setFont(titreFont);
    labLocalite.setForeground(new java.awt.Color(66, 79, 120));

    parameterPane.add(labLocalite);
    parameterPane.add(textLocalite.ChampsTxt);

    return parameterPane;
  }

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

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

    parameterPane.add(cmbVille);

    return parameterPane;
  }


 
 

  /**
   *
   * @return titre du formulaire
   */
  private JPanel getTitre() {
    if (titre == null) {
      GridBagConstraints gridBagTitre = new GridBagConstraints();
      gridBagTitre.gridx = 0;
      gridBagTitre.gridy = 0;
      titres = new JLabel();
      titres.setText("  Fiche Localit�");
      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, ses composants et l'affiche
   */
  public void affiche(){
   
      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(500, 200));
      parameterPane.setBorder(BorderFactory.createTitledBorder(" "));
      parameterPane.add(creeCodePostalPane());
      parameterPane.add(creeNomLocalitePane());
      parameterPane.add(creeVillePane());

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

      toolBar.setBackground(new 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.asList(textCp.ChampsTxt, textLocalite.ChampsTxt)) {
        composant.setBackground(Color.WHITE);
        composant.setToolTipText("");
      }
    String cmd = e.getActionCommand();
   
    if (CMD_OK.equals(cmd)) {
     
     
      Vector<ErreurDeValidation> erreursDeValidation = new Vector<ErreurDeValidation>();
     
      if (textCp.ChampsTxt.getText().trim().equals("")) {
        erreursDeValidation.add(new ErreurDeValidation(textCp.ChampsTxt, "le champ 'CP' est obligatoire."));
      }
      try {
        localite.setCp(Integer.parseInt(textCp.ChampsTxt.getText()));
      } catch (NumberFormatException ee) {
        erreursDeValidation.add(new ErreurDeValidation(textCp.ChampsTxt, "le champ 'CP' ne contient pas un nombre valide."));
      }
           
      if (textLocalite.ChampsTxt.getText().trim().equals("")) {
        erreursDeValidation.add(new ErreurDeValidation(textLocalite.ChampsTxt, "le champ 'localit�' est obligatoire."));
      }
     
     
      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{
           
      localite.setCommune(textLocalite.ChampsTxt.getText());     
      localite.setVille(getVilleSelectionne());

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

 
  /**
   * Renvoie ville selectionn�e
   * @return
   */
  private Ville getVilleSelectionne() {
    return ((VilleAffichable)cmbVille.getSelectedItem()).getVille();
  }

  private Vector<VilleAffichable> getListeVille() {
    Vector<VilleAffichable> villeAffichables = new Vector<VilleAffichable>();
    ArrayList<Ville> ville = getVilleDao().findAll();
    for (Ville eville : ville) {
      villeAffichables.add(new VilleAffichable(eville));
    }
    return villeAffichables;
  }

  private IDao<Ville> getVilleDao() {
    try {
      return GestionnaireDeStockage.getInstance().getVilleDao();
    } 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.commun.localite.LocaliteEditionFenetre

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.