Rev 1865 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.modeles.structure;
import java.util.Date;
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.UtilString;
import com.extjs.gxt.ui.client.data.BaseModelData;
import com.extjs.gxt.ui.client.data.ModelData;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.json.client.JSONObject;
public class Structure extends aDonnee {
private static final long serialVersionUID = -5623886668593288218L;
public static final String PREFIXE = "cs";
public static final String URL_SITE = "WEB";
public static final String URL_LOGO = "LOGO";
private BaseModelData urls = null;
private StructureAPersonneListe personnel = null;
private StructureValorisation valorisation = null;
private StructureConservation conservation = null;
public static String[] champsObligatoires = {"cs_id_structure", "csc_id_structure", "csv_id_structure"};
public Structure() {
// Constructions du tableau des urls interne
urls = new BaseModelData();
}
public Structure(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 = cle.replaceFirst("^"+getPrefixe()+"_", "");
this.set(cleObjet, a.get(cle));
}
}
}
public Structure(JSONObject institution) {
// Constructions du tableau des urls interne
urls = new BaseModelData();
// l'objet JSON est une table de hachage
Set<String> im = institution.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+"_", "");
// Sinon, nous ajoutons la clé avec une valeur vide
String valeur = "";
if (institution.get(cle).isString() != null) {
valeur = institution.get(cle).isString().stringValue();
}
if (cleObjet.equals("truk_url")) {
this.setUrl(valeur);
} else {
this.set(cleObjet, valeur);
}
}
}
}
@Override
protected String getPrefixe() {
return PREFIXE;
}
protected String[] getChampsObligatoires() {
return champsObligatoires;
}
public String getId() {
return renvoyerValeurCorrecte("id_structure");
}
public void setId(String idStructure) {
this.set("id_structure", idStructure);
}
public String getIdMere() {
return renvoyerValeurCorrecte("ce_mere");
}
public void setIdMere(String idMere) {
this.set("ce_mere", idMere);
}
public String getGuid() {
return renvoyerValeurCorrecte("guid");
}
public void setGuid(String guid) {
this.set("guid", guid);
}
public String getIdAlternatif() {
return renvoyerValeurCorrecte("truk_identifiant_alternatif");
}
public void setIdAlternatif(String idAlter) {
this.set("truk_identifiant_alternatif", idAlter);
}
public String getNom() {
return renvoyerValeurCorrecte("nom");
}
public void setNom(String nom) {
this.set("nom", nom);
}
public String getNomAlternatif() {
return renvoyerValeurCorrecte("truk_nom_alternatif");
}
public String getDescription() {
return renvoyerValeurCorrecte("description");
}
public void setDescription(String description) {
this.set("description", description);
}
public String getType() {
return renvoyerValeurCorrecte("ce_type");
}
public void setType(String type) {
this.set("ce_type", type);
}
public String getTypePrive() {
return renvoyerValeurCorrecte("ce_truk_type_prive");
}
public void setTypePrive(String typePrive) {
this.set("ce_truk_type_prive", typePrive);
}
public String getTypePublic() {
return renvoyerValeurCorrecte("ce_truk_type_public");
}
public void setTypePublic(String typePublic) {
this.set("ce_truk_type_public", typePublic);
}
public String getAdresse() {
return (String) renvoyerValeurCorrecte("adresse_01");
}
public void setAdresse(String adr) {
this.set("adresse_01", adr);
}
public String getDateFondationFormatMysql() {
return renvoyerValeurCorrecte("date_fondation");
}
public String getDateFondationFormatLong() {
String dateFormatee = "";
Date dateFondation = getDateFondation();
if (dateFondation != null) {
dateFormatee = DateTimeFormat.getLongDateFormat().format(dateFondation);
}
return dateFormatee;
}
public String getAnneOuDateFondationFormatLong() {
String dateFormatee = "";
String dateFondation = renvoyerValeurCorrecte("date_fondation");
if (!dateFondation.equals("")) {
if (dateFondation.endsWith("00-00")) {
dateFormatee = dateFondation.substring(0, 4);
} else {
Date date = DateTimeFormat.getFormat("yyyy-MM-dd").parse(dateFondation);
dateFormatee = DateTimeFormat.getLongDateFormat().format(date);
}
}
return dateFormatee;
}
public Date getDateFondation() {
Date fondationDate = null;
String fondationChaine = renvoyerValeurCorrecte("date_fondation");
if (!fondationChaine.isEmpty() && !fondationChaine.equals("0000-00-00")) {
fondationDate = DateTimeFormat.getFormat("yyyy-MM-dd").parseStrict(fondationChaine);
}
return fondationDate;
}
public String getAnneeOuDateFondation() {
String valeurDateFondation = get("date_fondation");
return getDateSouple(valeurDateFondation);
}
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 void setDateFondation(Date dateFondation) {
if (dateFondation != null) {
this.set("date_fondation", DateTimeFormat.getFormat("yyyy-MM-dd").format(dateFondation));
}
}
public void setDateFondation(String dateFondation) {
if (dateFondation != null) {
this.set("date_fondation", dateFondation);
}
}
public String getCodePostal() {
return renvoyerValeurCorrecte("code_postal");
}
public void setCodePostal(String codePostal) {
this.set("code_postal", codePostal);
}
public String getVille() {
return renvoyerValeurCorrecte("ville");
}
public void setVille(String ville) {
this.set("ville", ville);
}
public String getPays() {
return getChaineDenormaliseUnique("ce_truk_pays");
}
public void setPays(String pays) {
this.set("ce_truk_pays", pays);
}
public String getLatitude() {
return renvoyerValeurCorrecte("latitude");
}
public void setLatitude(String latitude) {
if (latitude != null) {
latitude = latitude.replace(".", ",");
}
this.set("latitude", latitude);
}
public String getLongitude() {
return renvoyerValeurCorrecte("longitude");
}
public void setLongitude(String longitude) {
if (longitude != null) {
longitude = longitude.replace(".", ",");
}
this.set("longitude", longitude);
}
// TELEPHONE
public String getTelephone() {
return renvoyerValeurCorrecte("truk_telephone");
}
public void setTelephone(String tel) {
this.set("truk_telephone", tel);
}
// TELEPHONE FIXE
public String getTelephoneFixe() {
return getInfoDenormaliseParType(renvoyerValeurCorrecte("truk_telephone"), Personne.TELEPHONE_FIXE);
}
public void setTelephoneFixe(String fixe) {
modifierChaineDenormaliseParType("truk_telephone", Personne.TELEPHONE_FIXE, fixe);
}
//TELEPHONE FAX
public String getFax() {
return getInfoDenormaliseParType(renvoyerValeurCorrecte("truk_telephone"), Personne.TELEPHONE_FAX);
}
public void setFax(String fax) {
modifierChaineDenormaliseParType("truk_telephone", Personne.TELEPHONE_FAX, fax);
}
// COURRIEL
public String getCourriel() {
return renvoyerValeurCorrecte("courriel");
}
public void setCourriel(String courriel) {
this.set("courriel", courriel);
}
// URL
public String getUrl(String type) {
return urls.get(type);
}
public String getUrl() {
String urlsDenormalise = "";
Set<String> proprietes = urls.getProperties().keySet();
for (Iterator<String> it = proprietes.iterator(); it.hasNext();) {
String cle = it.next();
urlsDenormalise += cle+"##"+urls.get(cle)+";;";
}
urlsDenormalise = urlsDenormalise.replaceFirst(";;$", "");
return urlsDenormalise;
}
public void setUrl(String urlsDenormalise) {
if (urlsDenormalise != null && !urlsDenormalise.equals("")) {
//GWT.log(urlsDenormalise, null);
String[] tableauUrls = urlsDenormalise.split(";;");
for (int i = 0; i < tableauUrls.length; i++) {
String url = tableauUrls[i];
//GWT.log("\t"+url, null);
String[] tableauUrl = url.split("##");
if (tableauUrl.length == 2) {
//GWT.log("\t\t"+tableauUrl[0]+"-"+tableauUrl[1], null);
urls.set(tableauUrl[0], tableauUrl[1]);
}
}
}
}
public void setUrl(String type, String url) {
if (url != null) {
urls.set(type, url);
}
}
public Integer getNbrePersonne() {
if (renvoyerValeurCorrecte("nbre_personne").equals("")) {
return null;
}
return Integer.parseInt(renvoyerValeurCorrecte("nbre_personne"));
}
public void setNbrePersonne(Number nbrePersonne) {
this.set("nbre_personne", nbrePersonne != null ? nbrePersonne.intValue() : null);
}
public String getConditionAcces() {
return renvoyerValeurCorrecte("condition_acces");
}
public void setConditionAcces(String acces) {
this.set("condition_acces", acces);
}
public String getConditionUsage() {
return renvoyerValeurCorrecte("condition_usage");
}
public void setConditionUsage(String usage) {
this.set("condition_usage", usage);
}
public StructureAPersonneListe getPersonnel() {
return personnel;
}
public void setPersonnel(StructureAPersonneListe personnelAStocker) {
personnel = personnelAStocker;
}
public StructureValorisation getValorisation() {
return valorisation;
}
public void setValorisation(StructureValorisation valorisationAStocker) {
valorisation = valorisationAStocker;
}
public StructureConservation getConservation() {
return conservation;
}
public void setConservation(StructureConservation conservationAStocker) {
conservation = conservationAStocker;
}
public String toString() {
String sortie = "";
// Champs du BaseModelData
Set<String> proprietes = this.getProperties().keySet();
for (Iterator<String> it = proprietes.iterator(); it.hasNext();) {
String cle = it.next();
sortie += cle+" : "+this.get(cle)+"\n";
}
// Champs spéciaux
sortie += getUrl();
return sortie;
}
}