Subversion Repositories eFlore/Applications.cel

Rev

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