Subversion Repositories eFlore/Applications.del

Rev

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

package org.tela_botanica.del.client.utils;

import org.tela_botanica.del.client.i18n.I18n;

import com.google.gwt.i18n.client.NumberFormat;
import com.google.gwt.user.client.Window;

public class StringUtils {
        
        public static boolean checkStringNotNull(String s){
                if(s!=null&&!s.equals("")){
                        return true;
                }
                return false;
        }
        
        public static String normaliser(String mot) {
                
                mot = mot.toLowerCase().trim().replace(" ", "");
                
                // Le manque de support des librairies standard java
                // nous oblige à utiliser cette méthode un peu batarde
                char[] accents = {'à','á','â','ã','ä','ç','è','é','ê','ë','ì','í','î','ï','ñ','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ','À','Á','Â','Ã','Ä','Ç','È','É','Ê','Ë', 'Ì','Í','Î','Ï','Ñ','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý'};
                char[] sansAccents = {'a','a','a','a','a','c', 'e','e','e','e','i','i','i','i','n','o','o','o','o','o','u','u','u','u', 'y','y','A','A','A','A','A','C','E','E','E','E','I','I','I','I','N','O','O','O','O','O','U','U','U','U','Y'};
        
                for (int i = 0; i < accents.length; i++) {
                        mot = mot.replace(accents[i], sansAccents[i]);
                }
        
                return mot;
        }
        
        public static native void logVersConsole(Object o) /*-{
                if(!!($wnd.console && $wnd.console.log)) {
                        $wnd.console.log(o);
                }
        }-*/;
        
        public static String formaterNombre(double valeur, int decimales) {
            StringBuilder patternNb = new StringBuilder(
                    (decimales <= 0) ? "" : ".");
            for (int i = 0; i < decimales; i++) {
                patternNb.append('0');
            }
            
            if(valeur == 0) {
                patternNb.insert(0, 0);
            }
            
            return NumberFormat.getFormat(patternNb.toString()).format(valeur);
        }
        
        public static String getCorrespondanceChaineEvenementObs(String evenement) {
                String trad = "";
                
                // Arghhhh pourquoi on ne peut pas faire de switch sur une string !!!!!!
                // arggh arrrghghhhhhh
                if(evenement.equals("nouveau_vote")) {
                        trad = I18n.getVocabulary().nouveauVote();
                }
                
                if(evenement.equals("nouveau_commentaire")) {
                        trad = I18n.getVocabulary().nouveauCommentaire();
                }
                        
                if(evenement.equals("nouvelle_observation")) {
                        trad = I18n.getVocabulary().nouvelleObservation();
                }
                
                if(evenement.equals("nouveau_commentaire_vous_a_obs_autre")) {
                        trad = I18n.getVocabulary().nouveauCommentaireVousAObsAutre();
                }
                
                if(evenement.equals("nouveau_commentaire_autre_sur_obs_vous")) {
                        trad = I18n.getVocabulary().nouveauCommentaireAutreSurObsVous();
                }
                
                if(evenement.equals("nouvelle_proposition_vous_a_obs_autre")) {
                        trad = I18n.getVocabulary().nouvellePropositionVousAObsAutre();
                }
                
                if(evenement.equals("nouvelle_proposition_autre_sur_obs_vous")) {
                        trad = I18n.getVocabulary().nouvellePropositionAutreSurObsVous();
                }
                
                if(evenement.equals("nouveau_vote_vous_a_com_autre")) {
                        trad = I18n.getVocabulary().nouveauVoteVousAComAutre();
                }
                
                if(evenement.equals("nouveau_vote_autre_sur_com_vous")) {
                        trad = I18n.getVocabulary().nouveauVoteAutreSurComVous();
                }
                
                if(evenement.equals("nouvelle_validation_vous_a_prop_autre")) {
                        trad = I18n.getVocabulary().nouvelleValidationVousAPropAutre();
                }
                
                if(evenement.equals("nouvelle_validation_autre_sur_prop_vous")) {
                        trad = I18n.getVocabulary().nouvelleValidationAutreAPropVous();
                }
                
                if(evenement.equals("nouveau_vote_autre_sur_com_autre_obs_vous")) {
                        trad = I18n.getVocabulary().nouveauVoteAutreSurComAutreObsVous();
                }
                
                if(evenement.equals("nouvelle_reponse_autre_sur_commentaire_vous")) {
                        trad = I18n.getVocabulary().nouvelleReponseAutreSurCommentaireVous();
                }
                
                if(evenement.equals("nouvelle_reponse_autre_sur_proposition_vous")) {
                        trad = I18n.getVocabulary().nouvelleReponseAutreSurPropositionVous();
                }
                
                return trad;
        }
        
        public static String getClasseEvenementObs(String evenement) {
                String classeEvt = "";
                if(evenement.equals("nouveau_commentaire_vous_a_obs_autre") ||
                evenement.equals("nouveau_commentaire_autre_sur_obs_vous") ||
                evenement.equals("nouvelle_reponse_autre_sur_commentaire_vous") ||
                evenement.equals("nouvelle_reponse_autre_sur_proposition_vous")) {
                        classeEvt = "evtObsCitation";
                } else {
                        classeEvt = "evtObsAction";
                }
                return classeEvt;
        }
        
        /**
         * Puts ellipses in input strings that are longer than than maxCharacters. Shorter strings or
         * null is returned unchanged.
         * @param input the input string that may be subjected to shortening
         * @param maxCharacters the maximum characters that are acceptable for the unshortended string. Must be at least 3, otherwise a string with ellipses is too long already.
         * @param the number of characters that should appear after the ellipsis (0 or larger) 
         */
        public static String ellipsize(String input, int maxCharacters, int charactersAfterEllipsis) {
          if (input == null || input.length() < maxCharacters) {
            return input;
          }
          return input.substring(0, maxCharacters - 3 - charactersAfterEllipsis) + "..." + input.substring(input.length() - charactersAfterEllipsis);
        }
}