Subversion Repositories eFlore/Applications.cel

Rev

Rev 36 | Blame | Last modification | View Log | RSS feed

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

/*
 * EtatConnexionVue.java  : affichage information portant sur le statut de la connexion utilisateur
 * 
 * 
 * 1: Le programme affiche le statut connecte si l'utilisateur s'est connecte precedemment, sinon s'affiche le statut deconnecte
 * 2: Le programme arme les actions liees a la connection ou a la deconnection
 *    - Connection : affichage de la boite de connexion
 *    - Deconnexion : appel du service de deconnexion, et appel de la re-initialisation de l'affichage pour le nouvel identifiant utilisateur obtenu (identifiant  de session)
 */


package org.tela_botanica.client.vues;



import org.tela_botanica.client.CarnetEnLigneMediateur;
import org.tela_botanica.client.modeles.Configuration;

import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Widget;

import com.gwtext.client.core.EventCallback;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Ext;
import com.gwtext.client.core.ExtElement;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Container;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.ContainerListener;
import com.gwtext.client.widgets.event.ContainerListenerAdapter;



/**
 * Un indicateur d'etat de connexion
 * 
 * @author David Delon
 *
 */



public class EtatConnexionVue  extends Panel  {

        
        /**
         * Médiateur associé à la vue
         */
        private CarnetEnLigneMediateur carnetEnLigneMediateur = null ;  
        
  /**
   * Texte lié à la connexion.
   * 
   */
  
  private String labelEtatConnexion = null;
  
  private String liens = "<div id=\"liensExt\"><a href=\"#\" id=\"lienAide\">Aide</a>  <a href=\"#\" id=\"lienBugs\">Bugs </a></div>" ;
  
  /**
   * Booleen indiquant si utilisateur connecte 
   * 
   */
  
  private boolean connecte = false ;
  
  public EtatConnexionVue(CarnetEnLigneMediateur cm)  {
          
        carnetEnLigneMediateur=cm;

    this.setBodyBorder(false) ;
    this.setBorder(false) ;
        
        // Pas de word wrap
        labelEtatConnexion="";
        
        this.setHtml(labelEtatConnexion+liens);

        
        ajouterListeners();
        
                
        }
        
   public void ajouterListeners() {
                
           ExtElement lienAide = Ext.get("lienAide");
                if(lienAide != null) 
                {       
                        lienAide.removeAllListeners();
                        lienAide.addListener("click", new EventCallback() {
        
                                public void execute(EventObject e) {
                                        String aideUrl = Configuration.getAideBaseUrl() ;
                                        Window.open(aideUrl, "", "") ;          
                                }
                        });
                }
                else
                {
                        addListener(new ContainerListenerAdapter() {
                                public void onAfterLayout(Container c) {
                                        
                                        ExtElement lienAide = Ext.get("lienAide");
                                        if(lienAide != null) 
                                        {       
                                                lienAide.removeAllListeners();
                                                lienAide.addListener("click", new EventCallback() {
                                
                                                        public void execute(EventObject e) {
                                                                String aideUrl = Configuration.getAideBaseUrl() ;
                                                                Window.open(aideUrl, "", "") ;          
                                                        }
                                                });
                                        }
                                }
                        });
                }
                
                ExtElement lienBugs = Ext.get("lienBugs");
                if(lienBugs != null) 
                {       
                        lienBugs.removeAllListeners();
                        lienBugs.addListener("click", new EventCallback() {
        
                                public void execute(EventObject e) {
                                        String bugsURL = Configuration.getSuiviBugUrl() ;
                                        Window.open(bugsURL, "", "") ;          
                                }
                        });
                }
                else
                {
                        addListener(new ContainerListenerAdapter() {
                                public void onAfterLayout(Container c) {
                                        
                                        ExtElement lienBugs = Ext.get("lienBugs");
                                        if(lienBugs != null) 
                                        {       
                                                lienBugs.removeAllListeners();
                                                lienBugs.addListener("click", new EventCallback() {
                                
                                                        public void execute(EventObject e) {
                                                                String bugsURL = Configuration.getSuiviBugUrl() ;
                                                                Window.open(bugsURL, "", "") ;          
                                                        }
                                                });
                                        }
                                }
                        });
                }
        
        }

                


/**
 * Affichage de l'etat de connexion
 * @param text
 * @param connecte
 */
public void setEtat(String identifiant, boolean connecte) {
        
        if(connecte) {
                labelEtatConnexion = "<div id=\"etatConnexion\">"+identifiant+" <a id=\"lienDeconnexion\" href=\"#\">(deconnexion)</a>" ;
                labelEtatConnexion += "</div>" ;
                
                
                labelEtatConnexion += liens ;
                setHtml(labelEtatConnexion);

                ExtElement lienDeco = Ext.get("etatConnexion");
                if(lienDeco != null) 
                {       
                        lienDeco.addListener("click", new EventCallback() {

                                public void execute(EventObject e) {
                                        carnetEnLigneMediateur.deconnecterUtilisateur();
                                }
                                
                        });
                }
                else
                {
                        addListener(new ContainerListenerAdapter() 
                        {
                                public void onAfterLayout(Container c) 
                                {
                                        ExtElement lienDeco = Ext.get("etatConnexion");
                                        
                                        lienDeco.addListener("click", new EventCallback() {

                                                public void execute(EventObject e) {
                                                        carnetEnLigneMediateur.deconnecterUtilisateur();
                                                        setEtat(null, false);
                                                }
                                                
                                        });
                                }
                        });
                }
        }
        else
        {
                labelEtatConnexion = "<div id=\"etatConnexion\"> Utilisez ce carnet en ligne pour saisir vos observations, <a id=\"lienConnexion\" href=\"#\">identifiez-vous</a> pour les transmettre à Tela Botanica</div>";
                labelEtatConnexion += liens ;
                setHtml(labelEtatConnexion);
                ExtElement lienCo = Ext.get("etatConnexion");
                if(lienCo != null) {
                        lienCo.addListener("click", new EventCallback() {

                                public void execute(EventObject e) {
                                        
                                        carnetEnLigneMediateur.afficherDialogueConnexion();
                                }
                                
                        });
                }
                else 
                {
                        addListener(new ContainerListenerAdapter() {
                                public void onAfterLayout(Container c) {
                                        
                                        ExtElement lienCo = Ext.get("etatConnexion");
                                        
                                        lienCo.addListener("click", new EventCallback() {

                                                public void execute(EventObject e) {
                                                        
                                                        carnetEnLigneMediateur.afficherDialogueConnexion();
                                                }
                                                
                                        });
                                }
                        });
                }
        }
        
        ExtElement lienBugs = Ext.get("lienBugs");
        if(lienBugs != null) 
        {       
                lienBugs.removeAllListeners();
                lienBugs.addListener("click", new EventCallback() {

                        public void execute(EventObject e) {
                                String bugsURL = Configuration.getSuiviBugUrl() ;
                                Window.open(bugsURL, "", "") ;          
                        }
                });
        }
        else
        {
                addListener(new ContainerListenerAdapter() {
                        public void onAfterLayout(Container c) {
                                
                                ExtElement lienBugs = Ext.get("lienBugs");
                                if(lienBugs != null) 
                                {       
                                        lienBugs.removeAllListeners();
                                        lienBugs.addListener("click", new EventCallback() {
                        
                                                public void execute(EventObject e) {
                                                        String bugsURL = Configuration.getSuiviBugUrl() ;
                                                        Window.open(bugsURL, "", "") ;          
                                                }
                                        });
                                }
                        }
                });
        }
        
        ExtElement lienAide = Ext.get("lienAide");
        if(lienAide != null) 
        {       
                lienAide.removeAllListeners();
                lienAide.addListener("click", new EventCallback() {

                        public void execute(EventObject e) {
                                String aideUrl = Configuration.getAideBaseUrl() ;
                                Window.open(aideUrl, "", "") ;          
                        }
                });
        }
        else
        {
                addListener(new ContainerListenerAdapter() {
                        public void onAfterLayout(Container c) {
                                
                                ExtElement lienAide = Ext.get("lienAide");
                                if(lienAide != null) 
                                {       
                                        lienAide.removeAllListeners();
                                        lienAide.addListener("click", new EventCallback() {
                        
                                                public void execute(EventObject e) {
                                                        String aideUrl = Configuration.getAideBaseUrl() ;
                                                        Window.open(aideUrl, "", "") ;          
                                                }
                                        });
                                }
                        }
                });
        }

        this.connecte = connecte;
        
}

}


/* +--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.2  2008-04-28 13:10:44  ddelon
* Integration MyGwt
*
* Revision 1.1  2008-01-02 21:26:04  ddelon
* mise en place mygwt
*
* Revision 1.6  2007-12-22 14:48:53  ddelon
* Documentation et refactorisation
*
* Revision 1.5  2007-09-17 19:25:34  ddelon
* Documentation
*
* 
*/