Subversion Repositories eFlore/Applications.coel

Rev

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

package org.tela_botanica.client.modeles;

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

import com.google.gwt.core.client.GWT;
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";
        
        /**
         * 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();
                        // Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet
                        String cleObjet = cle.replaceFirst("^cp_", "");
                        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);
        }

}