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,11 → 435,15 |
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("^_.+_$")) { |
|
//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 += "&"; |
436,7 → 450,7 |
} |
} |
} |
|
} |
return post; |
} |
|