switch(idBoutonClique){   case 1 :  if (mTache.getEtat() == 0) { lMessage = "La tche \""+mTache.getNom()+"\" a bien t dmarre.";    mTache.setEtat(1) ; mTache.setDateDebutReelle(new Date()) ;   if(mTache.getDateDebutPrevue() != mTache.getDateDebutReelle()) { long ecartDate = mTache.getDateFinPrevue().getTime() + mTache.getDateDebutReelle().getTime() - mTache.getDateDebutPrevue().getTime(); mTache.setDateFinReelle(new Date(ecartDate)) ; } else { mTache.setDateFinReelle(mTache.getDateFinPrevue()) ; }  mTache.setDateDebutChrono(new Date().getTime()) ;  mCollaborateur.setTacheEnCours(mTache.getId()) ; }  if (mTache.getEtat() == 2) { lMessage = "La tche \""+mTache.getNom()+"\" a bien t redmarre.";  mTache.setEtat(1) ; mTache.setDateDebutChrono(new Date().getTime()) ;  mCollaborateur.setTacheEnCours(mTache.getId()) ; }   getRequete ().setAttribute (CConstante.PAR_MESSAGE, lMessage) ; return "ListeTacheVisu" ;   case 2 :  mTache.setListe("etat", new Integer(2)) ;    long difftps = calendrierFinChrono.getTime().getTime() - mTache.getDateDebutChrono();  int tps = (int)(difftps/(60*1000.0)); int tempsPasse = (int)mTache.getTempsPasse() + tps ; mTache.setListe("tempsPasse", new Integer(tempsPasse)) ;   double rps = mTache.getResteAPasser() - tps ;  if ( rps < 0 ) rps = 0 ; mTache.setListe("resteAPasser", new Double(rps)) ; mTache.setListe("dateFinReelle", mTache.getDateFinReelle()) ;   getRequete ().setAttribute (CConstante.PAR_TACHE, mTache) ; return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;   case 3 :  mTache.setListe("etat", new Integer(3)) ;   mTache.setListe("resteAPasser", new Double(0)) ; mTache.setListe("dateFinReelle", new Date()) ;     long difftps2 = calendrierFinChrono.getTime().getTime() - mTache.getDateDebutChrono();  int tps2 = (int)(difftps2/(60*1000.0)); tempsPasse = (int)mTache.getTempsPasse() + tps2 ; mTache.setListe("tempsPasse", new Integer(tempsPasse)) ;   getRequete ().setAttribute (CConstante.PAR_TACHE, mTache) ; return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;  default :  return "ListeTacheVisu" ;
getRequete ().setAttribute(CConstante.PAR_TYPE_TACHE, lTypeTache) ;  if (lTypeTache.equals("tache")) { switch(idBoutonClique){   case 1 :  if (mTache.getEtat() == 0) { lMessage = messages.getString("cEtatTache")+" \""+mTache.getNom()+"\" "+messages.getString("cEtatTacheDemarree");    mTache.setEtat(1) ; mTache.setDateDebutReelle(new Date()) ;   if(mTache.getDateDebutPrevue() != mTache.getDateDebutReelle()) { long ecartDate = mTache.getDateFinPrevue().getTime() + mTache.getDateDebutReelle().getTime() - mTache.getDateDebutPrevue().getTime(); mTache.setDateFinReelle(new Date(ecartDate)) ; } else { mTache.setDateFinReelle(mTache.getDateFinPrevue()) ; }  mTache.setDateDebutChrono(new Date().getTime()) ;  mCollaborateur.setTacheEnCours(mTache.getId()) ; }  if (mTache.getEtat() == 2) { lMessage = messages.getString("cEtatTache")+" \""+mTache.getNom()+"\" "+messages.getString("cEtatTacheRedemarree");  mTache.setEtat(1) ; mTache.setDateDebutChrono(new Date().getTime()) ;  mCollaborateur.setTacheEnCours(mTache.getId()) ; }  getRequete ().setAttribute (CConstante.PAR_MESSAGE, lMessage) ; return "ListeTacheVisu" ;   case 2 :  mTache.setListe("etat", new Integer(2)) ;    long difftps = calendrierFinChrono.getTime().getTime() - mTache.getDateDebutChrono();  int tps = (int)(difftps/(60*1000.0)); int tempsPasse = (int)mTache.getTempsPasse() + tps ; mTache.setListe("tempsPasse", new Integer(tempsPasse)) ;   double rps = mTache.getResteAPasser() - tps ;  if ( rps < 0 ) rps = 0 ; mTache.setListe("resteAPasser", new Double(rps)) ; mTache.setListe("dateFinReelle", mTache.getDateFinReelle()) ;   getRequete ().setAttribute (CConstante.PAR_TACHE, mTache) ; return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;  case 3 :  mTache.setListe("etat", new Integer(3)) ;   mTache.setListe("resteAPasser", new Double(0)) ; mTache.setListe("dateFinReelle", new Date()) ;     long difftps2 = calendrierFinChrono.getTime().getTime() - mTache.getDateDebutChrono();  int tps2 = (int)(difftps2/(60*1000.0)); tempsPasse = (int)mTache.getTempsPasse() + tps2 ; mTache.setListe("tempsPasse", new Integer(tempsPasse)) ;   getRequete ().setAttribute (CConstante.PAR_TACHE, mTache) ; return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;  default :  return "ListeTacheVisu" ; } } else { switch(idBoutonClique){   case 1 :  if (mTacheImprevue.getEtat() == 0) { lMessage = messages.getString("cEtatTacheImprevue")+" \""+mTacheImprevue.getNom()+"\" "+messages.getString("cEtatTacheDemarree");    mTacheImprevue.setEtat(1) ; mTacheImprevue.setDateDebutReelle(new Date()) ;   if(mTacheImprevue.getDateDebutPrevue() != mTacheImprevue.getDateDebutReelle()) { long ecartDate = mTacheImprevue.getDateFinPrevue().getTime() + mTacheImprevue.getDateDebutReelle().getTime() - mTacheImprevue.getDateDebutPrevue().getTime(); mTacheImprevue.setDateFinReelle(new Date(ecartDate)) ; } else { mTacheImprevue.setDateFinReelle(mTacheImprevue.getDateFinPrevue()) ; }  mTacheImprevue.setDateDebutChrono(new Date().getTime()) ;  mCollaborateur.setTacheEnCours(mTacheImprevue.getId()) ; }  if (mTacheImprevue.getEtat() == 2) { lMessage = messages.getString("cEtatTacheImprevue")+" \""+mTacheImprevue.getNom()+"\" "+messages.getString("cEtatTacheRedemarree");  mTacheImprevue.setEtat(1) ; mTacheImprevue.setDateDebutChrono(new Date().getTime()) ;  mCollaborateur.setTacheEnCours(mTacheImprevue.getId()) ; }  getRequete ().setAttribute (CConstante.PAR_MESSAGE, lMessage) ; return "ListeTacheVisu" ;   case 2 :  mTacheImprevue.setListe("etat", new Integer(2)) ;    long difftps = calendrierFinChrono.getTime().getTime() - mTacheImprevue.getDateDebutChrono();  int tps = (int)(difftps/(60*1000.0)); int tempsPasse = (int)mTacheImprevue.getTempsPasse() + tps ; mTacheImprevue.setListe("tempsPasse", new Integer(tempsPasse)) ;   double rps = mTacheImprevue.getResteAPasser() - tps ;  if ( rps < 0 ) rps = 0 ; mTacheImprevue.setListe("resteAPasser", new Double(rps)) ; mTacheImprevue.setListe("dateFinReelle", mTacheImprevue.getDateFinReelle()) ;   getRequete ().setAttribute (CConstante.PAR_TACHE, mTacheImprevue) ; return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;  case 3 :  mTacheImprevue.setListe("etat", new Integer(3)) ;   mTacheImprevue.setListe("resteAPasser", new Double(0)) ; mTacheImprevue.setListe("dateFinReelle", new Date()) ;     long difftps2 = calendrierFinChrono.getTime().getTime() - mTacheImprevue.getDateDebutChrono();  int tps2 = (int)(difftps2/(60*1000.0)); tempsPasse = (int)mTacheImprevue.getTempsPasse() + tps2 ; mTacheImprevue.setListe("tempsPasse", new Integer(tempsPasse)) ;   getRequete ().setAttribute (CConstante.PAR_TACHE, mTacheImprevue) ; return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;  default :  return "ListeTacheVisu" ; }
    public String traiter () throws ServletException    {        String lMessage = "" ;      try      {        Date dateFinChrono = new Date () ;        // dclaration d'un calendrier        GregorianCalendar calendrierFinChrono = new GregorianCalendar();        // initialise le calendrier  la valeur calendrierFinChrono        calendrierFinChrono.setTime(dateFinChrono);                switch(idBoutonClique){                    // cas ou on appuie sur le bouton commencer          case 1 :             // si la tache tait dans l'tat non dmarr              if (mTache.getEtat() == 0)             {                lMessage = "La tche \""+mTache.getNom()+"\" a bien t dmarre.";                // on met l etat de la tache  'commenc' et on retient la date de dbut                // on met la date de fin restime (i.e relle)  la date de fin prvue                // on retient la date courante                mTache.setEtat(1) ;                 mTache.setDateDebutReelle(new Date()) ;                                 //si la date de dbut relle est diffrente de celle prvue ; on modifie la date de fin restime                if(mTache.getDateDebutPrevue() != mTache.getDateDebutReelle())                {                  long ecartDate = mTache.getDateFinPrevue().getTime() + mTache.getDateDebutReelle().getTime() - mTache.getDateDebutPrevue().getTime();	                  mTache.setDateFinReelle(new Date(ecartDate)) ;                 }                else                {                  mTache.setDateFinReelle(mTache.getDateFinPrevue()) ;                }                                mTache.setDateDebutChrono(new Date().getTime()) ;                // Le collaborateur a maintenant une tche en cours                mCollaborateur.setTacheEnCours(mTache.getId()) ;            }               // si la tache tait dans l'tat suspendu            if (mTache.getEtat() == 2)             {              lMessage = "La tche \""+mTache.getNom()+"\" a bien t redmarre.";              // on met l etat de la tache  'commenc' et on retient la date de dbut              mTache.setEtat(1) ;               mTache.setDateDebutChrono(new Date().getTime()) ;              // Le collaborateur a maintenant une tche en cours              mCollaborateur.setTacheEnCours(mTache.getId()) ;            }             // Transmet les donnes  la JSP d'affichage.            getRequete ().setAttribute (CConstante.PAR_MESSAGE, lMessage) ;            return "ListeTacheVisu" ;                        // cas ou on appuie sur le bouton suspendre           case 2 :             // on met l etat de la tache  'suspendu'            mTache.setListe("etat", new Integer(2)) ;            // calcul du temps pass                        // temps pass = date de fin du chrono - date de dbut du chrono            long difftps = calendrierFinChrono.getTime().getTime() - mTache.getDateDebutChrono();            // conversion du temps en minutes            int tps = (int)(difftps/(60*1000.0));            int tempsPasse = (int)mTache.getTempsPasse() + tps ;            mTache.setListe("tempsPasse", new Integer(tempsPasse)) ;                        // calcul du reste  passer = Reste  passer - temps pass            double rps = mTache.getResteAPasser() - tps ;            // le reste  passer ne peut pas tre ngatif            if ( rps < 0 ) rps = 0 ;            mTache.setListe("resteAPasser", new Double(rps)) ;            mTache.setListe("dateFinReelle", mTache.getDateFinReelle()) ;                        // Transmet les donnes  la JSP d'affichage.            getRequete ().setAttribute (CConstante.PAR_TACHE, mTache) ;            return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;            // cas ou on appuie sur le bouton terminer          case 3 :              // on met l etat de la tache  'termin'            mTache.setListe("etat", new Integer(3)) ;                        // on met le reste  passer  0 et la date de fin restime  la date courante            mTache.setListe("resteAPasser", new Double(0)) ;            mTache.setListe("dateFinReelle", new Date()) ;                        // calcul du temps pass                        // temps pass = date de fin du chrono - date de dbut du chrono            long difftps2 = calendrierFinChrono.getTime().getTime() - mTache.getDateDebutChrono();            // conversion du temps en minutes            int tps2 = (int)(difftps2/(60*1000.0));            tempsPasse = (int)mTache.getTempsPasse() + tps2 ;            mTache.setListe("tempsPasse", new Integer(tempsPasse)) ;                        // Transmet les donnes  la JSP d'affichage.            getRequete ().setAttribute (CConstante.PAR_TACHE, mTache) ;            return "..\\JSP\\Tache\\TValidationRapport.jsp?pIdBoutonClique="+idBoutonClique ;                      default :             // Transmet les donnes  la JSP d'affichage.            return "ListeTacheVisu" ;        }      }      catch (Exception eException)      {        eException.printStackTrace () ;        throw new ServletException (CConstante.EXC_TRAITEMENT) ;      }      // Ferme la connexion  la base de donnes.      finally      {        try        {          getBaseDonnees ().commit () ;          getBaseDonnees ().close () ;        }        catch (PersistenceException eException)        {          eException.printStackTrace () ;          throw new ServletException (CConstante.EXC_DECONNEXION) ;        }      }    }