Subversion Repositories eFlore/Applications.cel

Rev

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

package org.tela_botanica.client;

import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.modeles.objets.Configuration;
import org.tela_botanica.client.util.Util;
import org.tela_botanica.client.util.Analytics;

import com.google.gwt.ajaxloader.client.AjaxLoader;
import com.google.gwt.ajaxloader.client.AjaxLoader.AjaxLoaderOptions;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window.Location;
import com.gwtext.client.core.Ext;
import com.gwtext.client.widgets.Viewport;

/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class cel2 implements EntryPoint {

        /**
         * This is the entry point method.
         */
        @Override
        public void onModuleLoad() {    
                
                /*
                // A décommenter + compiler en detailed dans le cas d'une erreur
                // survernant uniquement sur le serveur
                GWT.setUncaughtExceptionHandler(null);
                GWT.setUncaughtExceptionHandler(new GWT.UncaughtExceptionHandler() {    
                        @Override
                        public void onUncaughtException(Throwable e) {
                                        Window.alert("uncaught: " + e.getMessage());
                                        String s = buildStackTrace(e, "RuntimeException:\n");
                                        Window.alert(s);
                                        e.printStackTrace();
                        }
                });
                */
                
                // TODO: config devrait être un singleton
                Configuration config = new Configuration();     
                
                initialiserLangue();

                // stats
                Analytics.pageVisitee();
                
                Element elem = DOM.getElementById("texte_chargement");
                elem.setInnerText(Msg.get("chargement"));

                // Chargement de l'api google maps v3 avant l'initialisation pour 
                // éviter des "complications"
                // TODO: fabriquer une classe qui cherche dans la config une liste d'api
                // à charger, les instancie et ensuite lance l'application
                AjaxLoaderOptions optAj = AjaxLoaderOptions.newInstance();
                optAj.setOtherParms("key="+Configuration.getCleGoogleMaps()+"&sensor=false");
                        
                Runnable callback = new Runnable() {
                        public void run() {
                                initialiserCel();
                        };
                };
                AjaxLoader.loadApi("maps", "3", callback, optAj);
        }
        
        private void initialiserCel() {
                CarnetEnLigneMediateur carnetEnLigneMediateur= CarnetEnLigneMediateur.Instance();
                new Viewport(carnetEnLigneMediateur.getPanneauPrincipalCarnetEnLigne()) ;
                carnetEnLigneMediateur.getEtatUtilisateur() ;

                Timer t = new Timer() {
                        @Override
                        public void run() {
                                Ext.get("loading").hide();
                        }
                };
                
                t.schedule(1500);
        }
        
        private void initialiserLangue() {
                // Si la langue est précisée dans l'url on la prend, 
                // Sinon on tente de prendre celle du systeme si elle est supportée
                // Sinon on prend celle par défaut
                // @TODO: avertissement si la langue indiquée dans l'url n'est pas la bonne
                String langueURL = Location.getParameter("lang");
                String langueSysteme = Util.obtenirCodeLangueSysteme();
                
                if (! Msg.init()) {
                        Util.LogVersFirebug("La langue par défaut \"" + Msg.getLangueDefaut() + "\" n'a pas pu être chargée");
                }       
                
                if(langueSysteme != null && !langueSysteme.equals("")) {
                        if(Msg.langueEstDisponible(langueSysteme)) {
                                Msg.setLangue(langueSysteme);
                        }
                }
                
                if (langueURL != null && ! langueURL.equals("")) {
                        Util.LogVersFirebug("Langue passée dans l'URL: " + langueURL);
                        if (! Msg.setLangue(langueURL)) {
                                Util.LogVersFirebug("La langue demandée \"" + langueURL + "\" n'a pas pu être chargée");
                        }
                }
        }
}