Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1172 → Rev 1173

/trunk/src/org/tela_botanica/client/modeles/aDonnee.java
1,10 → 1,12
package org.tela_botanica.client.modeles;
 
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
34,8 → 36,11
public static final String ETAT_AJOUTE = "A";
public static final Object ETAT_MODIFIE = "M";
public static final String VALEUR_NULL = "NC";
public static HashMap<String, String> valeursInitiales;
protected abstract String getPrefixe();
protected abstract String[] getChampsObligatoires();
public String getDateModification() {
return (String) renvoyerValeurCorrecte("cmhl_date_modification");
60,12 → 65,13
protected void initialiserModele(JSONObject jsonObjet) {
// l'objet JSON est une table de hachage
Set<String> im = jsonObjet.keySet();
 
valeursInitiales = new HashMap<String, String>();
// 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(getPrefixe()+"_")) {
if (cle.startsWith(getPrefixe()+"_") ||cle.matches("^_.+_$")) {
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet
String cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", "");
// Sinon, nous ajoutons la clé avec une valeur vide
73,11 → 79,15
if (jsonObjet.get(cle).isString() != null) {
valeur = jsonObjet.get(cle).isString().stringValue();
}
valeursInitiales.put(cleObjet, valeur);
this.set(cleObjet, valeur);
}
}
}
}
public void setValeurInitiale(String cleObjet, String valeur) {
}
/**
* Pour éviter que l'on traite des valeurs nulles à l'affichage on passe par
* cette fonction qui retire les charactères nuls qui font planter
425,18 → 435,22
FastMap<?> proprietees = (FastMap<?>) getProperties();
Collection<String> cles = proprietees.keySet();
Iterator<String> it = cles.iterator();
System.out.println(cles);
while (it.hasNext()) {
String cle = it.next();
//Les Radio Box couplées à la fonction autobind créer des variables gxt.RadioGroup.X, qu'il ne faut pas mettre dans la requête
if (!cle.startsWith("gxt.")&&!cle.matches("^_.+_$")) {
post += getPrefixe() + "_" + cle + "=" + URL.encodeComponent(renvoyerValeurCorrecte(cle));
if (it.hasNext()) {
post += "&";
//Si, et seulement si, la valeur diffère de la valeur initiale OU la clé est dans les champs obligatoire
if (Arrays.asList(getChampsObligatoires()).contains(getPrefixe() + "_" + cle) || ((valeursInitiales.get(cle) != null&& !valeursInitiales.get(cle).equals(get(cle)))||valeursInitiales.get(cle) == null)) {
post += getPrefixe() + "_" + cle + "=" + URL.encodeComponent(renvoyerValeurCorrecte(cle));
if (it.hasNext()) {
post += "&";
}
}
}
}
return post;
}