Subversion Repositories eFlore/Applications.cel

Rev

Rev 1282 | 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
 
989 aurelien 3
import org.tela_botanica.client.modeles.objets.Observation;
642 aurelien 4
 
1282 aurelien 5
import com.google.gwt.json.client.JSONObject;
6
import com.google.gwt.json.client.JSONString;
7
 
2 aperonnet 8
public class Util {
9
 
10
	public Util() {
11
	}
642 aurelien 12
 
1282 aurelien 13
	public static String getValeurJsonOuVide(JSONObject jo, String index) {
14
		return jsonNonNull(jo, index) ? ((JSONString)jo.get(index)).stringValue() : "";
15
	}
16
 
17
	public static boolean jsonNonNull(JSONObject jo, String index) {
18
		return (jo != null &&
19
				jo.get(index) != null &&
20
				jo.get(index).isNull() == null
21
			   );
22
	}
23
 
642 aurelien 24
	public static String formaterLieu(Observation obs, String modeleLieu) {
25
 
26
		String lieuModele = modeleLieu;
27
 
28
		String commune = obs.getLocalite();
29
		String lieuDit = obs.getLieudit();
30
		String station = obs.getStation();
31
 
32
		String lieuCommuneFormate = "";
33
		String lieuDitFormate = "";
34
		String stationFormatee = "";
35
 
36
		if(commune != null && !commune.contains("000null") && !commune.trim().equals("")) {
37
			String	idLoc =obs.getIdentifiantLocalite().replaceAll(" ","/");
38
			if(idLoc != null && !idLoc.contains("000null") && !idLoc.trim().equals("")) {
39
 
40
				idLoc = idLoc.replaceAll("%","");
41
				idLoc = idLoc.replaceAll("\"","");
42
				idLoc = idLoc.replace('\\',' ');
43
				idLoc = idLoc.trim();
1332 aurelien 44
				if(idLoc.length() > 2) {
45
					idLoc = idLoc.substring(0,2);
46
				}
642 aurelien 47
				lieuCommuneFormate += idLoc+" - ";
48
			}
49
			lieuCommuneFormate += commune;
50
			lieuModele = lieuModele.replaceAll("IDLOCCOMMUNE", lieuCommuneFormate);
51
		} else {
52
 
53
			lieuModele = lieuModele.replaceAll("IDLOCCOMMUNE,", lieuCommuneFormate);
54
		}
55
 
56
		if(lieuDit != null && !lieuDit.contains("000null") && !lieuDit.trim().equals("")) {
57
			lieuDitFormate += lieuDit;
58
			lieuModele = lieuModele.replaceAll("LIEUDIT", lieuDitFormate);
59
		} else {
60
			lieuModele = lieuModele.replaceAll("LIEUDIT,", lieuDitFormate);
61
		}
62
 
63
		if(station != null && !station.contains("000null") && !station.trim().equals("")) {
64
			stationFormatee += station;
65
			lieuModele = lieuModele.replaceAll("STATION", stationFormatee);
66
		} else {
67
			lieuModele = lieuModele.replaceAll("STATION", stationFormatee);
68
		}
69
 
70
		lieuModele = lieuModele.trim();
71
		lieuModele = lieuModele.replaceAll(",$","");
72
		lieuModele = lieuModele.replaceAll(",^$",", ");
73
 
74
		return lieuModele;
75
	}
76
 
77
	public static String supprimerNumDepartementChaineLocalite(String chaineLocaliteComplete) {
962 aurelien 78
		return chaineLocaliteComplete.replaceAll(" \\([0-9]*\\)", "");
642 aurelien 79
	}
673 aurelien 80
 
962 aurelien 81
	public static String convertirChaineZoneGeoVersDepartement(String chaineZoneGeo) {
82
		return (!chaineZoneGeo.equals("000null") && !chaineZoneGeo.equals("")) ? chaineZoneGeo.replaceAll("INSEE-C:", "").substring(0, 2): chaineZoneGeo;
83
	}
84
 
85
	public static String convertirChaineZoneGeoVersCodeInsee(String chaineZoneGeo) {
86
		return (!chaineZoneGeo.equals("000null") && !chaineZoneGeo.equals("")) ? chaineZoneGeo.replaceAll("INSEE-C:", ""): chaineZoneGeo;
87
	}
88
 
673 aurelien 89
	/***
90
	 * Fusionne les éléments d'un tableau en une chaîne
91
	 * @param delim : la chaîne de séparation
92
	 * @param args : la tableau
93
	 * @return la chaîne fusionnée
94
	 */
95
	public static String implode(String delim, String[] args){
96
		StringBuffer sb = new StringBuffer();
97
 
98
		int lgArgs = args.length;
99
 
100
		for(int i = 0; i < lgArgs; i++){
101
			if (i > 0) {
102
				sb.append(delim);
103
			}
104
 
105
			sb.append(args[i]);
106
		}
107
 
108
		return sb.toString();
109
	}
110
 
111
	public static boolean filtreValide(String[] filtre) {
112
 
113
		return (filtre.length == 2 &&
114
		filtre[0] != null &&
115
		!filtre[0].equals("") &&
116
		filtre[1] != null &&
117
		!filtre[1].equals(""));
118
	}
119
 
120
	public static String renvoyerMois(int numMois) {
121
 
122
		switch (numMois) {
123
		case 1:
124
			return "janvier" ;
125
		case 2:
126
			return "fevrier" ;
127
		case 3:
128
			return "mars" ;
129
		case 4:
130
			return "avril" ;
131
		case 5:
132
			return "mai" ;
133
		case 6:
134
			return "juin" ;
135
		case 7:
136
			return "juillet" ;
137
		case 8:
138
			return "août" ;
139
		case 9:
140
			return "septembre" ;
141
		case 10:
142
			return "octobre" ;
143
		case 11:
144
			return "novembre" ;
145
		case 12:
146
			return "décembre" ;
147
		default:
148
			return "Inconnu" ;
149
		}
150
	}
151
 
152
	public static String remplacerSautsDeligneMalEncodes(String chaineAvecSautsDeLignesMalEncodes) {
153
 
154
		String chaineAvecSautsDeLignesBienEncodes = chaineAvecSautsDeLignesMalEncodes.replace('\\','%');
155
		chaineAvecSautsDeLignesBienEncodes = chaineAvecSautsDeLignesBienEncodes.replaceAll("%n","%");
156
		chaineAvecSautsDeLignesBienEncodes = chaineAvecSautsDeLignesBienEncodes.replace('%','\n');
157
 
158
		return chaineAvecSautsDeLignesBienEncodes;
159
	}
160
 
161
	public static boolean verifierDateFormatCel(String dateAVerifier) {
162
 
163
		String dateRemplacee = remplacerSeparateursDateFormatCel(dateAVerifier);
164
		String[] tabDate = dateRemplacee.split("/");
165
 
166
		boolean retour = false;
167
 
168
		if(tabDate.length == 3) {
1282 aurelien 169
			//TODO: faire un parsing de date qui fonctionne mieux car
170
			// on peut saisir un 31 novembre par exemple
171
			// mais l'api date de java est mal gérée par gwt
673 aurelien 172
			try {
173
				int jour = Integer.parseInt(tabDate[0]);
174
				int mois = Integer.parseInt(tabDate[1]);
175
				int annee = Integer.parseInt(tabDate[2]);
176
 
1010 aurelien 177
				if(jour <= 31 && mois <= 12 && tabDate[2].length() == 4) {
673 aurelien 178
					retour = true;
179
				}
180
			} catch (Exception e) {
181
 
182
			}
183
		}
184
 
185
		return retour;
186
	}
187
 
188
	public static String remplacerSeparateursDateFormatCel(String date) {
189
 
190
		String dateRemplacee = date.replaceAll("-", "/");
191
 
192
	    return dateRemplacee;
193
	}
2 aperonnet 194
}