New file |
0,0 → 1,403 |
package org.tela_botanica.client.modeles.personne; |
|
import java.util.Date; |
import java.util.Iterator; |
import java.util.Map; |
import java.util.Set; |
|
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.modeles.aDonnee; |
import org.tela_botanica.client.modeles.collection.CollectionAPublication; |
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.util.Log; |
import org.tela_botanica.client.util.UtilString; |
|
import com.extjs.gxt.ui.client.data.ModelData; |
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 { |
|
private static final long serialVersionUID = -6974716696155349332L; |
|
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"; |
public static final String ETRE_DECEDE = "30745"; |
public static final String ETRE_VIVANT = "30746"; |
public static String[] champsObligatoires = {"cp_id_personne"}; |
|
private PublicationAPersonneListe publicationsLiees= null; |
|
public Personne() {} |
|
public Personne(ModelData model) { |
creerPersonne(model, false); |
} |
|
public Personne(ModelData model, boolean removePrefix) { |
creerPersonne(model, removePrefix); |
} |
|
private void creerPersonne(ModelData model, boolean removePrefix) { |
this.removePrefix = removePrefix; |
|
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 = ""; |
if (removePrefix) { |
cleObjet = cleObjet.replaceFirst("^"+PREFIXE+"_", ""); |
} |
else { |
cleObjet = cle; |
} |
this.set(cleObjet, a.get(cle)); |
} |
} |
} |
|
public Personne(JSONObject personne) { |
initialiserModele(personne); |
//Ajout du champ courriel principal |
this.setCourrielPrinc(this.getInfoDenormaliseParPosition(this.renvoyerValeurCorrecte("truk_courriel"), 1)); |
} |
|
@Override |
protected String getPrefixe() { |
return PREFIXE; |
} |
|
protected String[] getChampsObligatoires() { |
return champsObligatoires; |
} |
|
public Object obtenirValeurChamp(String nomChamp) { |
return renvoyerValeurCorrecte(nomChamp); |
} |
|
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; |
} |
|
public String getString(String nomChamp) { |
return String.valueOf(renvoyerValeurCorrecte(nomChamp)); |
} |
|
//Traitement des truks |
protected void remplacerTypeDansChaineDenormalise(String champ, String type, Object valeur) { |
if (valeur != null && !valeur.equals("")) { |
ajouterChaineDenormaliseAvecType(champ, type, valeur); |
} else { |
supprimerTypeDansChaineDenormalise(champ, type); |
} |
} |
/** |
* Ajoute un nouvel élément sans type à une chaine dénormalisée. |
* Champ de type "truk" contenant seulement des valeurs séparées par ";;". |
* Si l'élément existe déjà, il ne sera pas ajouté. |
* |
* @param champ le nom du champ dénormalisé |
* @param valeur la valeur à ajouter |
*/ |
protected void ajouterChaineDenormalise(String champ, Object valeur) { |
if (valeur instanceof String) { |
String chaineExistante = renvoyerValeurCorrecte(champ); |
if (chaineExistante.equals("")) { |
this.set(champ, valeur); |
} else { |
// Si la valeur à ajouter n'est pas déjà présente, nous l'ajoutons |
if (!chaineExistante.matches("(^|"+SEPARATEUR_VALEURS+")"+valeur+"("+SEPARATEUR_VALEURS+"|$)")) { |
this.set(champ, chaineExistante+SEPARATEUR_VALEURS+valeur); |
} |
} |
} |
} |
|
// ID PERSONNE |
public String getId() { |
Log.debug("Dans getId() Personne : "+this.toString()); |
return renvoyerValeurCorrecte("id_personne"); |
} |
public void setId(String personneId) { |
if (removePrefix) this.set("id_personne", personneId); |
else this.set(PREFIXE+"_id_personne", personneId); |
} |
|
// NOM COMPLET |
public String getNomComplet() { |
return renvoyerValeurCorrecte("fmt_nom_complet"); |
} |
public void setNomComplet(String nomComplet) { |
this.set("fmt_nom_complet", nomComplet); |
} |
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; |
} |
|
setNomComplet(UtilString.ucFirst(fmtNomComplet)); |
} |
|
// NOM |
public String getNom() { |
if (removePrefix) return renvoyerValeurCorrecte("nom"); |
else return renvoyerValeurCorrecte(PREFIXE+"_nom"); |
} |
public void setNom(String nom) { |
if (removePrefix) set("nom", nom); |
else set(PREFIXE+"_nom", nom); |
} |
|
// PRÉNOM |
public String getPrenom() { |
if (removePrefix) return renvoyerValeurCorrecte("prenom"); |
else return renvoyerValeurCorrecte(PREFIXE+"_prenom"); |
} |
public void setPrenom(String prenom) { |
if (removePrefix) set("prenom", prenom); |
else set(PREFIXE+"_prenom", prenom); |
} |
|
// 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"); |
} |
|
// NAISSANCE DATE |
public String getNaissanceDate() { |
String dateNaiss = ""; |
dateNaiss = get("naissance_date"); |
if (UtilString.isEmpty(dateNaiss)||dateNaiss.equals("0000-00-00")) { |
dateNaiss = Mediateur.i18nC.inconnue(); |
} |
return dateNaiss; |
} |
|
public String getDateSouple(String date) { |
String valeurDate = date; |
|
String jour = ""; |
String mois = ""; |
String annee = ""; |
|
// pas de date dans la BD |
if (UtilString.isEmpty(valeurDate) || valeurDate.equals("0000-00-00")) { |
valeurDate = ""; |
|
// YYYY |
} else if (valeurDate.endsWith("00-00")) { |
valeurDate = valeurDate.substring(0, 4); |
if (valeurDate.matches("\\d{4}")) { |
jour = ""; |
mois = ""; |
annee = valeurDate.substring(0,4); |
valeurDate = annee; |
} |
|
// YYYY-MM |
} else if (valeurDate.endsWith("-00")) { |
valeurDate = valeurDate.substring(0, 7); |
if (valeurDate.matches("\\d{4}-\\d{2}")) { |
jour = ""; |
mois = valeurDate.substring(5,7); |
annee = valeurDate.substring(0,4); |
valeurDate = mois+"/"+annee; |
} |
} |
|
// YYYY-MM-DD |
else if (valeurDate.matches("\\d{4}-\\d{2}-\\d{2}")) { |
Date objetDate = DateTimeFormat.getFormat("yyyy-MM-dd").parse(valeurDate); |
DateTimeFormat fmt = DateTimeFormat.getFormat("dd/MM/yyyy"); |
valeurDate = fmt.format(objetDate); |
} |
|
return valeurDate; |
} |
|
public String getAnneeOuDateNaiss() { |
String valeurDateNaissance = get("naissance_date"); |
return getDateSouple(valeurDateNaissance); |
} |
|
public void setNaissanceDate(Date naissanceDate) { |
if (naissanceDate != null) { |
this.set("naissance_date", naissanceDate); |
} else { |
this.set("naissance_date", null); |
} |
} |
|
// NAISSANCE LIEU |
public String getNaissanceLieu() { |
return renvoyerValeurCorrecte("naissance_lieu"); |
} |
public void setNaissanceLieu(String naissanceLieu) { |
this.set("naissance_lieu", naissanceLieu); |
} |
|
// DÉCÉS |
public boolean estDecedee() { |
String ceDeces = getDeces(); |
if (ceDeces.isEmpty() || ceDeces.equals(ETRE_DECEDE)) { |
return true; |
} else { |
return false; |
} |
} |
|
public String getDeces() { |
return renvoyerValeurCorrecte("ce_deces"); |
} |
|
public String getAnneeOuDateDeces() { |
String valeurDateDeces = get("deces_date"); |
return getDateSouple(valeurDateDeces); |
} |
|
public void setDeces(String deces) { |
set("ce_deces", deces); |
} |
|
public void setDeces(Date decesDate, String lieuDeces) { |
set("ce_deces", ETRE_DECEDE); |
setDecesDate(decesDate); |
setDecesLieu(lieuDeces); |
} |
public void setNonDecedee() { |
set("ce_deces", ETRE_VIVANT); |
setDecesDate(null); |
setDecesLieu(""); |
} |
|
// DÉCÉS DATE |
public String getDecesDate() { |
String dateDeces = renvoyerValeurCorrecte("deces_date"); |
if (UtilString.isEmpty(dateDeces) || dateDeces.equals("0000-00-00")) { |
dateDeces = Mediateur.i18nC.inconnue(); |
} |
return dateDeces; |
} |
|
public void setDecesDate(Date decesDate) { |
if (decesDate != null) { |
this.set("deces_date", DateTimeFormat.getFormat("yyyy-MM-dd").format(decesDate)); |
} else { |
this.set("deces_date", ""); |
} |
} |
|
// DÉCÉS LIEU |
public String getDecesLieu() { |
return renvoyerValeurCorrecte("deces_lieu"); |
} |
public void setDecesLieu(String decesLieu) { |
this.set("deces_lieu", decesLieu); |
} |
|
// PARAMÊTRE |
public String getParametre() { |
return renvoyerValeurCorrecte("parametre"); |
} |
public void setParametre(String parametre) { |
this.set("parametre", parametre); |
} |
|
public void setCourrielPrinc(String courriel) { |
this.set("_courriel_princ_", courriel); |
} |
|
public String getCourrielPrinc() { |
return (String) this.get("_courriel_princ_"); |
} |
|
// PUBLICATIONS LIÉES |
public PublicationAPersonneListe getPublicationsLiees() { |
return publicationsLiees; |
} |
|
public void setPublicationsLiees(PublicationAPersonneListe relationsCollectionAPublication) { |
publicationsLiees = relationsCollectionAPublication; |
} |
} |
|
Property changes: |
Added: svn:mergeinfo |
Merged /branches/v1.1-aramon/src/org/tela_botanica/client/modeles/personne/Personne.java:r1383-1511 |
Merged /branches/v1.0-syrah/src/org/tela_botanica/client/modeles/personne/Personne.java:r1136-1368 |
Merged /trunk/src/org/tela_botanica/client/modeles/personne/Personne.java:r11-934,1209-1382 |