Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1286 Rev 1289
1
package org.tela_botanica.client.modeles.objets;
1
package org.tela_botanica.client.modeles.objets;
2
 
2
 
3
import java.util.HashMap;
3
import java.util.HashMap;
4
import java.util.Iterator;
4
import java.util.Iterator;
5
import java.util.Set;
5
import java.util.Set;
6
 
6
 
7
import org.tela_botanica.client.i18n.VocabulaireMetadonnees;
7
import org.tela_botanica.client.i18n.VocabulaireMetadonnees;
8
import org.tela_botanica.client.util.Util;
8
import org.tela_botanica.client.util.Util;
9
 
9
 
10
import com.google.gwt.json.client.JSONObject;
10
import com.google.gwt.json.client.JSONObject;
11
import com.google.gwt.xml.client.Document;
11
import com.google.gwt.xml.client.Document;
12
import com.google.gwt.xml.client.Node;
12
import com.google.gwt.xml.client.Node;
13
import com.google.gwt.xml.client.NodeList;
13
import com.google.gwt.xml.client.NodeList;
14
import com.google.gwt.xml.client.Text;
14
import com.google.gwt.xml.client.Text;
15
import com.google.gwt.xml.client.XMLParser;
15
import com.google.gwt.xml.client.XMLParser;
16
import com.google.gwt.xml.client.impl.DOMParseException;
16
import com.google.gwt.xml.client.impl.DOMParseException;
17
 
17
 
18
/**
18
/**
19
 * 
19
 * 
20
 * Classe representant une image du carnet, elle ne contient pas d'image à
20
 * Classe representant une image du carnet, elle ne contient pas d'image à
21
 * proprement parler mais plutôt les informations associées ainsi que l'url
21
 * proprement parler mais plutôt les informations associées ainsi que l'url
22
 * distante. C'est une table de hachage qui contient des paires propriété/valeur
22
 * distante. C'est une table de hachage qui contient des paires propriété/valeur
23
 * 
23
 * 
24
 */
24
 */
25
public class ImageCarnet extends HashMap<String, String> {
25
public class ImageCarnet extends HashMap<String, String> {
26
 
26
 
27
	/**
27
	/**
28
	 * 
28
	 * 
29
	 */
29
	 */
30
	private static final long serialVersionUID = -6220175386957259859L;
30
	private static final long serialVersionUID = -6220175386957259859L;
31
 
31
 
32
	/**
32
	/**
33
	 * Constructeur avec un objet JSON
33
	 * Constructeur avec un objet JSON
34
	 * 
34
	 * 
35
	 * @param image
35
	 * @param image
36
	 */
36
	 */
37
	public ImageCarnet(JSONObject image) {
37
	public ImageCarnet(JSONObject image) {
38
		// l'objet JSON est une table de hachage
38
		// l'objet JSON est une table de hachage
39
		Set<String> im = image.keySet();
39
		Set<String> im = image.keySet();
40
 
40
 
41
		// on la parcourt pour chaque clé
41
		// on la parcourt pour chaque clé
42
		for (Iterator<String> iterator = im.iterator(); iterator.hasNext();) {
42
		for (Iterator<String> iterator = im.iterator(); iterator.hasNext();) {
43
 
43
 
44
			// si elle est associée à une valeur, on l'ajoute
44
			// si elle est associée à une valeur, on l'ajoute
45
			String key = iterator.next();
45
			String key = iterator.next();
46
			if (Util.jsonNonNull(image, key)) {
46
			if (Util.jsonNonNull(image, key)) {
47
				String valeur = image.get(key).isString().stringValue();
47
				String valeur = image.get(key).isString().stringValue();
48
				this.put(key, valeur);
48
				this.put(key, valeur);
49
			} else {
49
			} else {
50
				// sinon on ajoute la clé avec une valeur vide
50
				// sinon on ajoute la clé avec une valeur vide
51
				String valeur = " ";
51
				String valeur = " ";
52
				this.put(key, valeur);
52
				this.put(key, valeur);
53
			}
53
			}
54
 
54
 
55
		}
55
		}
56
 
56
 
57
	}
57
	}
58
	
58
	
59
	public ImageCarnet(String[][] image) {
59
	public ImageCarnet(String[][] image) {
60
 
60
 
61
		for (int i = 0; i < image.length; i++) {
61
		for (int i = 0; i < image.length; i++) {
62
			if (image[i][0] != null && image[i][1] != null) {
62
			if (image[i][0] != null && image[i][1] != null) {
63
				this.put(image[i][0], image[i][1]);
63
				this.put(image[i][0], image[i][1]);
64
			}
64
			}
65
		}
65
		}
66
	}
66
	}
67
 
67
 
68
	/**
68
	/**
69
	 * Surcharge de toString qui affiche toutes les propriétés de l'image
69
	 * Surcharge de toString qui affiche toutes les propriétés de l'image
70
	 */
70
	 */
-
 
71
 
71
 
72
	@Override
72
	public String toString() {
73
	public String toString() {
73
		String valeur = " ";
74
		String valeur = " ";
74
 
75
 
75
		for (Iterator<String> iterator = this.keySet().iterator(); iterator
76
		for (Iterator<String> iterator = this.keySet().iterator(); iterator
76
				.hasNext();) {
77
				.hasNext();) {
77
 
78
 
78
			String key = iterator.next();
79
			String key = iterator.next();
79
			if (this.get(key) != null) {
80
			if (this.get(key) != null) {
80
				valeur += "cle : " + key + " valeur :" + this.get(key) + "\n";
81
				valeur += "cle : " + key + " valeur :" + this.get(key) + "\n";
81
			}
82
			}
82
 
83
 
83
		}
84
		}
84
 
85
 
85
		return valeur;
86
		return valeur;
86
	}
87
	}
87
 
88
 
88
	/**
89
	/**
89
	 * Pour éviter que l'on traite des valeurs nulles à l'affichage on passe par
90
	 * Pour éviter que l'on traite des valeurs nulles à l'affichage on passe par
90
	 * cette fonction qui retire les charactères nuls qui font planter
91
	 * cette fonction qui retire les charactères nuls qui font planter
91
	 * l'affichage, il ne faut pas utiliser get directement
92
	 * l'affichage, il ne faut pas utiliser get directement
92
	 * 
93
	 * 
93
	 * @param cle
94
	 * @param cle
94
	 * @return la valeur associée à la clé
95
	 * @return la valeur associée à la clé
95
	 */
96
	 */
96
	public String renvoyerValeurCorrecte(String cle) {
97
	public String renvoyerValeurCorrecte(String cle) {
97
		if (this.containsKey((cle))) {
98
		if (this.containsKey((cle))) {
98
			String valeur = this.get(cle);
99
			String valeur = this.get(cle);
99
			if (valeur.equals("null") || valeur == null) {
100
			if (valeur.equals("null") || valeur == null) {
100
				return " ";
101
				return " ";
101
			} else {
102
			} else {
102
				char nullChar = '\u0000';
103
				char nullChar = '\u0000';
103
				String sNull = "" + nullChar;
104
				String sNull = "" + nullChar;
104
				valeur = valeur.replaceAll(sNull, "");
105
				valeur = valeur.replaceAll(sNull, "");
105
				return valeur;
106
				return valeur;
106
			}
107
			}
107
		} else {
108
		} else {
108
			return " ";
109
			return " ";
109
		}
110
		}
110
	}
111
	}
111
 
112
 
112
	/**
113
	/**
113
	 * Acesseur pour l'id de l'image
114
	 * Acesseur pour l'id de l'image
114
	 * 
115
	 * 
115
	 * @return l'id de l'image
116
	 * @return l'id de l'image
116
	 */
117
	 */
117
	public String getId() {
118
	public String getId() {
118
 
119
 
119
		return renvoyerValeurCorrecte("id_image");
120
		return renvoyerValeurCorrecte("id_image");
120
	}
121
	}
121
 
122
 
122
	/**
123
	/**
123
	 * Acesseur pour le numero d'ordre de l'image
124
	 * Acesseur pour le numero d'ordre de l'image
124
	 * 
125
	 * 
125
	 * @return l'ordre de l'image
126
	 * @return l'ordre de l'image
126
	 */
127
	 */
127
	public String getOrdre() {
128
	public String getOrdre() {
128
 
129
 
129
		return renvoyerValeurCorrecte("ordre");
130
		return renvoyerValeurCorrecte("ordre");
130
	}
131
	}
131
 
132
 
132
	/**
133
	/**
133
	 * Base de l'url serveur pour les images
134
	 * Base de l'url serveur pour les images
134
	 * 
135
	 * 
135
	 * @return url racine pour les images
136
	 * @return url racine pour les images
136
	 */
137
	 */
137
	public String getVraieBaseUrl() {
138
	public String getVraieBaseUrl() {
138
		return Configuration.getImageBaseUrl() ;
139
		return Configuration.getImageBaseUrl() ;
139
	}
140
	}
140
	
141
	
141
	/**
142
	/**
142
	 * Base de l'url serveur pour les images
143
	 * Base de l'url serveur pour les images
143
	 * 
144
	 * 
144
	 * @return url racine pour les images
145
	 * @return url racine pour les images
145
	 */
146
	 */
146
	public String getBaseUrlRedirect() {
147
	public String getBaseUrlRedirect() {
147
		return Configuration.getImageRedirectUrl() ;
148
		return Configuration.getImageRedirectUrl() ;
148
	}
149
	}
149
	
150
	
150
	public String getIdAvecPadding() {
151
	public String getIdAvecPadding() {
151
		
152
		
152
		String id = getId();
153
		String id = getId();
153
 
154
 
154
		int maxZeros = 9 - id.length();
155
		int maxZeros = 9 - id.length();
155
 
156
 
156
		for (int i = 0; i < maxZeros; i++) {
157
		for (int i = 0; i < maxZeros; i++) {
157
			id = "0" + id;
158
			id = "0" + id;
158
		}
159
		}
159
		
160
		
160
		return id;
161
		return id;
161
	}
162
	}
162
	
163
	
163
	private String getUrlFormat(String format) {
164
	private String getUrlFormat(String format) {
164
		
165
		
165
		String urlImage = "";
166
		String urlImage = "";
166
		
167
		
167
		if(Configuration.utiliseRedirectionImages()) {
168
		if(Configuration.utiliseRedirectionImages()) {
168
		
169
		
169
			String identifiantRedirect = getIdAvecPadding()+format;
170
			String identifiantRedirect = getIdAvecPadding()+format;
170
			urlImage = getBaseUrlRedirect()+identifiantRedirect;
171
			urlImage = getBaseUrlRedirect()+identifiantRedirect;
171
		} else {
172
		} else {
172
			urlImage = getVraieUrlFormat(format);
173
			urlImage = getVraieUrlFormat(format);
173
		}
174
		}
174
 
175
 
175
		return urlImage;
176
		return urlImage;
176
	}
177
	}
177
 
178
 
178
	/**
179
	/**
179
	 * Renvoie le nom de base du fichier image et ses sous dossier
180
	 * Renvoie le nom de base du fichier image et ses sous dossier
180
	 * 
181
	 * 
181
	 * @return le nom de base du fichier de type (XXX_XXX_XXX), et ses sous
182
	 * @return le nom de base du fichier de type (XXX_XXX_XXX), et ses sous
182
	 *         dossier
183
	 *         dossier
183
	 */
184
	 */
184
	public String[] getVraiCheminBaseFichier() {
185
	public String[] getVraiCheminBaseFichier() {
185
		
186
		
186
		String id = getIdAvecPadding();
187
		String id = getIdAvecPadding();
187
 
188
 
188
		String dossierNv1 = id.substring(0, 3);
189
		String dossierNv1 = id.substring(0, 3);
189
		String dossierNv2 = id.substring(3, 6);
190
		String dossierNv2 = id.substring(3, 6);
190
		String fichierNv = id.substring(6, 9);
191
		String fichierNv = id.substring(6, 9);
191
 
192
 
192
		String nomFichier = dossierNv1 + "_" + dossierNv2 + "_" + fichierNv;
193
		String nomFichier = dossierNv1 + "_" + dossierNv2 + "_" + fichierNv;
193
 
194
 
194
		String[] infosFichier = { nomFichier, dossierNv1, dossierNv2 };
195
		String[] infosFichier = { nomFichier, dossierNv1, dossierNv2 };
195
		
196
		
196
		return infosFichier;
197
		return infosFichier;
197
	}
198
	}
198
	
199
	
199
	private String getVraieUrlFormat(String format) {
200
	private String getVraieUrlFormat(String format) {
200
		
201
		
201
		String[] infosFichier = getVraiCheminBaseFichier();
202
		String[] infosFichier = getVraiCheminBaseFichier();
202
 
203
 
203
		return getVraieBaseUrl() + infosFichier[1] + "/" + infosFichier[2] + "/"+format+"/"
204
		return getVraieBaseUrl() + infosFichier[1] + "/" + infosFichier[2] + "/"+format+"/"
204
				+ infosFichier[0] + "_"+format+".jpg";
205
				+ infosFichier[0] + "_"+format+".jpg";
205
	}
206
	}
206
	
207
	
207
	/**
208
	/**
208
	 * Renvoie le chemin et nom du fichier format original
209
	 * Renvoie le chemin et nom du fichier format original
209
	 * 
210
	 * 
210
	 * @return le chemin du fichier grand original
211
	 * @return le chemin du fichier grand original
211
	 */
212
	 */
212
	public String getUrlFormatOriginal() {
213
	public String getUrlFormatOriginal() {
213
 
214
 
214
		return getUrlFormat(Configuration.getFormatOriginal());
215
		return getUrlFormat(Configuration.getFormatOriginal());
215
	}
216
	}
216
 
217
 
217
	/**
218
	/**
218
	 * Renvoie le chemin et nom du fichier grand format
219
	 * Renvoie le chemin et nom du fichier grand format
219
	 * 
220
	 * 
220
	 * @return le chemin du fichier grand format
221
	 * @return le chemin du fichier grand format
221
	 */
222
	 */
222
	public String getUrlFormatZoom() {
223
	public String getUrlFormatZoom() {
223
 
224
 
224
		return getUrlFormat(Configuration.getFormatZoom());
225
		return getUrlFormat(Configuration.getFormatZoom());
225
	}
226
	}
226
 
227
 
227
	/**
228
	/**
228
	 * Renvoie le chemin et nom du fichier petit format
229
	 * Renvoie le chemin et nom du fichier petit format
229
	 * 
230
	 * 
230
	 * @return le chemin du fichier petit format
231
	 * @return le chemin du fichier petit format
231
	 */
232
	 */
232
	public String getUrlFormatGalerie() {
233
	public String getUrlFormatGalerie() {
233
 
234
 
234
		return getUrlFormat(Configuration.getFormatGalerie());
235
		return getUrlFormat(Configuration.getFormatGalerie());
235
	}
236
	}
236
 
237
 
237
	/**
238
	/**
238
	 * Renvoie le chemin et nom du fichier moyen format
239
	 * Renvoie le chemin et nom du fichier moyen format
239
	 * 
240
	 * 
240
	 * @return le chemin du fichier moyen format
241
	 * @return le chemin du fichier moyen format
241
	 */
242
	 */
242
	public String getUrlFormatListe() {
243
	public String getUrlFormatListe() {
243
 
244
 
244
		return getUrlFormat(Configuration.getFormatListe());
245
		return getUrlFormat(Configuration.getFormatListe());
245
	}
246
	}
246
 
247
 
247
	/**
248
	/**
248
	 * Renvoie la taille de l'image
249
	 * Renvoie la taille de l'image
249
	 * 
250
	 * 
250
	 * @return un tableau de deux string contenant la hauteur puis la largeur
251
	 * @return un tableau de deux string contenant la hauteur puis la largeur
251
	 */
252
	 */
252
	public String[] getTailleImage() {
253
	public String[] getTailleImage() {
253
		String[] XY = { renvoyerValeurCorrecte("hauteur"),
254
		String[] XY = { renvoyerValeurCorrecte("hauteur"),
254
				renvoyerValeurCorrecte("largeur") };
255
				renvoyerValeurCorrecte("largeur") };
255
		return XY;
256
		return XY;
256
	}
257
	}
257
 
258
 
258
	public String[] getNote() {
259
	public String[] getNote() {
259
		String[] note = { renvoyerValeurCorrecte("note_qualite") };
260
		String[] note = { renvoyerValeurCorrecte("note_qualite") };
260
		return note;
261
		return note;
261
	}
262
	}
262
 
263
 
263
	/**
264
	/**
264
	 * Renvoie la date exif associée à l'image
265
	 * Renvoie la date exif associée à l'image
265
	 * 
266
	 * 
266
	 * @return la date associée à l'image
267
	 * @return la date associée à l'image
267
	 */
268
	 */
268
	public String getDate() {
269
	public String getDate() {
269
 
270
 
270
		if(renvoyerValeurCorrecte("date_prise_de_vue").equals("00/00/0000"))
271
		if(renvoyerValeurCorrecte("date_prise_de_vue").equals("00/00/0000"))
271
		{
272
		{
272
			return "" ;
273
			return "" ;
273
		}
274
		}
274
		return renvoyerValeurCorrecte("date_prise_de_vue");
275
		return renvoyerValeurCorrecte("date_prise_de_vue");
275
	}
276
	}
276
 
277
 
277
	/**
278
	/**
278
	 * Renvoie la ville associée à l'image
279
	 * Renvoie la ville associée à l'image
279
	 * 
280
	 * 
280
	 * @return la ville iptc
281
	 * @return la ville iptc
281
	 */
282
	 */
282
	public Object getIptcCity() {
283
	public Object getIptcCity() {
283
 
284
 
284
		return renvoyerValeurCorrecte("");
285
		return renvoyerValeurCorrecte("");
285
	}
286
	}
286
 
287
 
287
	/**
288
	/**
288
	 * Renvoie le fabricant de l'appareil
289
	 * Renvoie le fabricant de l'appareil
289
	 * 
290
	 * 
290
	 * @return le fabricant
291
	 * @return le fabricant
291
	 */
292
	 */
292
	public String getFabriquantAppareil() {
293
	public String getFabriquantAppareil() {
293
 
294
 
294
		return renvoyerValeurCorrecte("appareil_fabricant");
295
		return renvoyerValeurCorrecte("appareil_fabricant");
295
	}
296
	}
296
 
297
 
297
	/**
298
	/**
298
	 * Renvoie le modele de l'appareil
299
	 * Renvoie le modele de l'appareil
299
	 * 
300
	 * 
300
	 * @return le modele
301
	 * @return le modele
301
	 */
302
	 */
302
	public String getModeleAppareil() {
303
	public String getModeleAppareil() {
303
 
304
 
304
		return renvoyerValeurCorrecte("appareil_modele");
305
		return renvoyerValeurCorrecte("appareil_modele");
305
	}
306
	}
306
 
307
 
307
	/**
308
	/**
308
	 * Renvoie un tableau nom / valeur de toutes les metadonnées Iptc
309
	 * Renvoie un tableau nom / valeur de toutes les metadonnées Iptc
309
	 * 
310
	 * 
310
	 * @return les métadonnées iptc
311
	 * @return les métadonnées iptc
311
	 */
312
	 */
312
	public String[][] getMetadonnesIptc() {		
313
	public String[][] getMetadonnesIptc() {		
313
		return getMetadonneesXml("meta_iptc");
314
		return getMetadonneesXml("meta_iptc");
314
	}
315
	}
315
 
316
 
316
	/**
317
	/**
317
	 * Renvoie un tableau nom / valeur de toutes les metadonnées Exif
318
	 * Renvoie un tableau nom / valeur de toutes les metadonnées Exif
318
	 * 
319
	 * 
319
	 * @return les métadonnées Exif
320
	 * @return les métadonnées Exif
320
	 */
321
	 */
321
	public String[][] getMetadonnesExif() {
322
	public String[][] getMetadonnesExif() {
322
		return getMetadonneesXml("meta_exif");
323
		return getMetadonneesXml("meta_exif");
323
	}
324
	}
324
	
325
	
325
	private String[][] getMetadonneesXml(String type) {
326
	private String[][] getMetadonneesXml(String type) {
326
		
327
		
327
		String[][] metadonnees = {{},{}};
328
		String[][] metadonnees = {{},{}};
328
		
329
		
329
		String xml = renvoyerValeurCorrecte(type);
330
		String xml = renvoyerValeurCorrecte(type);
330
		
331
		
331
		String invalidXmlPattern = "[^"
332
		String invalidXmlPattern = "[^"
332
		                             + "\\u0009\\u000A\\u000D"
333
		                             + "\\u0009\\u000A\\u000D"
333
		                             + "\\u0020-\\uD7FF"
334
		                             + "\\u0020-\\uD7FF"
334
		                             + "\\uE000-\\uFFFD"
335
		                             + "\\uE000-\\uFFFD"
335
		                             + "\\u10000-\\u10FFFF"
336
		                             + "\\u10000-\\u10FFFF"
336
		                             + "]+";
337
		                             + "]+";
337
		xml = xml.replaceAll(invalidXmlPattern, " ");
338
		xml = xml.replaceAll(invalidXmlPattern, " ");
338
 
339
 
339
		try {
340
		try {
340
			Document d = XMLParser.parse(xml);
341
			Document d = XMLParser.parse(xml);
341
			if(d.hasChildNodes()) {
342
			if(d.hasChildNodes()) {
342
				NodeList attributs = d.getFirstChild().getChildNodes();
343
				NodeList attributs = d.getFirstChild().getChildNodes();
343
				
344
				
344
				int taille = attributs.getLength();
345
				int taille = attributs.getLength();
345
				metadonnees = new String[taille][2];
346
				metadonnees = new String[taille][2];
346
				
347
				
347
				for(int i = 0; i < taille; i++)  {
348
				for(int i = 0; i < taille; i++)  {
348
					if(attributs.item(i) != null) {
349
					if(attributs.item(i) != null) {
349
						XMLParser.removeWhitespace(attributs.item(i));
350
						XMLParser.removeWhitespace(attributs.item(i));
350
						attributs.item(i).normalize();
351
						attributs.item(i).normalize();
351
						String nomMetaDonneestraduite = VocabulaireMetadonnees.getTraduction(attributs.item(i).getNodeName());
352
						String nomMetaDonneestraduite = VocabulaireMetadonnees.getTraduction(attributs.item(i).getNodeName());
352
						metadonnees[i][0] = nomMetaDonneestraduite;
353
						metadonnees[i][0] = nomMetaDonneestraduite;
353
						if(attributs.item(i).hasChildNodes()) {
354
						if(attributs.item(i).hasChildNodes()) {
354
							Node valeur = attributs.item(i).getFirstChild();
355
							Node valeur = attributs.item(i).getFirstChild();
355
							if(valeur.getNodeType() == Node.TEXT_NODE) {
356
							if(valeur.getNodeType() == Node.TEXT_NODE) {
356
								metadonnees[i][1] = ((Text)valeur).getData();
357
								metadonnees[i][1] = ((Text)valeur).getData();
357
							} else {
358
							} else {
358
								metadonnees[i][1] = "";
359
								metadonnees[i][1] = "";
359
							}
360
							}
360
						}
361
						}
361
					}
362
					}
362
				}
363
				}
363
			}
364
			}
364
		} catch(DOMParseException e) {
365
		} catch(DOMParseException e) {
365
			
366
			
366
		}	
367
		}	
367
		
368
		
368
		return metadonnees;
369
		return metadonnees;
369
	}
370
	}
370
 
371
 
371
	/**
372
	/**
372
	 * Renvoie un tableau nom / valeur contenant les infos générales
373
	 * Renvoie un tableau nom / valeur contenant les infos générales
373
	 * 
374
	 * 
374
	 * @return les infos générales
375
	 * @return les infos générales
375
	 */
376
	 */
376
	public String[][] getInfoGenerales() {
377
	public String[][] getInfoGenerales() {
377
 
378
 
378
		String[][] metaGen = new String[2][2];
379
		String[][] metaGen = new String[2][2];
379
 
380
 
380
		metaGen[0][0] = "commentaire";
381
		metaGen[0][0] = "commentaire";
381
		metaGen[0][1] = this.renvoyerValeurCorrecte("commentaire");
382
		metaGen[0][1] = this.renvoyerValeurCorrecte("commentaire");
382
 
383
 
383
		metaGen[1][0] = "date_prise_de_vue";
384
		metaGen[1][0] = "date_prise_de_vue";
384
		metaGen[1][1] = this.renvoyerValeurCorrecte("date_prise_de_vue");
385
		metaGen[1][1] = this.renvoyerValeurCorrecte("date_prise_de_vue");
385
 
386
 
386
		return metaGen;
387
		return metaGen;
387
	}
388
	}
388
 
389
 
389
	/**
390
	/**
390
	 * Renvoie une string contenant les mots clés séparés par des ','
391
	 * Renvoie une string contenant les mots clés séparés par des ','
391
	 * 
392
	 * 
392
	 * @return les mots clés
393
	 * @return les mots clés
393
	 */
394
	 */
394
	public String getMotsCles() {
395
	public String getMotsCles() {
395
 
396
 
396
		return renvoyerValeurCorrecte("mots_cles");
397
		return renvoyerValeurCorrecte("mots_cles");
397
	}
398
	}
398
 
399
 
399
	/**
400
	/**
400
	 * Met à jour le commenentaire et la date
401
	 * Met à jour le commenentaire et la date
401
	 * 
402
	 * 
402
	 * @param commentaires
403
	 * @param commentaires
403
	 *            le nouveau commentaire
404
	 *            le nouveau commentaire
404
	 * @param date
405
	 * @param date
405
	 *            la nouvelle date
406
	 *            la nouvelle date
406
	 */
407
	 */
407
	public void miseAJourInfoGenerales(String commentaires, String date,
408
	public void miseAJourInfoGenerales(String commentaires, String date,
408
			String note) {
409
			String note) {
409
		put("commentaire", commentaires);
410
		put("commentaire", commentaires);
410
		put("note_qualite", note);
411
		put("note_qualite", note);
411
		put("date_prise_de_vue", date);
412
		put("date_prise_de_vue", date);
412
	}
413
	}
413
 
414
 
414
	/**
415
	/**
415
	 * Met à jour les mots clés
416
	 * Met à jour les mots clés
416
	 * 
417
	 * 
417
	 * @param motsClesEnCours
418
	 * @param motsClesEnCours
418
	 *            la liste de mots clés séparés par des ','
419
	 *            la liste de mots clés séparés par des ','
419
	 */
420
	 */
420
	public void mettreAjourMotsCles(String motsClesEnCours) {
421
	public void mettreAjourMotsCles(String motsClesEnCours) {
421
 
422
 
422
		put("mots_cles", motsClesEnCours);
423
		put("mots_cles", motsClesEnCours);
423
 
424
 
424
	}
425
	}
425
	
426
	
426
	public void mettreAjourObsAssociees(String idsObsAssociees) {
427
	public void mettreAjourObsAssociees(String idsObsAssociees) {
427
		put("id_observation", idsObsAssociees);
428
		put("id_observation", idsObsAssociees);
428
	}
429
	}
429
	
430
	
430
	/**
431
	/**
431
	 * Accesseur pour le nom original
432
	 * Accesseur pour le nom original
432
	 * 
433
	 * 
433
	 * @return le nom orginal de l'image
434
	 * @return le nom orginal de l'image
434
	 */
435
	 */
435
	public String getNomOriginal() {
436
	public String getNomOriginal() {
436
		return renvoyerValeurCorrecte("nom_original");
437
		return renvoyerValeurCorrecte("nom_original");
437
	}
438
	}
438
	
439
	
439
	public String getIdsObsAssociees() {
440
	public String getIdsObsAssociees() {
440
		
441
		
441
		String observationsAssociees = renvoyerValeurCorrecte("id_observation");
442
		String observationsAssociees = renvoyerValeurCorrecte("id_observation");
442
		observationsAssociees = observationsAssociees.replaceAll("null", "");
443
		observationsAssociees = observationsAssociees.replaceAll("null", "");
443
		
444
		
444
		return observationsAssociees;
445
		return observationsAssociees;
445
	}
446
	}
446
 
447
 
447
}
448
}