Subversion Repositories eFlore/Applications.cel

Rev

Rev 173 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/**
 David Delon david.delon@clapas.net 2007
 
 
 */

/*
 * LoginDialog.java  (DialogBox)
 * 
 * Cas d'utilisation :
 * Dialogue de validation de l'identification utilisateur
 * 
 * 1 : L'utilisateur saisit son identifiant (e-mail) et son mot de passe
 * 2 : Le dialogue controle aupres du systeme distant la validite des informations saisies 
 * 3 : Le dialogue transmet au systeme local les informations d'identification
 *              3a : Le dialogue informe l'utilisateur que les elements d'identification ne sont pas valide : retour au point 1, ou passe au point 4.
 * 4 : Cloture du dialogue
 * 5 : Appel du dialogue d'importation
 */

package org.tela_botanica.client.vues;

// TODO : controle de forme sur saisie (regex integree) ...

import org.tela_botanica.client.CarnetEnLigneMediateur;

import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.KeyboardListener;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.PopupListener;
import com.google.gwt.user.client.ui.PopupPanel;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Position;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.event.KeyListener;
import com.gwtext.client.widgets.form.FormPanel;
import com.gwtext.client.widgets.form.TextField;

public class FormulaireDeConnexionVue extends DialogBox  {

        
        /**
         * Médiateur associé à la vue
         */
        
        private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;  
        
        
        /**
         * email saisi
         */
        
        private TextField ident=null;
        
        /**
         * mot de passe saisi
         */
        
        private TextField motDePasse=null;
        
        private Label saisieInvalide = null ;
        

  
  public FormulaireDeConnexionVue(CarnetEnLigneMediateur cm) {
          
          
        carnetEnLigneMediateur=cm;
        

        
    Panel panneauPrincipalDialogue=new Panel();
    
    FormPanel panneauFormulaire = new FormPanel(Position.RIGHT);
    
    
    panneauFormulaire.setTitle("Connexion");  
    
    panneauFormulaire.setWidth(350);  
    panneauFormulaire.setLabelWidth(100); 
    
    
    
/*
 *  E-Mail : Zone_saisie_email 
 *  Mot-de-passe : Zone_saisie_mot_de_passe
 *  Message d'information
 *  Bouton_Ok   Bouton_Annuler
 */ 

    /**
     * On ajoute les differents elements du formulaire 
     */
    
    // Email
    
    ident = new TextField("Identifiant", "ident", 200);  
    ident.setAllowBlank(false);  
    ident.setInvalidText("Identifiant vide ou incorrect");
    ident.setTabIndex(800);
    panneauFormulaire.add(ident);  
    
    // Mot de passe 
    
    motDePasse = new TextField("Mot de passe", "motDePasse", 200);  
    motDePasse.setAllowBlank(false); 
    ident.setInvalidText("Mot de passe vide ou incorrect");
    motDePasse.setPassword(true);
    motDePasse.setTabIndex(801);
    
    panneauFormulaire.add(motDePasse);  

    
    
    Button boutonOK = new Button("Ok");  
    boutonOK.setTabIndex(802);
    panneauFormulaire.addButton(boutonOK);
    
    Button boutonAnnuler = new Button("Annuler"); 
    boutonAnnuler.setTabIndex(803);
    panneauFormulaire.addButton(boutonAnnuler);
    
    
    // Click sur bouton de validation
    
    boutonOK.addListener(
                
    new ButtonListenerAdapter() {
        
        public void onClick(Button button, EventObject e) {
                carnetEnLigneMediateur.connecterUtilisateur(ident.getText(),motDePasse.getText());
                
        }
        
    }
    
    );
    

    // Click sur  bouton d'annulation
    
    
    boutonAnnuler.addListener(
                
    new ButtonListenerAdapter() {
        
        public void onClick(Button button, EventObject e) {
                cacher();
        }
        
    }
    
    );

        
 /**
  * Validation directe depuis un champ de saisie
  * 
  */

    // Email
    
        // gestion de la touche entrée
    ident.addKeyListener(EventObject.ENTER, new KeyListener() {

                public void onKey(int key, EventObject e) {
                        carnetEnLigneMediateur.connecterUtilisateur(ident.getText(),motDePasse.getText());
                        
                }
    });
    
    // Mot de passe
    
    motDePasse.addKeyListener(EventObject.ENTER, new KeyListener() {

                public void onKey(int key, EventObject e) {
                        carnetEnLigneMediateur.connecterUtilisateur(ident.getText(),motDePasse.getText());
                        
                }
    });         
    
    
        saisieInvalide = new Label("");
        saisieInvalide.setStyleName("saisie_invalide_invisible");
        panneauFormulaire.add(saisieInvalide);
         
         panneauPrincipalDialogue.add(panneauFormulaire);
         
     setWidget(panneauPrincipalDialogue);
         
        
  }
  
  
  /*
   * On sort sur touche echappement
   */
        
  public boolean onKeyDownPreview(char key, int modifiers) {
            switch (key) {
              case KeyboardListener.KEY_ESCAPE:
                hide();
                break;
            }

            return true;
  }

  public void afficherMessageAlerte() {

          saisieInvalide.setText("Identifiant ou mot de passe invalide");
          saisieInvalide.setStyleName("saisie_invalide");
  }


public void cacher() {
        saisieInvalide.setText("");
        saisieInvalide.setStyleName("saisie_invalide_invisible");
        hide();
        
}
  

}

/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log$
* Revision 1.1  2008-11-13 11:27:05  ddelon
* Reecriture gwt-ext
*
* Revision 1.1  2008-06-09 14:19:37  ddelon
* Initialisation observation
*
* Revision 1.10  2007-09-17 19:25:34  ddelon
* Documentation
*
* Revision 1.9  2007-05-21 21:03:44  ddelon
* nettoyage de code
*
* Revision 1.8  2007-05-21 18:14:06  ddelon
* Gestion importation releve locaux
*
* Revision 1.7  2007-05-21 11:47:30  ddelon
* meta cvs
*
* Revision 1.6  2007-05-21 11:39:48  ddelon
* meta cvs
*
* Revision 1.5  2007-05-21 11:39:12  ddelon
* meta cvs
*
* Revision 1.4  2007-05-21 11:37:35  ddelon
* meta cvs
*
* Revision 1.3  2007-05-21 11:36:51  ddelon
* meta cvs
* 
*/