Subversion Repositories eFlore/Applications.coel

Rev

Rev 1905 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.client;

import com.extjs.gxt.ui.client.GXT;
import com.extjs.gxt.ui.client.state.StateManager;
import com.extjs.gxt.ui.client.state.Provider;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;

public class Coel implements EntryPoint {

        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();
                        }
                });*/
                
                // Fermeture du panneau de chargement de l'appli
                GXT.hideLoadingPanel("loading");
                
                // Création du médiateur
                new Mediateur();

                // Gestionnaire d'état : remplacement du CookieProvider qui pose 400 000 000 de cookies
                // moisis jusqu'à dépasser la taille max de l'entête HTTP - encore un truc inventé par
                // un génie - par un faux provider qui ne fait rien
                Provider jAimeBienLesCourgettes = new Provider() {
                        @Override
                        protected void setValue(String name, String value) {
                                Coel.LogVersFirebug("miam");
                        }
                        @Override
                        protected String getValue(String name) {
                                Coel.LogVersFirebug("burp");
                                return null;
                        }
                        @Override
                        protected void clearKey(String name) {
                                Coel.LogVersFirebug("prout");
                        }
                };
                StateManager.get().setProvider(jAimeBienLesCourgettes);
                
                // Si activation du mode débug
                if (Mediateur.DEBUG) {
                        System.out.println("");
                        System.out.println("-------------------------------------------------------------------");
                        System.out.println("");
                }
        }
        
        /*private String buildStackTrace(Throwable t, String log) {
            if (t != null) {
                     log += t.getClass().toString();
                     log += t.getMessage();
                     //
                     StackTraceElement[] stackTrace = t.getStackTrace();
                     if (stackTrace != null) {
                         StringBuffer trace = new StringBuffer();
                    
                             for (int i = 0; i < stackTrace.length; i++) {
                                 trace.append(stackTrace[i].getClassName() + "." + stackTrace[i].getMethodName() + "("
                                                 + stackTrace[i].getFileName() + ":" + stackTrace[i].getLineNumber());
                             }
                    
                             log += trace.toString();
                     }
                     //
                     Throwable cause = t.getCause();
                     if (cause != null && cause != t) {
                         log += buildStackTrace(cause, "CausedBy:\n");
                     }
            }
            return log;
        }*/

        public static native void  LogVersFirebug(Object o) /*-{
                if (!!($wnd.console && $wnd.console.log)) {
                        console.log(o);
                }
        }-*/;

        /**
         * Envoie la trace de pile d'une exception dans FeuInsecte histoire de savoir un peu ce
         * qui se passe sans avoir besoin d'installer un plugin tout fané qui existe même plus
         */
        public static void traceDePile(Exception e) {
                String cacaDePoulet = "";
                for (StackTraceElement element : e.getStackTrace()) {
                    cacaDePoulet += " " + element + "\n";
                }
                Coel.LogVersFirebug(cacaDePoulet);
        }
}