Package gui.course.tarif

Source Code of gui.course.tarif.TarifCourseEditionFenetre

package gui.course.tarif;

import static gui.MotsCleProjet.*;
import static gui.util.TaxiGuiUtil.FabricationButton;
import static gui.util.TaxiGuiUtil.MessageBox;
import gui.*;
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.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Vector;

import javax.swing.*;

import modele.commun.TarifCourse;

/**
* class TarifCourseEditionFenetre
* permet de cr�er une interface graphique pour modifier et ajouter un enregistrement
* @author Kasandra
*
*/
public class TarifCourseEditionFenetre implements ActionListener{

  private JDialog aDialog;// R�f�rence � la boite de dialogue.

  private TarifCourse tarifCourse = new TarifCourse();

  static Font titreFont = new Font("Tahoma", 1, 12);
  private JLabel labDtV, labPriseChrg, labTJr, labTNuit, labT1, labT2, labHrAtt, titres;

  private JPanel titre;
  private JTextControlKey txtPriseEnChrgTJr, txtPrixSupplForfaitTNuit,
              txtTarif1, txtPrixHrAtt, txtTarif2;
  private ImageIcon ani;
  private JLabel textdateVigueur;

  protected boolean okFlag;

  public boolean OK_Button() {
    return okFlag;
  }

  /**
   * Constructeur
   */
  public TarifCourseEditionFenetre() {
    aDialog = new JDialog(MainWindow.cadrePrincipal(), "  Tarif des courses taxis...", true);

    ani = new ImageIcon(getClass().getClassLoader().getResource("images/logoCalender.jpg"));
    textdateVigueur = new JLabel();
    textdateVigueur.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(66, 79, 120), 2));
    textdateVigueur.setIcon(ani);
    textdateVigueur.setFont(titreFont);
    textdateVigueur.setForeground(new java.awt.Color(66, 79, 120));


    textdateVigueur.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())) {
              textdateVigueur.setText(DATE_ERREUR_TEXTE);
              MessageBox(MainWindow.desktop(), "DATE INVALIDE...");
          } else {
            textdateVigueur.setText(new SimpleDateFormat(DATE_FORMAT).format(strDate));
          }
        } else {
          textdateVigueur.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) {}
    });

    txtTarif1 = new JTextControlKey("", 5, IsDecimal);
    txtTarif2 = new JTextControlKey("", 5, IsDecimal);
    txtPriseEnChrgTJr = new JTextControlKey("", 5, IsDecimal);
    txtPrixHrAtt = new JTextControlKey("", 5, IsDecimal);
    txtPrixSupplForfaitTNuit = new JTextControlKey("", 5, IsDecimal);

    okFlag = false;
  }


  /**
   * initialise les donn�es
   * @param tarifCourse
   */
  public void initializeDonnee(TarifCourse tarifCourse) {
    this.tarifCourse = tarifCourse;
   
    textdateVigueur.setText(new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).format(tarifCourse.getDateVigueur()));
    txtTarif1.ChampsTxt.setText(""+tarifCourse.getPrixTarif1());
    txtTarif2.ChampsTxt.setText(""+tarifCourse.getPrixTarif2());
    txtPriseEnChrgTJr.ChampsTxt.setText(""+tarifCourse.getPrixPriseCharge());
    txtPrixHrAtt.ChampsTxt.setText(""+tarifCourse.getPrixHeureAttente());
    txtPrixSupplForfaitTNuit.ChampsTxt.setText(""+tarifCourse.getPrixForfaitNuit());

  }

  /**
   *
   * @return tarifCourse
   */
  public TarifCourse renvoiTarifCourse() {
    return tarifCourse;
  }

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

    labDtV = new JLabel("     Date tarif vigueur :");
    labDtV.setFont(titreFont);
    parameterPane.add(labDtV);
    parameterPane.add(textdateVigueur);

    return parameterPane;
  }

  /**
   * Cr�e panel prise en charge
   *
   * @return
   */
  private JPanel creePrixPriseChrgTarJrPane() {
    JPanel parameterPane = new JPanel(false);
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(450, 25));
    labTJr = new JLabel("     Prix prise en charge jour : *");
    labTJr.setFont(titreFont);

    parameterPane.add(labTJr);
    parameterPane.add(txtPriseEnChrgTJr.ChampsTxt);

    return parameterPane;
  }

  /**
   * Cr�e panel prix  tarif 1   *
   * @return
   */
  private JPanel creePrixTar1Pane() {
    JPanel parameterPane = new JPanel(false);
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(450, 25));
    labT1 = new JLabel("     Prix km tarif 1 : *");
    labT1.setFont(titreFont);

    parameterPane.add(labT1);
    parameterPane.add(txtTarif1.ChampsTxt);

    return parameterPane;
  }

  /**
   * Cr�e panel prix tarif 2
   *
   * @return
   */
  private JPanel creePrixTar2Pane() {
    JPanel parameterPane = new JPanel(false);
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(450, 25));
   
    labT1 = new JLabel("     Prix km tarif 2 : *");
    labT1.setFont(titreFont);

    parameterPane.add(labT1);
    parameterPane.add(txtTarif2.ChampsTxt);

    return parameterPane;
  }

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

    labHrAtt = new JLabel("     Prix heure attente : *");
    labHrAtt.setFont(titreFont);
    parameterPane.add(labHrAtt);

    parameterPane.add(txtPrixHrAtt.ChampsTxt);

    return parameterPane;
  }

  /**
   * Cr�e Panel supplement forfaitaire pour le suppl�ment nuit   *
   * @return
   */

  private JPanel prixSupplementForfaitCpourseNuitPane() {
    JPanel parameterPane = new JPanel(false);
    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(450, 25));
    labTNuit = new JLabel("     Suppl�ment forfait course nuit :");
    labTNuit.setFont(titreFont);

    parameterPane.add(labTNuit);
    parameterPane.add(txtPrixSupplForfaitTNuit.ChampsTxt);

    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 tarif course");
      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.setBackground(new Color(170, 207, 249));

      parameterPane.setLayout(new FlowLayout());
      parameterPane.setPreferredSize(new Dimension(600, 300));
      //parameterPane.setBorder(BorderFactory.createTitledBorder(" "));
      parameterPane.add(creeDateTarifVigueurPane());
      parameterPane.add(creePrixTar1Pane());
      parameterPane.add(creePrixTar2Pane());
      parameterPane.add(creePrixPriseChrgTarJrPane() );
      parameterPane.add(creePrixHrAttentePane());
      parameterPane.add(prixSupplementForfaitCpourseNuitPane());

      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
   */
  @SuppressWarnings("unchecked")
  public void actionPerformed(ActionEvent e) {
   
    try {
      // Restaure la couleur de fonds par d�faut.
      for (JComponent composant : Arrays.asList(textdateVigueur, txtTarif1.ChampsTxt, txtTarif2.ChampsTxt, txtPriseEnChrgTJr.ChampsTxt,txtPrixHrAtt.ChampsTxt,txtPrixSupplForfaitTNuit.ChampsTxt )) {
        composant.setBackground(Color.WHITE);
        composant.setToolTipText("");
      }
   
    String cmd = e.getActionCommand();
    if (CMD_OK.equals(cmd)) {

      Date dateVigueur;
      try {
        dateVigueur = new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).parse(textdateVigueur.getText());
        tarifCourse.setDateVigueur(dateVigueur);
      } catch (ParseException e1) {
        TaxiGuiUtil.MessageBox(MainWindow.desktop(), "Le format de date est invalide : attendu " + gui.MotsCleProjet.DATE_FORMAT, "Erreur");
      }
     
      Vector<ErreurDeValidation> erreursDeValidation = new Vector<ErreurDeValidation>();
     
      BigDecimal tarif1 = null;     
      try {
        tarif1 =new BigDecimal(txtTarif1.ChampsTxt.getText());
      }
      catch (NumberFormatException ex) {
        erreursDeValidation.add(new ErreurDeValidation(txtTarif1.ChampsTxt, "le texte introduit pour le tarif 1 n'est pas un nombre d�cimal"));
      }
     
      BigDecimal tarif2 = null;
      try {
        tarif2 =new BigDecimal(txtTarif2.ChampsTxt.getText());
      }
      catch (NumberFormatException ex) {
        erreursDeValidation.add(new ErreurDeValidation(txtTarif2.ChampsTxt, "le texte introduit pour le tarif 2 n'est pas un nombre d�cimal"));
      }
     
      BigDecimal priseEnCharge = null;
      try {
        priseEnCharge = new BigDecimal(txtPriseEnChrgTJr.ChampsTxt.getText());
      }
      catch (NumberFormatException ex) {
        erreursDeValidation.add(new ErreurDeValidation(txtPriseEnChrgTJr.ChampsTxt, "le texte introduit pour la prise en charge n'est pas un nombre d�cimal"));
      }
     
      BigDecimal heureAttente = null;
      try {
        heureAttente = new BigDecimal(txtPrixHrAtt.ChampsTxt.getText());
      }
      catch (NumberFormatException ex) {
        erreursDeValidation.add(new ErreurDeValidation(txtPrixHrAtt.ChampsTxt, "le texte introduit pour prix heure d'attente n'est pas un nombre d�cimal"));
      }
     
      BigDecimal supplementNuit = null;
      try {
        supplementNuit = new BigDecimal(txtPrixSupplForfaitTNuit.ChampsTxt.getText());
      }
      catch (NumberFormatException ex) {
        erreursDeValidation.add(new ErreurDeValidation(txtPrixSupplForfaitTNuit.ChampsTxt, "le texte introduit pour supplement nuit n'est pas un nombre d�cimal"));
      }
     
     
           
      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;
      }
       
      tarifCourse.setPrixTarif1(Double.parseDouble(txtTarif1.ChampsTxt.getText()));
      tarifCourse.setPrixTarif2(Double.parseDouble(txtTarif2.ChampsTxt.getText()));
      tarifCourse.setPrixPriseCharge(Double.parseDouble(txtPriseEnChrgTJr.ChampsTxt.getText()));
      tarifCourse.setPrixHeureAttente(Double.parseDouble(txtPrixHrAtt.ChampsTxt.getText()));
      tarifCourse.setPrixForfaitNuit(Double.parseDouble(txtPrixSupplForfaitTNuit.ChampsTxt.getText()));
     
      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");
    }
 
  }

}
TOP

Related Classes of gui.course.tarif.TarifCourseEditionFenetre

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.