Package gui.charge.facture

Source Code of gui.charge.facture.FichePaiementFactureEditionFenetre

package gui.charge.facture;

import static gui.MotsCleProjet.*

;
import static gui.util.TaxiGuiUtil.FabricationButton;
import static gui.util.TaxiGuiUtil.MessageBox;
import gui.*;
import gui.charge.chargevoiture.ChargeVoitureAffichable;
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.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Vector;

import javax.swing.*;

import util.Periode;

import modele.charge.ChargeVoiture;
import modele.charge.FichePaiementFacture;
import modele.compteUser.CompteUser;
import dao.GestionnaireDeStockage;
import dao.IChargeVoitureDao;
import dao.ICompteUserDao;
import dao.IDao;

/**
* class FichePaiementFactureEditionFenetre
* Cr�e l'interface graphique qui permet d'ins�rer ou de modifier un enregistrement
* @author Kasandra
*
*/
public class FichePaiementFactureEditionFenetre implements ActionListener {
  private JDialog aDialog;// R�f�rence � la boite de dialogue.
  private JTextControlKey textDescrip;
  private JTextControlKey textMont;
 
  private JLabel  titres, textdtPaie;
  ImageIcon ani;

  private JComboBox cmbChargeVoiture;

  private JPanel titre;

  private FichePaiementFacture fichePaiementFacture = new FichePaiementFacture();

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

  protected boolean okFlag;

  public boolean OK_Button() {
    return okFlag;
  }

  /**
   * Constructeur
   */
  public FichePaiementFactureEditionFenetre() {
    aDialog = new JDialog(MainWindow.cadrePrincipal(), "  Fiche de paie facture...", true);
   
    ani = new ImageIcon(getClass().getClassLoader().getResource("images/logoCalender.jpg"));
    textdtPaie = new JLabel();
    textdtPaie.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(66, 79, 120), 2));
    textdtPaie.setIcon(ani);
    textdtPaie.setFont(titreFont);
    textdtPaie.setForeground(new java.awt.Color(66, 79, 120));
   
   
    textdtPaie.addMouseListener(new MouseListener() {
      public void mouseClicked(MouseEvent e) {
        DateCalendar fen = new DateCalendar(MainWindow.cadrePrincipal(), DateCalendar.Mode.DATE_SEULEMENT);
        fen.affiche();
        if (fen.okFlag) {
          Date date = fen.retourDate();
          if (dateValide(date)) {
            textdtPaie.setText(new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).format(date));
          } else {
            textdtPaie.setText(DATE_ERREUR_TEXTE);
            MessageBox(MainWindow.desktop(), "DATE INVALIDE...");
          }
        } else {
          textdtPaie.setText(DATE_ERREUR_TEXTE);
          MessageBox(MainWindow.desktop(), "DATE INVALIDE...");
        }
      }

      private boolean dateValide(Date date) {
        Calendar calendarFin = Calendar.getInstance();
        calendarFin.add(Calendar.DAY_OF_MONTH, 15);
        Calendar calendarDebut = Calendar.getInstance();
        calendarDebut.add(Calendar.DAY_OF_MONTH, -15);
        boolean dateValide = new Periode(calendarDebut.getTime(),calendarFin.getTime()).inclue(date);
        return dateValide;
      }

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

      textDescrip = new JTextControlKey("",30,IsNumString)
      textMont = new JTextControlKey("",30,IsDecimal);     
    
    cmbChargeVoiture = new JComboBox(getListeChargeVoiture());
      okFlag = false;
  }

  /**
   * initialise Fiche paiement facture
   * @param pays
   */
  public void initializeDonnee(FichePaiementFacture fichePaiementFacture) {
    this.fichePaiementFacture = fichePaiementFacture;
   
    textdtPaie.setText(new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).format(fichePaiementFacture.getDatePaieFacture()));
   
    textDescrip.ChampsTxt.setText(fichePaiementFacture.getLibellePaieFcature());
    textMont.ChampsTxt.setText(fichePaiementFacture.getMontantPaieFacture()+"");
   
    selectionneChargeVoiture(fichePaiementFacture.getChargeVoiture());
  }

  /**
   * Selectionne  charge voitiure
   * @param chargeVoiture
   */
  private void selectionneChargeVoiture(ChargeVoiture chargeVoiture) {
    int nbChargeVoiture = cmbChargeVoiture.getItemCount();
    for (int i = 0; i<nbChargeVoiture; i++) {
      if (((ChargeVoitureAffichable)cmbChargeVoiture.getItemAt(i)).getChargeVoiture().getId().equals(chargeVoiture.getId())) {
        cmbChargeVoiture.setSelectedIndex(i);
        break;
      }
    }
  }

  /***
   * Retourne fiche paiement facture
   * @return
   */
  public FichePaiementFacture renvoiFichePaiementFacture() {
    return fichePaiementFacture;
  }

  /**
   * Panel Montant pay�
   * @return
   */
  private JPanel creeMontantPaieFacturePane()
  {
          JPanel parameterPane = new JPanel(false);
          //parameterPane.setBackground(Color.white);
          parameterPane.setLayout(new GridLayout());
          parameterPane.setPreferredSize(new Dimension(450, 25));


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

  /**
   * Panel libell� paiement
   * @return
   */
  private JPanel creeLibellePane()
  {
          JPanel parameterPane = new JPanel(false);
          //parameterPane.setBackground(Color.white);
          parameterPane.setLayout(new GridLayout());
          parameterPane.setPreferredSize(new Dimension(450, 25));
         
          JLabel labLibelle = new JLabel("     Libell� facture : *");
          labLibelle.setFont(titreFont);
          labLibelle.setForeground(new java.awt.Color(66, 79, 120));
     
      parameterPane.add(labLibelle);
          parameterPane.add(textDescrip.ChampsTxt);
         
          return parameterPane;
  }


  /**
   * Panel charge voiture
   * @return
   */
  private JPanel creeChargeVoiturePane()
  {
          JPanel parameterPane = new JPanel(false);
          //parameterPane.setBackground(Color.white);
          parameterPane.setLayout(new GridLayout());
          parameterPane.setPreferredSize(new Dimension(450, 25));
         
          JLabel labCharge = new JLabel("     Charge voiture :");
          labCharge.setFont(titreFont);
          labCharge.setForeground(new java.awt.Color(66, 79, 120));
     
      parameterPane.add(labCharge);
      parameterPane.add(cmbChargeVoiture);
          return parameterPane;
  }
 
  /**
   * Panel date paiement
   * @return
   */
  private JPanel creeDatePaieFacturePane() {
    JPanel parameterPane = new JPanel(false);
    //parameterPane.setBackground(Color.white);

    parameterPane.setLayout(new GridLayout());
    parameterPane.setPreferredSize(new Dimension(450, 25));
   
    JLabel labDateAverti = new JLabel("     Date paie : *");
    labDateAverti.setFont(titreFont);
    labDateAverti.setForeground(new java.awt.Color(66, 79, 120));
   
    parameterPane.add(labDateAverti);
    parameterPane.add(textdtPaie);

    return parameterPane;
  }

  /**
   * 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 paie facture");
      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;
  }

  /**
   * affiche 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(600, 200));
      //parameterPane.setBorder(BorderFactory.createTitledBorder(" "));
     
      parameterPane.add(creeDatePaieFacturePane());
      parameterPane.add(creeLibellePane());
      parameterPane.add(creeMontantPaieFacturePane());     
      parameterPane.add(creeChargeVoiturePane());

      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);
    } 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.<JComponent>asList(textDescrip.ChampsTxt, textMont.ChampsTxt,textdtPaie)) {
        composant.setBackground(Color.WHITE);
        composant.setToolTipText("");
      }
   
    String cmd = e.getActionCommand();
    if (CMD_OK.equals(cmd)) {
      Vector<ErreurDeValidation> erreursDeValidation = new Vector<ErreurDeValidation>();
     

      Date datePaie = null;
      try {
        datePaie = new SimpleDateFormat(gui.MotsCleProjet.DATE_FORMAT).parse(textdtPaie.getText());
        fichePaiementFacture.setDatePaieFacture(datePaie);
      } catch (ParseException e1) {
        TaxiGuiUtil.MessageBox(MainWindow.desktop(), "Le format de date est invalide : attendu " + gui.MotsCleProjet.DATE_FORMAT, "Erreur");
      }
     
      if (datePaie.after(new Date())){
        erreursDeValidation.add(new ErreurDeValidation(textdtPaie, "Date de paiement facture' doit �tre apr�s la date syst�me"));
       
      }
     
      if (textDescrip.ChampsTxt.getText().trim().equals("")) {
        erreursDeValidation.add(new ErreurDeValidation(textDescrip.ChampsTxt, "le champ 'libell�' est obligatoire"));
      }
   
     
      if (textMont.ChampsTxt.getText().trim().equals("")) {
        erreursDeValidation.add(new ErreurDeValidation(textMont.ChampsTxt, "le champ 'montant � payer facture' est obligatoire"));
      }
      try {
        new BigDecimal(textMont.ChampsTxt.getText());
      } catch (NumberFormatException ex) {
        erreursDeValidation.add(new ErreurDeValidation(textMont.ChampsTxt, "le champ 'montant � payer' 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{     
     
      fichePaiementFacture.setLibellePaieFacture(textDescrip.ChampsTxt.getText());
      fichePaiementFacture.setMontantPaieFacture(new BigDecimal(textMont.ChampsTxt.getText()));
           
      fichePaiementFacture.setChargeVoiture(getChargeVoitureSelectionne());

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

  /**
   * Retourne charge voiture selectionn�e
   * @return
   */
  private ChargeVoiture getChargeVoitureSelectionne() {
    return ((ChargeVoitureAffichable)cmbChargeVoiture.getSelectedItem()).getChargeVoiture();
  }

  /*
  private Vector<ChargeVoitureAffichable> getListeChargeVoiture() {
    Vector<ChargeVoitureAffichable> chargeVoitureAffichable = new Vector<ChargeVoitureAffichable>();
    ArrayList<ChargeVoiture> eechargeVoiture = getChargeVoitureDao().findAll();
    for (ChargeVoiture chargeVoiture : eechargeVoiture) {
      chargeVoitureAffichable.add(new ChargeVoitureAffichable(chargeVoiture));
    }
    return chargeVoitureAffichable;
  }

  private IDao<ChargeVoiture> getChargeVoitureDao() {
    try {
      return GestionnaireDeStockage.getInstance().getChargeVoitureDao();
    } catch (ClassNotFoundException e) {
      throw new RuntimeException(e);
    } catch (InstantiationException e) {
      throw new RuntimeException(e);
    } catch (IllegalAccessException e) {
      throw new RuntimeException(e);
    }
  }
  */
 
  private Vector<ChargeVoitureAffichable> getListeChargeVoiture() {
    Vector<ChargeVoitureAffichable> chargeVoitureAffichables = new Vector<ChargeVoitureAffichable>();
    ArrayList<ChargeVoiture> chargeVoiture = getChargeVoitureDao().findAllActif();//.findAll();
    for (ChargeVoiture echargeVoitureAffichable : chargeVoiture) {
      chargeVoitureAffichables.add(new ChargeVoitureAffichable(echargeVoitureAffichable));
    }
    return chargeVoitureAffichables;
  }

  private IChargeVoitureDao getChargeVoitureDao() {
    try {
      return GestionnaireDeStockage.getInstance().getChargeVoitureDao();
    } 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.charge.facture.FichePaiementFactureEditionFenetre

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.