Subversion Repositories eFlore/Applications.cel

Rev

Rev 1332 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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