Subversion Repositories eFlore/Applications.coel

Rev

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

package org.tela_botanica.client.modeles.collection;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import org.tela_botanica.client.modeles.aDonnee;
import org.tela_botanica.client.modeles.personne.Personne;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.util.UtilString;

import com.extjs.gxt.ui.client.data.BaseModelData;
import com.extjs.gxt.ui.client.data.ModelData;
import com.google.gwt.json.client.JSONObject;

public class CollectionAPersonne extends aDonnee {
        
        private static final long serialVersionUID = 1L;
        
        public static final String PREFIXE = "ccap";
        private Personne personneLiee = null;
        public static String[] champsObligatoires = {"ccap_id_collection", "ccap_id_personne", "ccap_id_role"};
        
        public CollectionAPersonne() {
                initialiser(new JSONObject());
        }
        
        public CollectionAPersonne(JSONObject collectionAPersonneListe) {
                initialiser(collectionAPersonneListe);
        }
        
        public CollectionAPersonne(ModelData model)
        {               
                Map<String, Object> a = model.getProperties();

                Set<String> cles = a.keySet();
                Iterator<String> it = cles.iterator();
                while (it.hasNext()) {
                        String cle = it.next();
                        if (a.get(cle) != null) {
                                String cleObjet = "";                           
                                cleObjet = cle.replaceFirst("^"+CollectionAPersonne.PREFIXE+"_", "");
                                cleObjet = cleObjet.replaceFirst("^"+Personne.PREFIXE+"_", "");
                                this.set(cleObjet, a.get(cle));
                        }
                }

                setPersonne(new Personne(model));
                this.set("_etat_", a.get("_etat_"));
        }
        
        @Override
        protected String getPrefixe() {
                return PREFIXE;
        }
        
        protected String[] getChampsObligatoires()      {
                return champsObligatoires;
        }
        
        private void initialiser(JSONObject collectionAPersonneListe) {
                setPersonne(new Personne(collectionAPersonneListe));
                initialiserModele(collectionAPersonneListe);
                initialiserChampsPourGrille();
        }
        
        // PERSONNE
        public Personne getPersonne() {
                return personneLiee;
        }
        public void setPersonne(Personne personne) {
                personneLiee = personne;
                initialiserChampsPourGrille();
                if (personne != null) {
                        if (personne.getId() != null && !UtilString.isEmpty(personne.getId())) setIdPersonne(personne.getId());
                }
        }
        
        public void setPersonnePourGrillePaginable(Personne personne) {
                personneLiee = personne;
                initialiserChampsPourGrillePaginable();
                if (personne != null) {
                        if (personne.getId() != null && !UtilString.isEmpty(personne.getId())) setIdPersonne(personne.getId());
                }
        }
        
        private void initialiserChampsPourGrille() {
                set("_role_", getIdRole());
                set("fmt_nom_complet", getPersonne().getNomComplet());
                set("nom", getPersonne().getNom());
                set("prenom", getPersonne().getPrenom());
                set("naissance_date", getPersonne().getNaissanceDate());
                set("naissance_lieu", getPersonne().getNaissanceLieu());
                set("_deces_", getPersonne().getDeces());
                set("deces_date", getPersonne().getDecesDate());
                set("deces_lieu", getPersonne().getDecesLieu());
                set("_etat_", "");
        }
        
        public void initialiserChampsPourGrillePaginable() {
                set("ccap_id_role", getIdRole());
                set("_role_", getIdRole());
                set("cp_fmt_nom_complet", getPersonne().getNomComplet());
                set("cp_nom", getPersonne().getNom());
                set("cp_prenom", getPersonne().getPrenom());
                set("cp_naissance_date", getPersonne().getNaissanceDate());
                set("cp_naissance_lieu", getPersonne().getNaissanceLieu());
                set("_deces_", getPersonne().getDeces());
                set("cp_deces", getPersonne().getDeces());
                set("cp_deces_date", getPersonne().getDecesDate());
                set("cp_deces_lieu", getPersonne().getDecesLieu());
        }
        
        // ID
        /** Génère un identifiant de CollectionAPersonne.
         * 
         * C'est une concaténation des clés primaires de la table coel_collection_a_personne séparées par un tiret "-".
         * 
         * @return identifiant unique d'une relation "collection à personne".
         */
        public String getId() {
                String idCollection = getIdCollection();
                String idPersonne = getIdPersonne();
                String idRole = getIdRole();
                if (idCollection.equals("") && idPersonne.equals("") && idRole.equals("")) {
                        return null;
                } else {
                        return (idCollection+"-"+idPersonne+"-"+idRole);
                }
        }
        
        //+---------------------------------------------------------------------------------------------------------------+
        // CHAMPS PROVENANT de la TABLE COEL_COLLECTION_A_PERSONNE
        
        // ID COLLECTION
        public String getIdCollection() {
                return renvoyerValeurCorrecte("id_collection");
        }
        public void setIdCollection(String idCollection) {
                set("id_collection", idCollection);
        }
        
        // ID PERSONNE
        public String getIdPersonne() {
                return renvoyerValeurCorrecte("id_personne");
        }
        public void setIdPersonne(String ip) {
                set("id_personne", ip);
        }
        
        // ID RôLE
        public String getIdRole() {
                String role = renvoyerValeurCorrecte("id_role");
                if (role != null && !UtilString.isEmpty(role)) return role;
                else return renvoyerValeurCorrecte("_role_");
        }
        public void setIdRole(String ir) {
                set("id_role", ir);
        }
                        
}