Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1289 Rev 1315
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
	@Override
73
	public String toString() {
73
	public String toString() {
74
		String valeur = " ";
74
		String valeur = " ";
75
 
75
 
76
		for (Iterator<String> iterator = this.keySet().iterator(); iterator
76
		for (Iterator<String> iterator = this.keySet().iterator(); iterator
77
				.hasNext();) {
77
				.hasNext();) {
78
 
78
 
79
			String key = iterator.next();
79
			String key = iterator.next();
80
			if (this.get(key) != null) {
80
			if (this.get(key) != null) {
81
				valeur += "cle : " + key + " valeur :" + this.get(key) + "\n";
81
				valeur += "cle : " + key + " valeur :" + this.get(key) + "\n";
82
			}
82
			}
83
 
83
 
84
		}
84
		}
85
 
85
 
86
		return valeur;
86
		return valeur;
87
	}
87
	}
88
 
88
 
89
	/**
89
	/**
90
	 * 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
91
	 * cette fonction qui retire les charactères nuls qui font planter
91
	 * cette fonction qui retire les charactères nuls qui font planter
92
	 * l'affichage, il ne faut pas utiliser get directement
92
	 * l'affichage, il ne faut pas utiliser get directement
93
	 * 
93
	 * 
94
	 * @param cle
94
	 * @param cle
95
	 * @return la valeur associée à la clé
95
	 * @return la valeur associée à la clé
96
	 */
96
	 */
97
	public String renvoyerValeurCorrecte(String cle) {
97
	public String renvoyerValeurCorrecte(String cle) {
98
		if (this.containsKey((cle))) {
98
		if (this.containsKey((cle))) {
99
			String valeur = this.get(cle);
99
			String valeur = this.get(cle);
100
			if (valeur.equals("null") || valeur == null) {
100
			if (valeur.equals("null") || valeur == null) {
101
				return " ";
101
				return " ";
102
			} else {
102
			} else {
103
				char nullChar = '\u0000';
103
				char nullChar = '\u0000';
104
				String sNull = "" + nullChar;
104
				String sNull = "" + nullChar;
105
				valeur = valeur.replaceAll(sNull, "");
105
				valeur = valeur.replaceAll(sNull, "");
106
				return valeur;
106
				return valeur;
107
			}
107
			}
108
		} else {
108
		} else {
109
			return " ";
109
			return " ";
110
		}
110
		}
111
	}
111
	}
112
 
112
 
113
	/**
113
	/**
114
	 * Acesseur pour l'id de l'image
114
	 * Acesseur pour l'id de l'image
115
	 * 
115
	 * 
116
	 * @return l'id de l'image
116
	 * @return l'id de l'image
117
	 */
117
	 */
118
	public String getId() {
118
	public String getId() {
119
 
119
 
120
		return renvoyerValeurCorrecte("id_image");
120
		return renvoyerValeurCorrecte("id_image");
121
	}
121
	}
122
 
122
 
123
	/**
123
	/**
124
	 * Acesseur pour le numero d'ordre de l'image
124
	 * Acesseur pour le numero d'ordre de l'image
125
	 * 
125
	 * 
126
	 * @return l'ordre de l'image
126
	 * @return l'ordre de l'image
127
	 */
127
	 */
128
	public String getOrdre() {
128
	public String getOrdre() {
129
 
129
 
130
		return renvoyerValeurCorrecte("ordre");
130
		return renvoyerValeurCorrecte("ordre");
131
	}
131
	}
132
 
132
 
133
	/**
133
	/**
134
	 * Base de l'url serveur pour les images
134
	 * Base de l'url serveur pour les images
135
	 * 
135
	 * 
136
	 * @return url racine pour les images
136
	 * @return url racine pour les images
137
	 */
137
	 */
138
	public String getVraieBaseUrl() {
138
	public String getVraieBaseUrl() {
139
		return Configuration.getImageBaseUrl() ;
139
		return Configuration.getImageBaseUrl() ;
140
	}
140
	}
141
	
141
	
142
	/**
142
	/**
143
	 * Base de l'url serveur pour les images
143
	 * Base de l'url serveur pour les images
144
	 * 
144
	 * 
145
	 * @return url racine pour les images
145
	 * @return url racine pour les images
146
	 */
146
	 */
147
	public String getBaseUrlRedirect() {
147
	public String getBaseUrlRedirect() {
148
		return Configuration.getImageRedirectUrl() ;
148
		return Configuration.getImageRedirectUrl() ;
149
	}
149
	}
150
	
150
	
151
	public String getIdAvecPadding() {
151
	public String getIdAvecPadding() {
152
		
152
		
153
		String id = getId();
153
		String id = getId();
154
 
154
 
155
		int maxZeros = 9 - id.length();
155
		int maxZeros = 9 - id.length();
156
 
156
 
157
		for (int i = 0; i < maxZeros; i++) {
157
		for (int i = 0; i < maxZeros; i++) {
158
			id = "0" + id;
158
			id = "0" + id;
159
		}
159
		}
160
		
160
		
161
		return id;
161
		return id;
162
	}
162
	}
163
	
163
	
164
	private String getUrlFormat(String format) {
164
	private String getUrlFormat(String format) {
165
		
165
		
166
		String urlImage = "";
166
		String urlImage = "";
167
		
167
		
168
		if(Configuration.utiliseRedirectionImages()) {
168
		if(Configuration.utiliseRedirectionImages()) {
169
		
169
		
170
			String identifiantRedirect = getIdAvecPadding()+format;
170
			String identifiantRedirect = getIdAvecPadding()+format;
171
			urlImage = getBaseUrlRedirect()+identifiantRedirect;
171
			urlImage = getBaseUrlRedirect()+identifiantRedirect;
172
		} else {
172
		} else {
173
			urlImage = getVraieUrlFormat(format);
173
			urlImage = getVraieUrlFormat(format);
174
		}
174
		}
175
 
175
 
176
		return urlImage;
176
		return urlImage;
177
	}
177
	}
178
 
178
 
179
	/**
179
	/**
180
	 * 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
181
	 * 
181
	 * 
182
	 * @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
183
	 *         dossier
183
	 *         dossier
184
	 */
184
	 */
185
	public String[] getVraiCheminBaseFichier() {
185
	public String[] getVraiCheminBaseFichier() {
186
		
186
		
187
		String id = getIdAvecPadding();
187
		String id = getIdAvecPadding();
188
 
188
 
189
		String dossierNv1 = id.substring(0, 3);
189
		String dossierNv1 = id.substring(0, 3);
190
		String dossierNv2 = id.substring(3, 6);
190
		String dossierNv2 = id.substring(3, 6);
191
		String fichierNv = id.substring(6, 9);
191
		String fichierNv = id.substring(6, 9);
192
 
192
 
193
		String nomFichier = dossierNv1 + "_" + dossierNv2 + "_" + fichierNv;
193
		String nomFichier = dossierNv1 + "_" + dossierNv2 + "_" + fichierNv;
194
 
194
 
195
		String[] infosFichier = { nomFichier, dossierNv1, dossierNv2 };
195
		String[] infosFichier = { nomFichier, dossierNv1, dossierNv2 };
196
		
196
		
197
		return infosFichier;
197
		return infosFichier;
198
	}
198
	}
199
	
199
	
200
	private String getVraieUrlFormat(String format) {
200
	private String getVraieUrlFormat(String format) {
201
		
201
		
202
		String[] infosFichier = getVraiCheminBaseFichier();
202
		String[] infosFichier = getVraiCheminBaseFichier();
203
 
203
 
204
		return getVraieBaseUrl() + infosFichier[1] + "/" + infosFichier[2] + "/"+format+"/"
204
		return getVraieBaseUrl() + infosFichier[1] + "/" + infosFichier[2] + "/"+format+"/"
205
				+ infosFichier[0] + "_"+format+".jpg";
205
				+ infosFichier[0] + "_"+format+".jpg";
206
	}
206
	}
207
	
207
	
208
	/**
208
	/**
209
	 * Renvoie le chemin et nom du fichier format original
209
	 * Renvoie le chemin et nom du fichier format original
210
	 * 
210
	 * 
211
	 * @return le chemin du fichier grand original
211
	 * @return le chemin du fichier grand original
212
	 */
212
	 */
213
	public String getUrlFormatOriginal() {
213
	public String getUrlFormatOriginal() {
214
 
214
 
215
		return getUrlFormat(Configuration.getFormatOriginal());
215
		return getUrlFormat(Configuration.getFormatOriginal());
216
	}
216
	}
217
 
217
 
218
	/**
218
	/**
219
	 * Renvoie le chemin et nom du fichier grand format
219
	 * Renvoie le chemin et nom du fichier grand format
220
	 * 
220
	 * 
221
	 * @return le chemin du fichier grand format
221
	 * @return le chemin du fichier grand format
222
	 */
222
	 */
223
	public String getUrlFormatZoom() {
223
	public String getUrlFormatZoom() {
224
 
224
 
225
		return getUrlFormat(Configuration.getFormatZoom());
225
		return getUrlFormat(Configuration.getFormatZoom());
226
	}
226
	}
227
 
227
 
228
	/**
228
	/**
229
	 * Renvoie le chemin et nom du fichier petit format
229
	 * Renvoie le chemin et nom du fichier petit format
230
	 * 
230
	 * 
231
	 * @return le chemin du fichier petit format
231
	 * @return le chemin du fichier petit format
232
	 */
232
	 */
233
	public String getUrlFormatGalerie() {
233
	public String getUrlFormatGalerie() {
234
 
234
 
235
		return getUrlFormat(Configuration.getFormatGalerie());
235
		return getUrlFormat(Configuration.getFormatGalerie());
236
	}
236
	}
237
 
237
 
238
	/**
238
	/**
239
	 * Renvoie le chemin et nom du fichier moyen format
239
	 * Renvoie le chemin et nom du fichier moyen format
240
	 * 
240
	 * 
241
	 * @return le chemin du fichier moyen format
241
	 * @return le chemin du fichier moyen format
242
	 */
242
	 */
243
	public String getUrlFormatListe() {
243
	public String getUrlFormatListe() {
244
 
244
 
245
		return getUrlFormat(Configuration.getFormatListe());
245
		return getUrlFormat(Configuration.getFormatListe());
246
	}
246
	}
247
 
247
 
248
	/**
248
	/**
249
	 * Renvoie la taille de l'image
249
	 * Renvoie la taille de l'image
250
	 * 
250
	 * 
251
	 * @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
252
	 */
252
	 */
253
	public String[] getTailleImage() {
253
	public String[] getTailleImage() {
254
		String[] XY = { renvoyerValeurCorrecte("hauteur"),
254
		String[] XY = { renvoyerValeurCorrecte("hauteur"),
255
				renvoyerValeurCorrecte("largeur") };
255
				renvoyerValeurCorrecte("largeur") };
256
		return XY;
256
		return XY;
257
	}
257
	}
258
 
258
 
259
	public String[] getNote() {
259
	public String[] getNote() {
260
		String[] note = { renvoyerValeurCorrecte("note_qualite") };
260
		String[] note = { renvoyerValeurCorrecte("note_qualite") };
261
		return note;
261
		return note;
262
	}
262
	}
263
 
263
 
264
	/**
264
	/**
265
	 * Renvoie la date exif associée à l'image
265
	 * Renvoie la date exif associée à l'image
266
	 * 
266
	 * 
267
	 * @return la date associée à l'image
267
	 * @return la date associée à l'image
268
	 */
268
	 */
269
	public String getDate() {
269
	public String getDate() {
270
 
270
 
271
		if(renvoyerValeurCorrecte("date_prise_de_vue").equals("00/00/0000"))
271
		if(renvoyerValeurCorrecte("date_prise_de_vue").equals("00/00/0000"))
272
		{
272
		{
273
			return "" ;
273
			return "" ;
274
		}
274
		}
275
		return renvoyerValeurCorrecte("date_prise_de_vue");
275
		return renvoyerValeurCorrecte("date_prise_de_vue");
276
	}
276
	}
277
 
277
 
278
	/**
278
	/**
279
	 * Renvoie la ville associée à l'image
279
	 * Renvoie la ville associée à l'image
280
	 * 
280
	 * 
281
	 * @return la ville iptc
281
	 * @return la ville iptc
282
	 */
282
	 */
283
	public Object getIptcCity() {
283
	public Object getIptcCity() {
284
 
284
 
285
		return renvoyerValeurCorrecte("");
285
		return renvoyerValeurCorrecte("");
286
	}
286
	}
287
 
287
 
288
	/**
288
	/**
289
	 * Renvoie le fabricant de l'appareil
289
	 * Renvoie le fabricant de l'appareil
290
	 * 
290
	 * 
291
	 * @return le fabricant
291
	 * @return le fabricant
292
	 */
292
	 */
293
	public String getFabriquantAppareil() {
293
	public String getFabriquantAppareil() {
294
 
294
 
295
		return renvoyerValeurCorrecte("appareil_fabricant");
295
		return renvoyerValeurCorrecte("appareil_fabricant");
296
	}
296
	}
297
 
297
 
298
	/**
298
	/**
299
	 * Renvoie le modele de l'appareil
299
	 * Renvoie le modele de l'appareil
300
	 * 
300
	 * 
301
	 * @return le modele
301
	 * @return le modele
302
	 */
302
	 */
303
	public String getModeleAppareil() {
303
	public String getModeleAppareil() {
304
 
304
 
305
		return renvoyerValeurCorrecte("appareil_modele");
305
		return renvoyerValeurCorrecte("appareil_modele");
306
	}
306
	}
307
 
307
 
308
	/**
308
	/**
309
	 * Renvoie un tableau nom / valeur de toutes les metadonnées Iptc
309
	 * Renvoie un tableau nom / valeur de toutes les metadonnées Iptc
310
	 * 
310
	 * 
311
	 * @return les métadonnées iptc
311
	 * @return les métadonnées iptc
312
	 */
312
	 */
313
	public String[][] getMetadonnesIptc() {		
313
	public String[][] getMetadonnesIptc() {		
314
		return getMetadonneesXml("meta_iptc");
314
		return getMetadonneesXml("meta_iptc");
315
	}
315
	}
316
 
316
 
317
	/**
317
	/**
318
	 * Renvoie un tableau nom / valeur de toutes les metadonnées Exif
318
	 * Renvoie un tableau nom / valeur de toutes les metadonnées Exif
319
	 * 
319
	 * 
320
	 * @return les métadonnées Exif
320
	 * @return les métadonnées Exif
321
	 */
321
	 */
322
	public String[][] getMetadonnesExif() {
322
	public String[][] getMetadonnesExif() {
323
		return getMetadonneesXml("meta_exif");
323
		return getMetadonneesXml("meta_exif");
324
	}
324
	}
325
	
325
	
326
	private String[][] getMetadonneesXml(String type) {
326
	private String[][] getMetadonneesXml(String type) {
327
		
327
		
328
		String[][] metadonnees = {{},{}};
328
		String[][] metadonnees = {{},{}};
329
		
329
		
330
		String xml = renvoyerValeurCorrecte(type);
330
		String xml = renvoyerValeurCorrecte(type);
331
		
331
		
332
		String invalidXmlPattern = "[^"
332
		String invalidXmlPattern = "[^"
333
		                             + "\\u0009\\u000A\\u000D"
333
		                             + "\\u0009\\u000A\\u000D"
334
		                             + "\\u0020-\\uD7FF"
334
		                             + "\\u0020-\\uD7FF"
335
		                             + "\\uE000-\\uFFFD"
335
		                             + "\\uE000-\\uFFFD"
336
		                             + "\\u10000-\\u10FFFF"
336
		                             + "\\u10000-\\u10FFFF"
337
		                             + "]+";
337
		                             + "]+";
338
		xml = xml.replaceAll(invalidXmlPattern, " ");
338
		xml = xml.replaceAll(invalidXmlPattern, " ");
339
 
339
 
340
		try {
340
		try {
341
			Document d = XMLParser.parse(xml);
341
			Document d = XMLParser.parse(xml);
342
			if(d.hasChildNodes()) {
342
			if(d.hasChildNodes()) {
343
				NodeList attributs = d.getFirstChild().getChildNodes();
343
				NodeList attributs = d.getFirstChild().getChildNodes();
344
				
344
				
345
				int taille = attributs.getLength();
345
				int taille = attributs.getLength();
346
				metadonnees = new String[taille][2];
346
				metadonnees = new String[taille][2];
347
				
347
				
348
				for(int i = 0; i < taille; i++)  {
348
				for(int i = 0; i < taille; i++)  {
349
					if(attributs.item(i) != null) {
349
					if(attributs.item(i) != null) {
350
						XMLParser.removeWhitespace(attributs.item(i));
350
						XMLParser.removeWhitespace(attributs.item(i));
351
						attributs.item(i).normalize();
351
						attributs.item(i).normalize();
352
						String nomMetaDonneestraduite = VocabulaireMetadonnees.getTraduction(attributs.item(i).getNodeName());
352
						String nomMetaDonneestraduite = VocabulaireMetadonnees.getTraduction(attributs.item(i).getNodeName());
353
						metadonnees[i][0] = nomMetaDonneestraduite;
353
						metadonnees[i][0] = nomMetaDonneestraduite;
354
						if(attributs.item(i).hasChildNodes()) {
354
						if(attributs.item(i).hasChildNodes()) {
355
							Node valeur = attributs.item(i).getFirstChild();
355
							Node valeur = attributs.item(i).getFirstChild();
356
							if(valeur.getNodeType() == Node.TEXT_NODE) {
356
							if(valeur.getNodeType() == Node.TEXT_NODE) {
357
								metadonnees[i][1] = ((Text)valeur).getData();
357
								metadonnees[i][1] = ((Text)valeur).getData();
358
							} else {
358
							} else {
359
								metadonnees[i][1] = "";
359
								metadonnees[i][1] = "";
360
							}
360
							}
361
						}
361
						}
362
					}
362
					}
363
				}
363
				}
364
			}
364
			}
365
		} catch(DOMParseException e) {
365
		} catch(DOMParseException e) {
366
			
366
			
367
		}	
367
		}	
368
		
368
		
369
		return metadonnees;
369
		return metadonnees;
370
	}
370
	}
371
 
371
 
372
	/**
372
	/**
373
	 * Renvoie un tableau nom / valeur contenant les infos générales
373
	 * Renvoie un tableau nom / valeur contenant les infos générales
374
	 * 
374
	 * 
375
	 * @return les infos générales
375
	 * @return les infos générales
376
	 */
376
	 */
377
	public String[][] getInfoGenerales() {
377
	public String[][] getInfoGenerales() {
378
 
378
 
379
		String[][] metaGen = new String[2][2];
379
		String[][] metaGen = new String[2][2];
380
 
380
 
381
		metaGen[0][0] = "commentaire";
381
		metaGen[0][0] = "commentaire";
382
		metaGen[0][1] = this.renvoyerValeurCorrecte("commentaire");
382
		metaGen[0][1] = this.renvoyerValeurCorrecte("commentaire");
383
 
383
 
384
		metaGen[1][0] = "date_prise_de_vue";
384
		metaGen[1][0] = "date_prise_de_vue";
385
		metaGen[1][1] = this.renvoyerValeurCorrecte("date_prise_de_vue");
385
		metaGen[1][1] = this.renvoyerValeurCorrecte("date_prise_de_vue");
386
 
386
 
387
		return metaGen;
387
		return metaGen;
388
	}
388
	}
389
 
389
 
390
	/**
390
	/**
391
	 * 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 ','
392
	 * 
392
	 * 
393
	 * @return les mots clés
393
	 * @return les mots clés
394
	 */
394
	 */
395
	public String getMotsCles() {
395
	public String getMotsCles() {
396
 
396
 
397
		return renvoyerValeurCorrecte("mots_cles");
397
		return renvoyerValeurCorrecte("mots_cles");
398
	}
398
	}
399
 
399
 
400
	/**
400
	/**
401
	 * Met à jour le commenentaire et la date
401
	 * Met à jour le commenentaire et la date
402
	 * 
402
	 * 
403
	 * @param commentaires
403
	 * @param commentaires
404
	 *            le nouveau commentaire
404
	 *            le nouveau commentaire
405
	 * @param date
405
	 * @param date
406
	 *            la nouvelle date
406
	 *            la nouvelle date
407
	 */
407
	 */
408
	public void miseAJourInfoGenerales(String commentaires, String date,
408
	public void miseAJourInfoGenerales(String commentaires, String date,
409
			String note) {
409
			String note) {
410
		put("commentaire", commentaires);
410
		put("commentaire", commentaires);
411
		put("note_qualite", note);
411
		put("note_qualite", note);
412
		put("date_prise_de_vue", date);
412
		put("date_prise_de_vue", date);
413
	}
413
	}
414
 
414
 
415
	/**
415
	/**
416
	 * Met à jour les mots clés
416
	 * Met à jour les mots clés
417
	 * 
417
	 * 
418
	 * @param motsClesEnCours
418
	 * @param motsClesEnCours
419
	 *            la liste de mots clés séparés par des ','
419
	 *            la liste de mots clés séparés par des ','
420
	 */
420
	 */
421
	public void mettreAjourMotsCles(String motsClesEnCours) {
421
	public void mettreAjourMotsCles(String motsClesEnCours) {
422
 
422
 
423
		put("mots_cles", motsClesEnCours);
423
		put("mots_cles", motsClesEnCours);
424
 
424
 
425
	}
425
	}
426
	
426
	
427
	public void mettreAjourObsAssociees(String idsObsAssociees) {
427
	public void mettreAjourObsAssociees(String idsObsAssociees) {
428
		put("id_observation", idsObsAssociees);
428
		put("id_observation", idsObsAssociees);
429
	}
429
	}
430
	
430
	
431
	/**
431
	/**
432
	 * Accesseur pour le nom original
432
	 * Accesseur pour le nom original
433
	 * 
433
	 * 
434
	 * @return le nom orginal de l'image
434
	 * @return le nom orginal de l'image
435
	 */
435
	 */
436
	public String getNomOriginal() {
436
	public String getNomOriginal() {
437
		return renvoyerValeurCorrecte("nom_original");
437
		return renvoyerValeurCorrecte("nom_original");
438
	}
438
	}
439
	
439
	
440
	public String getIdsObsAssociees() {
440
	public String getIdsObsAssociees() {
441
		
441
		
442
		String observationsAssociees = renvoyerValeurCorrecte("id_observation");
442
		String observationsAssociees = renvoyerValeurCorrecte("id_observation");
443
		observationsAssociees = observationsAssociees.replaceAll("null", "");
443
		observationsAssociees = observationsAssociees.replaceAll("null", "");
444
		
444
		
445
		return observationsAssociees;
445
		return observationsAssociees;
446
	}
446
	}
-
 
447
	
447
 
448
	
-
 
449
	public String[][] obtenirChampsModifiablesImage() {
-
 
450
		String[][] champs = {
-
 
451
				{"commentaire", renvoyerValeurCorrecte("commentaire")},
-
 
452
				{"note_qualite", renvoyerValeurCorrecte("note_qualite")},
-
 
453
				{"date_prise_de_vue",renvoyerValeurCorrecte("date_prise_de_vue")}
-
 
454
		};
-
 
455
		return champs;
-
 
456
	}
448
}
457
}