Subversion Repositories eFlore/Applications.coel

Rev

Rev 1042 | Rev 1257 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1042 Rev 1173
Line 1... Line 1...
1
package org.tela_botanica.client.modeles;
1
package org.tela_botanica.client.modeles;
Line 2... Line 2...
2
 
2
 
-
 
3
import java.io.Serializable;
3
import java.io.Serializable;
4
import java.util.Arrays;
4
import java.util.Collection;
5
import java.util.Collection;
5
import java.util.HashMap;
6
import java.util.HashMap;
6
import java.util.Iterator;
7
import java.util.Iterator;
-
 
8
import java.util.LinkedList;
7
import java.util.LinkedList;
9
import java.util.List;
8
import java.util.Map;
10
import java.util.Map;
9
import java.util.Set;
11
import java.util.Set;
Line 10... Line 12...
10
import java.util.TreeSet;
12
import java.util.TreeSet;
Line 32... Line 34...
32
	public static final String SEPARATEUR_VALEURS = ";;";
34
	public static final String SEPARATEUR_VALEURS = ";;";
33
	public static final String SEPARATEUR_DONNEES = "||";
35
	public static final String SEPARATEUR_DONNEES = "||";
34
	public static final String ETAT_AJOUTE = "A";
36
	public static final String ETAT_AJOUTE = "A";
35
	public static final Object ETAT_MODIFIE = "M";
37
	public static final Object ETAT_MODIFIE = "M";
36
	public static final String VALEUR_NULL = "NC";
38
	public static final String VALEUR_NULL = "NC";
-
 
39
	public static HashMap<String, String> valeursInitiales;
-
 
40
	
Line 37... Line 41...
37
	
41
	
-
 
42
	protected abstract String getPrefixe();
Line 38... Line 43...
38
	protected abstract String getPrefixe();
43
	protected abstract String[] getChampsObligatoires();
39
	
44
	
40
	public String getDateModification() {
45
	public String getDateModification() {
Line 58... Line 63...
58
	}
63
	}
Line 59... Line 64...
59
	
64
	
60
	protected void initialiserModele(JSONObject jsonObjet) {
65
	protected void initialiserModele(JSONObject jsonObjet) {
61
		// l'objet JSON est une table de hachage
66
		// l'objet JSON est une table de hachage
-
 
67
		Set<String> im = jsonObjet.keySet();
62
		Set<String> im = jsonObjet.keySet();
68
		valeursInitiales = new HashMap<String, String>();
63
 
69
		
64
		// Parcourt pour chaque clé
70
		// Parcourt pour chaque clé
65
		for (Iterator<String> it = im.iterator(); it.hasNext();) {
71
		for (Iterator<String> it = im.iterator(); it.hasNext();) {
66
			// Si elle est associée à une valeur, nous l'ajoutons
72
			// Si elle est associée à une valeur, nous l'ajoutons
67
			String cle = it.next();
73
			String cle = it.next();
68
			if (cle.startsWith(getPrefixe()+"_")) {
74
			if (cle.startsWith(getPrefixe()+"_") ||cle.matches("^_.+_$")) {
69
				// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet
75
				// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet
70
				String cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", "");
76
				String cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", "");
71
				// Sinon, nous ajoutons la clé avec une valeur vide
77
				// Sinon, nous ajoutons la clé avec une valeur vide
72
				String valeur = "";
78
				String valeur = "";
73
				if (jsonObjet.get(cle).isString() != null) {
79
				if (jsonObjet.get(cle).isString() != null) {
74
					valeur = jsonObjet.get(cle).isString().stringValue();
80
					valeur = jsonObjet.get(cle).isString().stringValue();
-
 
81
				}
75
				}
82
				valeursInitiales.put(cleObjet, valeur);
76
				this.set(cleObjet, valeur);
83
				this.set(cleObjet, valeur);
77
			}
84
			} 
78
		}
85
		}
Line -... Line 86...
-
 
86
	}
-
 
87
	
-
 
88
	public void setValeurInitiale(String cleObjet, String valeur)	{
79
	}
89
		
80
	
90
	}
81
	/**
91
	/**
82
	 * Pour éviter que l'on traite des valeurs nulles à l'affichage on passe par
92
	 * Pour éviter que l'on traite des valeurs nulles à l'affichage on passe par
83
	 * cette fonction qui retire les charactères nuls qui font planter
93
	 * cette fonction qui retire les charactères nuls qui font planter
Line 423... Line 433...
423
		String post = "";
433
		String post = "";
Line 424... Line 434...
424
		
434
		
425
		FastMap<?> proprietees = (FastMap<?>) getProperties();
435
		FastMap<?> proprietees = (FastMap<?>) getProperties();
426
		Collection<String> cles = proprietees.keySet();
436
		Collection<String> cles = proprietees.keySet();
-
 
437
		Iterator<String> it = cles.iterator();
Line 427... Line 438...
427
		Iterator<String> it = cles.iterator();
438
		System.out.println(cles);
428
		
439
		
429
		while (it.hasNext())	{
440
		while (it.hasNext())	{
430
			String cle = it.next();
441
			String cle = it.next();
-
 
442
			//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
-
 
443
			if (!cle.startsWith("gxt.")&&!cle.matches("^_.+_$"))	{
-
 
444
				
431
			//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
445
				//Si, et seulement si, la valeur diffère de la valeur initiale OU la clé est dans les champs obligatoire
432
			if (!cle.startsWith("gxt.")&&!cle.matches("^_.+_$"))	{
446
				if (Arrays.asList(getChampsObligatoires()).contains(getPrefixe() + "_" + cle) || ((valeursInitiales.get(cle) != null&& !valeursInitiales.get(cle).equals(get(cle)))||valeursInitiales.get(cle) == null))	{
433
				post += getPrefixe() + "_" +  cle + "=" + URL.encodeComponent(renvoyerValeurCorrecte(cle));
447
					post += getPrefixe() + "_" +  cle + "=" + URL.encodeComponent(renvoyerValeurCorrecte(cle));
-
 
448
					if (it.hasNext())	{
434
				if (it.hasNext())	{
449
						post += "&";
435
					post += "&";
450
					}
436
				}
451
				}
437
			}
-
 
438
		}
452
			}
439
		
453
		}
Line 440... Line 454...
440
		return post;
454
		return post;
441
	}
455
	}