Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
734 aurelien 1
package org.tela_botanica.client.util;
2 aperonnet 2
 
1542 aurelien 3
import java.util.HashMap;
1549 aurelien 4
import java.util.Iterator;
1542 aurelien 5
import java.util.Map;
6
 
989 aurelien 7
import org.tela_botanica.client.modeles.objets.Observation;
642 aurelien 8
 
1549 aurelien 9
import com.google.gwt.http.client.URL;
1282 aurelien 10
import com.google.gwt.json.client.JSONObject;
11
import com.google.gwt.json.client.JSONString;
12
 
2 aperonnet 13
public class Util {
14
 
15
	public Util() {
16
	}
642 aurelien 17
 
1282 aurelien 18
	public static String getValeurJsonOuVide(JSONObject jo, String index) {
19
		return jsonNonNull(jo, index) ? ((JSONString)jo.get(index)).stringValue() : "";
20
	}
21
 
1549 aurelien 22
	public static Map<String, String> getMapValeursOuVide(JSONObject jo, String index) {
1542 aurelien 23
		Map<String, String> mapValeurs = new HashMap<String, String>();
1549 aurelien 24
		if(jo.get(index) != null && jo.get(index).isObject() != null) {
25
			JSONObject mapJo = jo.get(index).isObject();
26
			for (Iterator<String> it = mapJo.keySet().iterator(); it.hasNext();) {
27
				String cle = it.next();
28
				mapValeurs.put(cle, mapJo.get(cle).isString().stringValue());
1542 aurelien 29
			}
30
		}
31
		return mapValeurs;
32
	}
33
 
1549 aurelien 34
	public static String convertirMapEnChaineRequete(Map<String, String> map, String cleUrl) {
35
		String chaineChamps = "";
36
		for (Iterator<String> it = map.keySet().iterator(); it.hasNext();) {
37
			String cle = it.next();
38
			String valeur = map.get(cle);
39
			chaineChamps += URL.encode(cleUrl+"["+cle+"]")+"="+URL.encode(valeur)+"&";
40
		}
41
		return chaineChamps;
42
	}
43
 
1282 aurelien 44
	public static boolean jsonNonNull(JSONObject jo, String index) {
45
		return (jo != null &&
46
				jo.get(index) != null &&
47
				jo.get(index).isNull() == null
48
			   );
49
	}
50
 
642 aurelien 51
	public static String formaterLieu(Observation obs, String modeleLieu) {
52
 
53
		String lieuModele = modeleLieu;
54
 
55
		String commune = obs.getLocalite();
56
		String lieuDit = obs.getLieudit();
57
		String station = obs.getStation();
58
 
59
		String lieuCommuneFormate = "";
60
		String lieuDitFormate = "";
61
		String stationFormatee = "";
62
 
63
		if(commune != null && !commune.contains("000null") && !commune.trim().equals("")) {
64
			String	idLoc =obs.getIdentifiantLocalite().replaceAll(" ","/");
65
			if(idLoc != null && !idLoc.contains("000null") && !idLoc.trim().equals("")) {
66
 
67
				idLoc = idLoc.replaceAll("%","");
68
				idLoc = idLoc.replaceAll("\"","");
69
				idLoc = idLoc.replace('\\',' ');
70
				idLoc = idLoc.trim();
1332 aurelien 71
				if(idLoc.length() > 2) {
72
					idLoc = idLoc.substring(0,2);
73
				}
642 aurelien 74
				lieuCommuneFormate += idLoc+" - ";
75
			}
76
			lieuCommuneFormate += commune;
77
			lieuModele = lieuModele.replaceAll("IDLOCCOMMUNE", lieuCommuneFormate);
78
		} else {
79
 
80
			lieuModele = lieuModele.replaceAll("IDLOCCOMMUNE,", lieuCommuneFormate);
81
		}
82
 
83
		if(lieuDit != null && !lieuDit.contains("000null") && !lieuDit.trim().equals("")) {
84
			lieuDitFormate += lieuDit;
85
			lieuModele = lieuModele.replaceAll("LIEUDIT", lieuDitFormate);
86
		} else {
87
			lieuModele = lieuModele.replaceAll("LIEUDIT,", lieuDitFormate);
88
		}
89
 
90
		if(station != null && !station.contains("000null") && !station.trim().equals("")) {
91
			stationFormatee += station;
92
			lieuModele = lieuModele.replaceAll("STATION", stationFormatee);
93
		} else {
94
			lieuModele = lieuModele.replaceAll("STATION", stationFormatee);
95
		}
96
 
97
		lieuModele = lieuModele.trim();
98
		lieuModele = lieuModele.replaceAll(",$","");
99
		lieuModele = lieuModele.replaceAll(",^$",", ");
100
 
101
		return lieuModele;
102
	}
103
 
1542 aurelien 104
	public static String obtenirDepartementAPartirChaineCommune(String departement, String commune) {
105
 
106
		String dep = "";
107
 
108
		if(departement == null) {
109
			departement = "";
110
		}
111
 
112
		if(departement.equals("000null") || departement.equals("")) {
113
 
114
			String[] depCom = commune.split(" ");
115
			if(depCom.length > 1) {
116
				dep = depCom[1].replace('(', ' ');
117
			} else {
118
				dep = "";
119
			}
120
		} else {
121
			dep = departement;
122
		}
123
 
124
		dep = dep.replace(')', ' ');
125
		dep = dep.trim();
126
		dep = dep.replace('\\',' ');
127
		dep = dep.trim();
128
 
129
		try
130
		{
131
			int nDep = Integer.parseInt(dep);
132
			if(nDep > 0 && nDep < 110) {
133
				departement = dep ;
134
			}
135
 
136
			if(departement.length() == 4) {
137
				departement = "0"+departement;
138
			}
139
 
140
			departement = departement.substring(0,2);
141
		}
142
		catch(NumberFormatException e)
143
		{
144
			departement = "" ;
145
		}
146
 
147
		return departement;
148
	}
149
 
642 aurelien 150
	public static String supprimerNumDepartementChaineLocalite(String chaineLocaliteComplete) {
962 aurelien 151
		return chaineLocaliteComplete.replaceAll(" \\([0-9]*\\)", "");
642 aurelien 152
	}
673 aurelien 153
 
962 aurelien 154
	public static String convertirChaineZoneGeoVersDepartement(String chaineZoneGeo) {
155
		return (!chaineZoneGeo.equals("000null") && !chaineZoneGeo.equals("")) ? chaineZoneGeo.replaceAll("INSEE-C:", "").substring(0, 2): chaineZoneGeo;
156
	}
157
 
158
	public static String convertirChaineZoneGeoVersCodeInsee(String chaineZoneGeo) {
159
		return (!chaineZoneGeo.equals("000null") && !chaineZoneGeo.equals("")) ? chaineZoneGeo.replaceAll("INSEE-C:", ""): chaineZoneGeo;
160
	}
161
 
673 aurelien 162
	/***
163
	 * Fusionne les éléments d'un tableau en une chaîne
164
	 * @param delim : la chaîne de séparation
165
	 * @param args : la tableau
166
	 * @return la chaîne fusionnée
167
	 */
168
	public static String implode(String delim, String[] args){
169
		StringBuffer sb = new StringBuffer();
170
 
171
		int lgArgs = args.length;
172
 
173
		for(int i = 0; i < lgArgs; i++){
174
			if (i > 0) {
175
				sb.append(delim);
176
			}
177
 
178
			sb.append(args[i]);
179
		}
180
 
181
		return sb.toString();
182
	}
183
 
184
	public static boolean filtreValide(String[] filtre) {
185
 
186
		return (filtre.length == 2 &&
187
		filtre[0] != null &&
188
		!filtre[0].equals("") &&
189
		filtre[1] != null &&
190
		!filtre[1].equals(""));
191
	}
192
 
193
	public static String renvoyerMois(int numMois) {
194
 
195
		switch (numMois) {
196
		case 1:
197
			return "janvier" ;
198
		case 2:
199
			return "fevrier" ;
200
		case 3:
201
			return "mars" ;
202
		case 4:
203
			return "avril" ;
204
		case 5:
205
			return "mai" ;
206
		case 6:
207
			return "juin" ;
208
		case 7:
209
			return "juillet" ;
210
		case 8:
211
			return "août" ;
212
		case 9:
213
			return "septembre" ;
214
		case 10:
215
			return "octobre" ;
216
		case 11:
217
			return "novembre" ;
218
		case 12:
219
			return "décembre" ;
220
		default:
221
			return "Inconnu" ;
222
		}
223
	}
224
 
225
	public static String remplacerSautsDeligneMalEncodes(String chaineAvecSautsDeLignesMalEncodes) {
226
 
227
		String chaineAvecSautsDeLignesBienEncodes = chaineAvecSautsDeLignesMalEncodes.replace('\\','%');
228
		chaineAvecSautsDeLignesBienEncodes = chaineAvecSautsDeLignesBienEncodes.replaceAll("%n","%");
229
		chaineAvecSautsDeLignesBienEncodes = chaineAvecSautsDeLignesBienEncodes.replace('%','\n');
230
 
231
		return chaineAvecSautsDeLignesBienEncodes;
232
	}
233
 
234
	public static boolean verifierDateFormatCel(String dateAVerifier) {
235
 
236
		String dateRemplacee = remplacerSeparateursDateFormatCel(dateAVerifier);
237
		String[] tabDate = dateRemplacee.split("/");
238
 
239
		boolean retour = false;
240
 
241
		if(tabDate.length == 3) {
1282 aurelien 242
			//TODO: faire un parsing de date qui fonctionne mieux car
243
			// on peut saisir un 31 novembre par exemple
244
			// mais l'api date de java est mal gérée par gwt
673 aurelien 245
			try {
246
				int jour = Integer.parseInt(tabDate[0]);
247
				int mois = Integer.parseInt(tabDate[1]);
248
				int annee = Integer.parseInt(tabDate[2]);
249
 
1010 aurelien 250
				if(jour <= 31 && mois <= 12 && tabDate[2].length() == 4) {
673 aurelien 251
					retour = true;
252
				}
253
			} catch (Exception e) {
254
 
255
			}
256
		}
257
 
258
		return retour;
259
	}
260
 
261
	public static String remplacerSeparateursDateFormatCel(String date) {
262
 
263
		String dateRemplacee = date.replaceAll("-", "/");
264
 
265
	    return dateRemplacee;
266
	}
2 aperonnet 267
}