Subversion Repositories eFlore/Applications.coel

Rev

Rev 1252 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1252 Rev 1354
Line 11... Line 11...
11
import java.util.Set;
11
import java.util.Set;
12
import java.util.TreeSet;
12
import java.util.TreeSet;
Line 13... Line 13...
13
 
13
 
14
import org.tela_botanica.client.util.Debug;
14
import org.tela_botanica.client.util.Debug;
-
 
15
import org.tela_botanica.client.util.UtilArray;
Line 15... Line 16...
15
import org.tela_botanica.client.util.UtilArray;
16
import org.tela_botanica.client.util.UtilString;
16
 
17
 
17
import com.extjs.gxt.ui.client.core.FastMap;
18
import com.extjs.gxt.ui.client.core.FastMap;
18
import com.extjs.gxt.ui.client.data.BaseModelData;
19
import com.extjs.gxt.ui.client.data.BaseModelData;
Line 122... Line 123...
122
	 * @param valeur la valeur à ajouter
123
	 * @param valeur la valeur à ajouter
123
	 */
124
	 */
124
	protected void ajouterChaineDenormaliseAvecType(String champ, String type, Object valeur) {
125
	protected void ajouterChaineDenormaliseAvecType(String champ, String type, Object valeur) {
125
		if (valeur instanceof String) {
126
		if (valeur instanceof String) {
126
			String chaineExistante = renvoyerValeurCorrecte(champ);
127
			String chaineExistante = renvoyerValeurCorrecte(champ);
127
			if (chaineExistante.equals("")) {
128
			if (UtilString.isEmpty(chaineExistante)) {
128
				this.set(champ, type+SEPARATEUR_TYPE_VALEUR+valeur);
129
				this.set(champ, type+SEPARATEUR_TYPE_VALEUR+valeur);
129
			} else {
130
			} else {
130
				// Si la valeur à ajouter n'est pas déjà présente, nous l'ajoutons
131
				// Si la valeur à ajouter n'est pas déjà présente, nous l'ajoutons
131
				if (!chaineExistante.matches("(^|"+SEPARATEUR_VALEURS+")"+type+SEPARATEUR_TYPE_VALEUR+valeur+"("+SEPARATEUR_VALEURS+"|$)")) {
132
				if (!chaineExistante.matches("(^|"+SEPARATEUR_VALEURS+")"+type+SEPARATEUR_TYPE_VALEUR+valeur+"("+SEPARATEUR_VALEURS+"|$)")) {
132
					this.set(champ, chaineExistante+";;"+type+SEPARATEUR_TYPE_VALEUR+valeur);
133
					this.set(champ, chaineExistante+";;"+type+SEPARATEUR_TYPE_VALEUR+valeur);
Line 135... Line 136...
135
		}
136
		}
136
	}
137
	}
Line 137... Line 138...
137
	
138
	
138
	protected void supprimerTypeDansChaineDenormalise(String champ, String type) {
139
	protected void supprimerTypeDansChaineDenormalise(String champ, String type) {
139
		String chaineExistante = renvoyerValeurCorrecte(champ);
140
		String chaineExistante = renvoyerValeurCorrecte(champ);
140
		if (!chaineExistante.equals("")) {
141
		if (!UtilString.isEmpty(chaineExistante)) {
141
			if (chaineExistante.matches("(?:^|.*"+SEPARATEUR_VALEURS+")"+type+SEPARATEUR_TYPE_VALEUR+".*")) {
142
			if (chaineExistante.matches("(?:^|.*"+SEPARATEUR_VALEURS+")"+type+SEPARATEUR_TYPE_VALEUR+".*")) {
142
				chaineExistante = chaineExistante.replaceFirst("(^|.*"+SEPARATEUR_VALEURS+")"+type+SEPARATEUR_TYPE_VALEUR+".*?("+SEPARATEUR_VALEURS+".*|$)", "$1$2");
143
				chaineExistante = chaineExistante.replaceFirst("(^|.*"+SEPARATEUR_VALEURS+")"+type+SEPARATEUR_TYPE_VALEUR+".*?("+SEPARATEUR_VALEURS+".*|$)", "$1$2");
143
				chaineExistante = chaineExistante.replaceAll("(.*)"+SEPARATEUR_VALEURS+SEPARATEUR_VALEURS+"(.*)", "$1"+SEPARATEUR_VALEURS+"$2");
144
				chaineExistante = chaineExistante.replaceAll("(.*)"+SEPARATEUR_VALEURS+SEPARATEUR_VALEURS+"(.*)", "$1"+SEPARATEUR_VALEURS+"$2");
144
				chaineExistante = chaineExistante.replaceAll("^"+SEPARATEUR_VALEURS+"(.*)", "$1");
145
				chaineExistante = chaineExistante.replaceAll("^"+SEPARATEUR_VALEURS+"(.*)", "$1");
Line 164... Line 165...
164
	 * @param valeur la valeur à ajouter
165
	 * @param valeur la valeur à ajouter
165
	 */
166
	 */
166
	protected void ajouterChaineDenormalise(String champ, Object valeur) {
167
	protected void ajouterChaineDenormalise(String champ, Object valeur) {
167
		if (valeur instanceof String) {
168
		if (valeur instanceof String) {
168
			String chaineExistante = renvoyerValeurCorrecte(champ);
169
			String chaineExistante = renvoyerValeurCorrecte(champ);
169
			if (chaineExistante.equals("")) {
170
			if (UtilString.isEmpty(chaineExistante)) {
170
				this.set(champ, valeur);
171
				this.set(champ, valeur);
171
			} else {
172
			} else {
172
				// Si la valeur à ajouter n'est pas déjà présente, nous l'ajoutons
173
				// Si la valeur à ajouter n'est pas déjà présente, nous l'ajoutons
173
				if (!chaineExistante.matches("(^|"+SEPARATEUR_VALEURS+")"+valeur+"("+SEPARATEUR_VALEURS+"|$)")) {
174
				if (!chaineExistante.matches("(^|"+SEPARATEUR_VALEURS+")"+valeur+"("+SEPARATEUR_VALEURS+"|$)")) {
174
					this.set(champ, chaineExistante+SEPARATEUR_VALEURS+valeur);
175
					this.set(champ, chaineExistante+SEPARATEUR_VALEURS+valeur);
Line 183... Line 184...
183
	 * @param champ le nom du champ dénormalisé
184
	 * @param champ le nom du champ dénormalisé
184
	 * @param type le type de la valeur à ajouter
185
	 * @param type le type de la valeur à ajouter
185
	 * @param valeur la valeur à ajouter
186
	 * @param valeur la valeur à ajouter
186
	 */
187
	 */
187
	protected void setChaineDenormaliseUnique(String champ, String type, String valeur) {
188
	protected void setChaineDenormaliseUnique(String champ, String type, String valeur) {
188
		if (valeur == null || valeur.equals("")) {
189
		if (valeur == null || UtilString.isEmpty(valeur)) {
189
			this.set(champ, "");
190
			this.set(champ, "");
190
		} else if (valeur instanceof String) {
191
		} else if (valeur instanceof String) {
191
			if (((String) valeur).matches("^[0-9]+$")) {
192
			if (((String) valeur).matches("^[0-9]+$")) {
192
				this.set(champ, valeur);
193
				this.set(champ, valeur);
193
			} else {
194
			} else {
Line 202... Line 203...
202
	 * @param champ le nom du champ dénormalisé
203
	 * @param champ le nom du champ dénormalisé
203
	 */
204
	 */
204
	protected String getChaineDenormaliseUnique(String champ) {
205
	protected String getChaineDenormaliseUnique(String champ) {
205
		String valeur = renvoyerValeurCorrecte(champ);
206
		String valeur = renvoyerValeurCorrecte(champ);
Line 206... Line 207...
206
		
207
		
207
		if (!valeur.equals("")) {
208
		if (!UtilString.isEmpty(valeur)) {
208
			valeur = valeur.replaceFirst("^"+TYPE_AUTRE+SEPARATEUR_TYPE_VALEUR, "");
209
			valeur = valeur.replaceFirst("^"+TYPE_AUTRE+SEPARATEUR_TYPE_VALEUR, "");
Line 209... Line 210...
209
		}
210
		}
210
		
211
		
Line 211... Line 212...
211
		return valeur;
212
		return valeur;
212
	}
213
	}
213
	
214
	
214
	protected String getInfoDenormaliseParType(String chaineExistante, String type) {
215
	protected String getInfoDenormaliseParType(String chaineExistante, String type) {
215
		String sortie = "";
216
		String sortie = "";
216
		if (!chaineExistante.equals("")) {
217
		if (!UtilString.isEmpty(chaineExistante)) {
217
			String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS);
218
			String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS);
218
			for (int i = 0; i < valeurs.length; i++) {
219
			for (int i = 0; i < valeurs.length; i++) {
Line 284... Line 285...
284
		if (valeur == null || valeur.equals("")) {
285
		if (valeur == null || valeur.equals("")) {
285
			supprimerTypeDansChaineDenormalise(champ, type);
286
			supprimerTypeDansChaineDenormalise(champ, type);
286
		} else if (valeur instanceof String) {
287
		} else if (valeur instanceof String) {
287
			String chaineExistante = renvoyerValeurCorrecte(champ);
288
			String chaineExistante = renvoyerValeurCorrecte(champ);
Line 288... Line 289...
288
			
289
			
289
			if (chaineExistante.equals("")) {
290
			if (UtilString.isEmpty(chaineExistante)) {
290
				this.set(champ, type+SEPARATEUR_TYPE_VALEUR+valeur);
291
				this.set(champ, type+SEPARATEUR_TYPE_VALEUR+valeur);
291
			} else {
292
			} else {
292
				String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS);
293
				String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS);
293
				HashMap<String,String> valeursModifiees = new HashMap<String,String>();
294
				HashMap<String,String> valeursModifiees = new HashMap<String,String>();
Line 307... Line 308...
307
		}
308
		}
308
	}
309
	}
Line 309... Line 310...
309
	
310
	
310
	protected String getInfoDenormaliseParPosition(String chaineExistante, int position) {
311
	protected String getInfoDenormaliseParPosition(String chaineExistante, int position) {
311
		String sortie = "";
312
		String sortie = "";
312
		if (!chaineExistante.equals("")) {
313
		if (!UtilString.isEmpty(chaineExistante)) {
313
			String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS);
314
			String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS);
314
			if (valeurs.length >= position) {
315
			if (valeurs.length >= position) {
315
				for (int i = 0; i < valeurs.length; i++) {
316
				for (int i = 0; i < valeurs.length; i++) {
316
					if (i == (position - 1)) {
317
					if (i == (position - 1)) {
Line 340... Line 341...
340
	protected void modifierChaineDenormaliseParPosition(String champ, int position, Object valeur) {
341
	protected void modifierChaineDenormaliseParPosition(String champ, int position, Object valeur) {
341
		if (valeur == null || valeur.equals("")) {
342
		if (valeur == null || valeur.equals("")) {
342
			supprimerChaineDenormaliseParPosition(champ, position);
343
			supprimerChaineDenormaliseParPosition(champ, position);
343
		} else if (valeur instanceof String) {
344
		} else if (valeur instanceof String) {
344
			String chaineExistante = renvoyerValeurCorrecte(champ);
345
			String chaineExistante = renvoyerValeurCorrecte(champ);
345
			if (chaineExistante.equals("")) {
346
			if (UtilString.isEmpty(chaineExistante)) {
346
				this.set(champ, valeur);
347
				this.set(champ, valeur);
347
			} else {
348
			} else {
348
				String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS);
349
				String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS);
349
				if (valeurs.length >= position) {
350
				if (valeurs.length >= position) {
350
					for (int i = 0; i < valeurs.length; i++) {
351
					for (int i = 0; i < valeurs.length; i++) {
Line 359... Line 360...
359
		}
360
		}
360
	}
361
	}
Line 361... Line 362...
361
	
362
	
362
	protected void supprimerChaineDenormaliseParPosition(String champ, int position) {
363
	protected void supprimerChaineDenormaliseParPosition(String champ, int position) {
363
		String chaineExistante = renvoyerValeurCorrecte(champ);
364
		String chaineExistante = renvoyerValeurCorrecte(champ);
364
		if (!chaineExistante.equals("")) {
365
		if (!UtilString.isEmpty(chaineExistante)) {
365
			String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS);
366
			String[] valeurs = chaineExistante.split(SEPARATEUR_VALEURS);
366
			HashMap<String,String> valeursModifiees = new HashMap<String,String>();
367
			HashMap<String,String> valeursModifiees = new HashMap<String,String>();
367
			if (valeurs.length >= position) {
368
			if (valeurs.length >= position) {
368
				for (int i = 0; i < valeurs.length; i++) {
369
				for (int i = 0; i < valeurs.length; i++) {