Subversion Repositories eFlore/Applications.coel

Rev

Rev 208 | Rev 245 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
69 jpm 1
package org.tela_botanica.client.modeles;
2
 
3
import java.io.Serializable;
193 jp_milcent 4
import java.util.Iterator;
188 jp_milcent 5
import java.util.List;
193 jp_milcent 6
import java.util.Set;
69 jpm 7
 
233 jp_milcent 8
import org.tela_botanica.client.util.UtilArray;
9
 
69 jpm 10
import com.extjs.gxt.ui.client.data.BaseModelData;
188 jp_milcent 11
import com.extjs.gxt.ui.client.widget.form.CheckBox;
69 jpm 12
 
193 jp_milcent 13
/**
14
 * @author jpm
15
 *
16
 */
69 jpm 17
public abstract class aDonnee extends BaseModelData implements Serializable {
18
 
19
	/**
20
	 * Identifiant pour sérialisé l'objet...
21
	 */
22
	private static final long serialVersionUID = 3527760464061629791L;
23
 
24
	/**
25
	 * Pour éviter que l'on traite des valeurs nulles à l'affichage on passe par
26
	 * cette fonction qui retire les charactères nuls qui font planter
27
	 * l'affichage, il ne faut pas utiliser get directement
28
	 *
29
	 * @param cle
30
	 * @return la valeur associée à la clé
31
	 */
193 jp_milcent 32
	protected String renvoyerValeurCorrecte(String cle) {
188 jp_milcent 33
		String sortie = "";
69 jpm 34
		if (this.get(cle) != null) {
35
			String valeur = this.get(cle);
188 jp_milcent 36
			if (! valeur.equals("null")) {
69 jpm 37
				char nullChar = '\u0000';
38
				String sNull = "" + nullChar;
39
				valeur = valeur.replaceAll(sNull, "");
188 jp_milcent 40
				sortie =  valeur;
69 jpm 41
			}
42
		}
188 jp_milcent 43
		return sortie;
69 jpm 44
	}
233 jp_milcent 45
 
193 jp_milcent 46
	/**
47
	 * Permet de constuire correctement une chaine dénormalisée (champ de type "truk").
48
	 *
49
	 * @param champ le nom du champ dénormalisé
50
	 * @param type le type de la valeur à ajouter
51
	 * @param valeur la valeur à ajouter
52
	 */
53
	protected void setChaineDenormalise(String champ, String type, Object valeur) {
54
		if (valeur instanceof String) {
55
			String chaineExistante = renvoyerValeurCorrecte(champ);
56
			if (chaineExistante.equals("")) {
57
				this.set(champ, type+"##"+valeur);
58
			} else {
59
				this.set(champ, chaineExistante+";;"+type+"##"+valeur);
60
			}
61
		}
62
	}
119 jpm 63
 
233 jp_milcent 64
	/**
65
	 * Permet de constuire correctement une chaine dénormalisée unique (champ de type "ce_truk").
66
	 *
67
	 * @param champ le nom du champ dénormalisé
68
	 * @param type le type de la valeur à ajouter
69
	 * @param valeur la valeur à ajouter
70
	 */
71
	protected void setChaineDenormaliseUnique(String champ, String type, Object valeur) {
72
		if (valeur instanceof String) {
73
			this.set(champ, type+"##"+valeur);
74
		}
75
	}
76
 
208 jp_milcent 77
	protected String getInfoDenormaliseParType(String chaineExistante, String type) {
78
		String sortie = "";
79
		if (!chaineExistante.equals("")) {
80
			String[] valeurs = chaineExistante.split(";;");
81
			for (int i = 0; i < valeurs.length; i++) {
82
				if (valeurs[i].startsWith(type+"##")) {
83
					sortie =  valeurs[i].replaceFirst("^"+type+"##", "");
84
				}
85
			}
86
		}
87
		return sortie;
88
	}
89
 
233 jp_milcent 90
	/**
91
	 * Permet de modifier correctement une chaine dénormalisée (champ de type "truk").
92
	 * Remplace par la valeur de la première instance du type indiqué dans la chaine dénormalisée.
93
	 *
94
	 * @param champ le nom du champ dénormalisé
95
	 * @param type le type de la valeur à modifier
96
	 * @param valeur la valeur pour le type en question
97
	 */
98
	protected void setChaineDenormaliseParType(String champ, String type, Object valeur) {
99
		if (valeur instanceof String) {
100
			String chaineExistante = renvoyerValeurCorrecte(champ);
101
			if (chaineExistante.equals("")) {
102
				this.set(champ, type+"##"+valeur);
103
			} else {
104
				String[] valeurs = chaineExistante.split(";;");
105
				for (int i = 0; i < valeurs.length; i++) {
106
					if (valeurs[i].startsWith(type+"##") || i == (valeurs.length -1)) {
107
						valeurs[i] = type+"##"+valeur;
108
						break;
109
					}
110
				}
111
				this.set(champ, UtilArray.implode(valeurs, ";;"));
112
			}
113
		}
114
	}
115
 
208 jp_milcent 116
	protected String getInfoDenormaliseParPosition(String chaineExistante, int position) {
117
		String sortie = "";
118
		if (!chaineExistante.equals("")) {
119
			String[] valeurs = chaineExistante.split(";;");
120
			if (valeurs.length >= position) {
121
				for (int i = 0; i < valeurs.length; i++) {
122
					if (i == (position - 1)) {
123
						if (valeurs[i].contains("##")) {
124
							sortie =  valeurs[i].replaceFirst("^[^#]+##", "");
125
						} else {
126
							sortie =  valeurs[i];
127
						}
128
						break;
129
					}
130
				}
131
			}
132
		}
133
		return sortie;
134
	}
135
 
233 jp_milcent 136
	/**
137
	 * Permet de modifier correctement une chaine dénormalisée (champ de type "truk").
138
	 * Remplace par la valeur l'instance dont la position a été indiquée.
139
	 *
140
	 * @param champ le nom du champ dénormalisé
141
	 * @param position le type de la valeur à modifier
142
	 * @param valeur la valeur à remplacer à la position indiquée
143
	 */
144
	protected void setChaineDenormaliseParPosition(String champ, int position, Object valeur) {
145
		if (valeur instanceof String) {
146
			String chaineExistante = renvoyerValeurCorrecte(champ);
147
			if (!chaineExistante.equals("")) {
148
				String[] valeurs = chaineExistante.split(";;");
149
				if (valeurs.length == 0) {
150
					this.set(champ, valeur);
151
				} else if (valeurs.length >= position) {
152
					for (int i = 0; i < valeurs.length; i++) {
153
						if (i == (position - 1)) {
154
							valeurs[i] = (String) valeur;
155
							break;
156
						}
157
					}
158
					this.set(champ, UtilArray.implode(valeurs, ";;"));
159
				}
160
			}
161
		}
162
	}
163
 
119 jpm 164
	public String getDateModification() {
165
		return (String) renvoyerValeurCorrecte("cmhl_date_modification");
166
	}
167
 
168
	public String getNotes() {
169
		return (String) renvoyerValeurCorrecte("cmhl_notes");
170
	}
171
 
172
	public String getIdModifierPar() {
173
		return (String) renvoyerValeurCorrecte("cmhl_ce_modifier_par");
174
	}
175
 
176
	public String getIdEtat() {
177
		return (String) renvoyerValeurCorrecte("cmhl_ce_etat");
178
	}
179
 
180
	public String getIp() {
181
		return (String) renvoyerValeurCorrecte("cmhl_ip");
182
	}
193 jp_milcent 183
 
184
	/** (non-Javadoc)
185
	 * @see java.lang.Object#toString()
186
	 */
187
	public String toString() {
188
		String sortie = "";
189
 
190
		// Champs du BaseModelData
191
		Set<String> proprietes = this.getProperties().keySet();
192
		for (Iterator<String> it = proprietes.iterator(); it.hasNext();) {
193
			String cle = it.next();
202 jp_milcent 194
			if (!this.get(cle).equals("")) {
195
				sortie += cle+" : "+this.get(cle)+"\n";
196
			}
193 jp_milcent 197
		}
198
 
199
		return sortie;
200
	}
69 jpm 201
}