Subversion Repositories eFlore/Applications.coel

Rev

Rev 455 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

package org.tela_botanica.client.modeles;

import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

import com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.URL;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.json.client.JSONObject;

public class Personne extends aDonnee {

        public static final String PREFIXE = "cp";
        public static final String TELEPHONE_FIXE = "FIX";
        public static final String TELEPHONE_GSM = "GSM";
        public static final String TELEPHONE_FAX = "FAX";
        
        /**
         * Constructeur vide
         */
        public Personne() {
                
        }
        
        /**
         * Constructeur avec un objet JSON
         * 
         * @param image
         */
        public Personne(JSONObject liste) {
                // l'objet JSON est une table de hachage
                Set<String> im = liste.keySet();

                // Parcourt pour chaque clé
                for (Iterator<String> it = im.iterator(); it.hasNext();) {
                        
                        // Si elle est associée à une valeur, nous l'ajoutons
                        String cle = it.next();
                        if (cle.startsWith(PREFIXE+"_")) {
                                
                                // Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet
                                String cleObjet = cle.replaceFirst("^" + PREFIXE + "_", "");
                                if (liste.get(cle).isString() != null) {
                                        String valeur = liste.get(cle).isString().stringValue();
                                        this.set(cleObjet, valeur);
                                } else {
                                        // Sinon, nous ajoutons la clé avec une valeur vide
                                        String valeur = " ";
                                        this.set(cleObjet, valeur);
                                }
                        }
                }
                
                //Ajout du champ courriel principal
                this.set("courriel_princ", this.getInfoDenormaliseParPosition(this.renvoyerValeurCorrecte("truk_courriel"), 1));
        }
        
        // ID PERSONNE
        public String getId() {
                return renvoyerValeurCorrecte("id_personne");
        }
        
        // NOM COMPLET
        public String getNomComplet() {
                return renvoyerValeurCorrecte("fmt_nom_complet");
        }
        
        // NOM
        public String getNom() {
                return renvoyerValeurCorrecte("nom");
        }
        
        // PRÉNOM
        public String getPrenom() {
                return renvoyerValeurCorrecte("prenom");
        }
        
        public Date getDate(String nomChamp)    {
                
                String strDate = renvoyerValeurCorrecte(nomChamp);
                
                Date dateRetour = null;
                try
                {
                        if ((strDate != null) && (!strDate.equals("0000-00-00"))) {
                                dateRetour = DateTimeFormat.getFormat("yyyy-MM-dd").parseStrict(strDate);
                        }
                } catch (StringIndexOutOfBoundsException e)     {
                        GWT.log("Impossible de parser la date " + strDate, e);
                }
                return dateRetour;              
        }
        
        // TÉLÉPHONE
        public String getTelephone() {
                return renvoyerValeurCorrecte("truk_telephone");
        }
        public void setTelephone(String t) {
                this.set("truk_telephone", t);
        }
        public void ajouterTelephone(String type, Object valeur) {
                ajouterChaineDenormaliseAvecType("truk_telephone", type, valeur);
        }
        public String selectionnerTelephone(String type) {
                return getInfoDenormaliseParType(renvoyerValeurCorrecte("truk_telephone"), type);
        }
        
        // FAX
        public String getFax() {
                return renvoyerValeurCorrecte("truk_fax");
        }
        public void setFax(String f) {
                this.set("truk_fax", f);
        }
        public void ajouterFax(Object valeur) {
                ajouterChaineDenormalise("truk_fax", valeur);
        }
        public String selectionnerFax(int position) {
                return getInfoDenormaliseParPosition(renvoyerValeurCorrecte("truk_fax"), position);
        }
        
        // COURRIEL
        public String getCourriel() {
                return renvoyerValeurCorrecte("truk_courriel");
        }
        public void setCourriel(String c) {
                this.set("truk_courriel", c);
        }
        public void ajouterCourriel(String c) {
                ajouterChaineDenormalise("truk_courriel", c);
        }
        public String selectionnerCourriel(int position) {
                return getInfoDenormaliseParPosition(renvoyerValeurCorrecte("truk_courriel"), position);
        }
        
        // SPÉCIALITÉ
        public String getSpecialite() {
                return renvoyerValeurCorrecte("ce_truk_specialite");
        }
        public void setSpecialite(String s) {
                // Pas de liste pour l'instant, donc tout passe dans "Autre".
                setChaineDenormaliseUnique("ce_truk_specialite", "AUTRE", s);
        }
        public String afficherSpecialite() {
                return getChaineDenormaliseUnique("ce_truk_specialite");
        }
        
        public Object obtenirValeurChamp(String nomChamp)       {
                return renvoyerValeurCorrecte(nomChamp);
        }
        
        
        public String getString(String champ)   {
                
                return String.valueOf(renvoyerValeurCorrecte(champ));
                
        }
        
        public void setNaissanceDate(Date naissanceDate) {
                if (naissanceDate != null) {
                        this.set("naissance_date", DateTimeFormat.getFormat("yyyy-MM-dd").format(naissanceDate));
                }
        }
        
        public void setDecesDate(Date decesDate) {
                if (decesDate != null) {
                        this.set("deces_date", DateTimeFormat.getFormat("yyyy-MM-dd").format(decesDate));
                }
        }
        
        public void setFmtNomComplet(String prefixe, String suffixe)    {
                String fmtNomComplet = "";
                if ((prefixe != null)&&(!prefixe.trim().equals("")))    {
                        fmtNomComplet += prefixe + " ";
                }
                
                if ((this.getPrenom()!=null)&&(!this.getPrenom().trim().equals("")))    {
                        fmtNomComplet += this.getPrenom() + " ";
                }
                
                if ((this.getNom()!=null)&&(!this.getNom().trim().equals("")))  {
                        fmtNomComplet += this.getNom() + " ";
                }
                
                if ((suffixe!=null)&&(!suffixe.trim().equals("")))      {
                        fmtNomComplet += suffixe;
                }
                
                this.set("fmt_nom_complet", fmtNomComplet);
        }
        
        

}