Rev 2649 | Blame | 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 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();
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");
}
}
}
}