Subversion Repositories eFlore/Applications.cel

Rev

Rev 2 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 5
Line 3... Line 3...
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;
Line 6... Line 6...
6
 
6
 
-
 
7
import com.google.gwt.json.client.JSONObject;
7
import com.google.gwt.json.client.JSONObject;
8
 
8
/**
9
/**
9
 * 
10
 * 
10
 * Classe representant une image du carnet,
-
 
11
 * elle ne contient pas d'image à proprement parler mais
11
 * Classe representant une image du carnet, elle ne contient pas d'image à
12
 * plutôt les informations associées ainsi que l'url distante.
12
 * proprement parler mais plutôt les informations associées ainsi que l'url
13
 * C'est une table de hachage qui contient des paires propriété/valeur 
13
 * distante. C'est une table de hachage qui contient des paires propriété/valeur
14
 * 
14
 * 
15
 */
15
 */
Line 16... Line -...
16
public class ImageCarnet extends HashMap<String, String> {
-
 
17
	
16
public class ImageCarnet extends HashMap<String, String> {
18
 
17
 
19
	/**
18
	/**
20
	 * 
19
	 * 
Line 21... Line 20...
21
	 */
20
	 */
22
	private static final long serialVersionUID = -6220175386957259859L;
21
	private static final long serialVersionUID = -6220175386957259859L;
-
 
22
 
23
 
23
	/**
24
	/**
24
	 * Constructeur avec un objet JSON
25
	 * Constructeur avec un objet JSON
25
	 * 
26
	 * @param image
-
 
27
	 */
26
	 * @param image
28
	public ImageCarnet(JSONObject image)
27
	 */
Line 29... Line 28...
29
	{	
28
	public ImageCarnet(JSONObject image) {
30
		// l'objet JSON est une table de hachage
29
		// l'objet JSON est une table de hachage
Line 31... Line 30...
31
		Set<String> im = image.keySet() ;
30
		Set<String> im = image.keySet();
32
		
31
 
33
		// on la parcourt pour chaque clé
32
		// on la parcourt pour chaque clé
34
		for (Iterator<String> iterator = im.iterator(); iterator.hasNext();) {
-
 
35
			
33
		for (Iterator<String> iterator = im.iterator(); iterator.hasNext();) {
36
			// si elle est associée à une valeur, on l'ajoute
34
 
37
			String key = iterator.next();
-
 
38
			if(image.get(key).isString() != null)
35
			// si elle est associée à une valeur, on l'ajoute
39
			{
-
 
40
				String valeur = image.get(key).isString().stringValue() ;
36
			String key = iterator.next();
41
				this.put(key, valeur) ;
37
			if (image.get(key).isString() != null) {
42
			}
38
				String valeur = image.get(key).isString().stringValue();
43
			else
39
				this.put(key, valeur);
Line 53... Line 49...
53
	
49
 
54
	/**
50
	/**
55
	 * Surcharge de toString qui affiche toutes les propriétés de l'image
51
	 * Surcharge de toString qui affiche toutes les propriétés de l'image
Line 56... Line 52...
56
	 */
52
	 */
57
	
-
 
58
	public String toString()
53
 
Line 59... Line 54...
59
	{
54
	public String toString() {
60
		String valeur = " ";
-
 
-
 
55
		String valeur = " ";
Line 61... Line 56...
61
		
56
 
62
		for (Iterator<String> iterator = this.keySet().iterator(); iterator.hasNext();) {
57
		for (Iterator<String> iterator = this.keySet().iterator(); iterator
63
			
-
 
64
			
58
				.hasNext();) {
65
			String key = iterator.next();
59
 
Line 66... Line 60...
66
			if(this.get(key) != null)
60
			String key = iterator.next();
Line 67... Line 61...
67
			{
61
			if (this.get(key) != null) {
68
				valeur += "cle : "+key+" valeur :"+this.get(key)+"\n" ;
62
				valeur += "cle : " + key + " valeur :" + this.get(key) + "\n";
Line 69... Line 63...
69
			}
63
			}
70
			
64
 
71
		}
65
		}
72
		
66
 
-
 
67
		return valeur;
73
		return valeur ;
68
	}
74
	}
69
 
75
	
70
	/**
76
	/**
71
	 * Pour éviter que l'on traite des valeurs nulles à l'affichage on passe par
77
	 * Pour éviter que l'on traite des valeurs nulles à l'affichage
-
 
78
	 * on passe par cette fonction qui retire les charactères nuls qui font planter
72
	 * cette fonction qui retire les charactères nuls qui font planter
79
	 * l'affichage, il ne faut pas utiliser get directement 
-
 
80
	 * @param cle
73
	 * l'affichage, il ne faut pas utiliser get directement
81
	 * @return la valeur associée à la clé
74
	 * 
82
	 */
-
 
83
	public String renvoyerValeurCorrecte(String cle)
75
	 * @param cle
84
	{
-
 
85
		if(this.containsKey((cle)))
76
	 * @return la valeur associée à la clé
86
		{
-
 
87
			String valeur = this.get(cle) ;
77
	 */
88
			if(valeur.equals("null") || valeur == null)
78
	public String renvoyerValeurCorrecte(String cle) {
89
			{
79
		if (this.containsKey((cle))) {
90
				return " " ;
80
			String valeur = this.get(cle);
91
			}			
81
			if (valeur.equals("null") || valeur == null) {
92
			else
-
 
93
			{
82
				return " ";
94
				char nullChar = '\u0000' ;
-
 
95
				String sNull = ""+nullChar ; 
83
			} else {
96
				valeur = valeur.replaceAll(sNull, "") ;
84
				char nullChar = '\u0000';
97
				return valeur ;
85
				String sNull = "" + nullChar;
Line 98... Line 86...
98
			}
86
				valeur = valeur.replaceAll(sNull, "");
99
		}
87
				return valeur;
-
 
88
			}
100
		else
89
		} else {
101
		{
90
			return " ";
102
			return " " ;
91
		}
Line 103... Line 92...
103
		}
92
	}
104
	}
93
 
Line 105... Line 94...
105
 
94
	/**
106
	/**
95
	 * Acesseur pour l'id de l'image
-
 
96
	 * 
107
	 * Acesseur pour l'id de l'image
97
	 * @return l'id de l'image
108
	 * @return l'id de l'image
98
	 */
109
	 */
99
	public String getId() {
Line 110... Line 100...
110
	public String getId() {
100
 
111
		
101
		return renvoyerValeurCorrecte("ci_id_image");
Line 112... Line 102...
112
		return renvoyerValeurCorrecte("ci_id_image") ;
102
	}
113
	}
103
 
-
 
104
	/**
114
	
105
	 * Acesseur pour le numero d'ordre de l'image
115
	/**
106
	 * 
116
	 * Acesseur pour le numero d'ordre de l'image
107
	 * @return l'ordre de l'image
117
	 * @return l'ordre de l'image
-
 
118
	 */
108
	 */
119
	public String getOrdre() {
109
	public String getOrdre() {
Line 120... Line 110...
120
		
110
 
121
		return renvoyerValeurCorrecte("ci_ordre") ;
111
		return renvoyerValeurCorrecte("ci_ordre");
-
 
112
	}
122
	}
113
 
-
 
114
	/**
123
	
115
	 * Base de l'url serveur pour les images
124
	/**
116
	 * 
125
	 * Base de l'url serveur pour les images
-
 
126
	 * @return url racine pour les images
117
	 * @return url racine pour les images
Line 127... Line 118...
127
	 */
118
	 */
Line 128... Line 119...
128
	public String getBaseUrl()
119
	public String getBaseUrl() {
129
	{
-
 
130
		return "http://162.38.234.9/Documents/images_serveur/" ;
120
		return "http://162.38.234.9/Documents/images_serveur/";
131
	}
121
	}
Line 132... Line 122...
132
	
122
 
133
	/**
123
	/**
Line 156... Line 146...
156
		return infosFichier ;
146
		return infosFichier;
157
	}
147
	}
Line 158... Line 148...
158
 
148
 
159
	/**
149
	/**
-
 
150
	 * Renvoie le chemin et nom du fichier grand format
160
	 * Renvoie le chemin et nom du fichier grand format
151
	 * 
161
	 * @return le chemin du fichier grand format
152
	 * @return le chemin du fichier grand format
162
	 */
153
	 */
Line 163... Line 154...
163
	public String getLUrl() {
154
	public String getLUrl() {
Line 164... Line 155...
164
		
155
 
-
 
156
		String[] infosFichier = getBaseFileName();
165
		String[] infosFichier = getBaseFileName() ;
157
 
Line 166... Line 158...
166
		
158
		return getBaseUrl() + infosFichier[1] + "/" + infosFichier[2] + "/L/"
167
		return getBaseUrl()+infosFichier[1]+"/"+infosFichier[2]+"/L/"+infosFichier[0]+"_L.jpg" ;
159
				+ infosFichier[0] + "_L.jpg";
-
 
160
	}
168
	}
161
 
169
	
162
	/**
170
	/**
163
	 * Renvoie le chemin et nom du fichier petit format
Line 171... Line 164...
171
	 * Renvoie le chemin et nom du fichier petit format
164
	 * 
Line 172... Line 165...
172
	 * @return le chemin du fichier petit format
165
	 * @return le chemin du fichier petit format
-
 
166
	 */
173
	 */
167
	public String getSUrl() {
Line 174... Line 168...
174
	public String getSUrl() {
168
 
175
		
169
		String[] infosFichier = getBaseFileName();
-
 
170
 
176
		String[] infosFichier = getBaseFileName() ;
171
		return getBaseUrl() + infosFichier[1] + "/" + infosFichier[2] + "/S/"
177
		
172
				+ infosFichier[0] + "_S.jpg";
178
		return getBaseUrl()+infosFichier[1]+"/"+infosFichier[2]+"/S/"+infosFichier[0]+"_S.jpg" ;
173
	}
Line 179... Line 174...
179
	}
174
 
Line 180... Line 175...
180
	
175
	/**
-
 
176
	 * Renvoie le chemin et nom du fichier moyen format
181
	/**
177
	 * 
Line 182... Line 178...
182
	 * Renvoie le chemin et nom du fichier moyen format
178
	 * @return le chemin du fichier moyen format
183
	 * @return le chemin du fichier moyen format
179
	 */
-
 
180
	public String getMUrl() {
184
	 */
181
 
185
	public String getMUrl() {
182
		String[] infosFichier = getBaseFileName();
186
		
183
 
187
		String[] infosFichier = getBaseFileName() ;
-
 
188
		
184
		return getBaseUrl() + infosFichier[1] + "/" + infosFichier[2] + "/M/"
-
 
185
				+ infosFichier[0] + "_M.jpg";
189
		return getBaseUrl()+infosFichier[1]+"/"+infosFichier[2]+"/M/"+infosFichier[0]+"_M.jpg" ;
186
	}
190
	}
187
 
Line 191... Line 188...
191
	
188
	/**
192
	/**
-
 
193
	 * Renvoie la taille de l'image
189
	 * Renvoie la taille de l'image
194
	 * @return un tableau de deux string contenant la hauteur puis la largeur 
190
	 * 
195
	 */
191
	 * @return un tableau de deux string contenant la hauteur puis la largeur
Line 196... Line 192...
196
	public String[] getTailleImage()
192
	 */
197
	{
193
	public String[] getTailleImage() {
-
 
194
		String[] XY = { renvoyerValeurCorrecte("ci_meta_height"),
198
		String[] XY = { renvoyerValeurCorrecte("ci_meta_height") , renvoyerValeurCorrecte("ci_meta_width") } ;
195
				renvoyerValeurCorrecte("ci_meta_width") };
199
		return XY ;
196
		return XY;
200
	}
197
	}
Line 201... Line 198...
201
	
198
 
202
	public String[] getNote()
199
	public String[] getNote() {
Line 203... Line 200...
203
	{
200
		String[] note = { renvoyerValeurCorrecte("ci_note_image") };
204
		String[] note = {renvoyerValeurCorrecte("ci_note_image") } ;
201
		return note;
-
 
202
	}
205
		return note ;
203
 
206
	}
204
	/**
207
	
205
	 * Renvoie la date exif associée à l'image
Line 208... Line 206...
208
	/**		
206
	 * 
209
	 * Renvoie la date exif associée à l'image
207
	 * @return la date associée à l'image
Line 210... Line 208...
210
	 * @return la date associée à l'image
208
	 */
211
	 */
209
	public String getDate() {
-
 
210
 
212
	public String getDate() {
211
		return renvoyerValeurCorrecte("ci_meta_date");
213
		
212
	}
214
		return renvoyerValeurCorrecte("ci_meta_date") ;
213
 
Line 215... Line 214...
215
	}
214
	/**
216
 
215
	 * Renvoie la ville associée à l'image
Line 217... Line 216...
217
	/**
216
	 * 
218
	 * Renvoie la ville associée à l'image
217
	 * @return la ville iptc
-
 
218
	 */
219
	 * @return la ville iptc
219
	public Object getIptcCity() {
220
	 */
220
 
221
	public Object getIptcCity() {
221
		return renvoyerValeurCorrecte("ci_meta_iptc_city");
Line 222... Line 222...
222
		
222
	}
223
		return renvoyerValeurCorrecte("ci_meta_iptc_city") ;
223
 
Line 224... Line 224...
224
	}
224
	/**
225
 
225
	 * Renvoie le fabricant de l'appareil
-
 
226
	 * 
226
	/**
227
	 * @return le fabricant
227
	 * Renvoie le fabricant de l'appareil
228
	 */
228
	 * @return le fabricant
229
	public String getMake() {
Line 229... Line 230...
229
	 */
230
 
230
	public String getMake() {
231
		return renvoyerValeurCorrecte("ci_meta_make");
Line 231... Line 232...
231
		
232
	}
232
		return renvoyerValeurCorrecte("ci_meta_make") ;
-
 
Line 233... Line 233...
233
	}
233
 
Line 234... Line 234...
234
 
234
	/**
235
	/**
235
	 * Renvoie le modele de l'appareil
Line 236... Line -...
236
	 * Renvoie le modele de l'appareil
-
 
237
	 * @return le modele
236
	 * 
238
	 */
237
	 * @return le modele
239
	public String getModel() {
-
 
240
		
238
	 */
241
		return renvoyerValeurCorrecte("ci_meta_model") ;
239
	public String getModel() {
242
	}
-
 
243
	
240
 
244
	/**
241
		return renvoyerValeurCorrecte("ci_meta_model");
245
	 * Renvoie un tableau nom / valeur de toutes les metadonnées Iptc
242
	}
246
	 * @return les métadonnées iptc
243
 
247
	 */
244
	/**
Line 278... Line 275...
278
		return metaIptc ;
275
		return metaIptc;
279
	}
276
	}
Line 280... Line 277...
280
	
277
 
281
	/**
278
	/**
-
 
279
	 * Renvoie un tableau nom / valeur de toutes les metadonnées Exif
282
	 * Renvoie un tableau nom / valeur de toutes les metadonnées Exif
280
	 * 
283
	 * @return les métadonnées Exif
281
	 * @return les métadonnées Exif
284
	 */
282
	 */
Line 285... Line 283...
285
	public String[][] getMetadonnesExif() {
283
	public String[][] getMetadonnesExif() {
286
			
284
 
Line 287... Line 285...
287
		String[][] metaExif = new String[31][2] ;
285
		String[][] metaExif = new String[31][2];
288
		int elem = 0 ;
-
 
Line 289... Line 286...
289
		
286
		int elem = 0;
Line 290... Line 287...
290
		for (Iterator<String> it = this.keySet().iterator(); it.hasNext();) 
287
 
291
		{
288
		for (Iterator<String> it = this.keySet().iterator(); it.hasNext();) {
Line 292... Line -...
292
						
-
 
293
			String key = it.next();
289
 
294
			
290
			String key = it.next();
295
				// on filtre le "ci"
-
 
296
				String type[] = key.split("_",3) ;
291
 
297
				
292
			// on filtre le "ci"
298
				
-
 
299
				// si c'est une metadonnee exif ou iptc
293
			String type[] = key.split("_", 3);
300
				if(type[1].equals("meta"))
294
 
301
				{
295
			// si c'est une metadonnee exif ou iptc
302
					String[] genre =  type[2].split("_",2) ;
296
			if (type[1].equals("meta")) {
303
					if(genre[0].equals("exif"))
297
				String[] genre = type[2].split("_", 2);
Line 316... Line 310...
316
	
310
 
Line 317... Line 311...
317
	}
311
	}
318
	
312
 
-
 
313
	/**
319
	/**
314
	 * Renvoie un tableau nom / valeur contenant les infos générales
320
	 * Renvoie un tableau nom / valeur contenant les infos générales
315
	 * 
321
	 * @return les infos générales
316
	 * @return les infos générales
Line 322... Line 317...
322
	 */
317
	 */
Line 333... Line 328...
333
		return metaGen ;
328
		return metaGen;
334
	}
329
	}
Line 335... Line 330...
335
	
330
 
336
	/**
331
	/**
-
 
332
	 * Renvoie une string contenant les mots clés séparés par des ','
337
	 * Renvoie une string contenant les mots clés séparés par des ','
333
	 * 
338
	 * @return les mots clés
334
	 * @return les mots clés
339
	 */
335
	 */
Line 340... Line 336...
340
	public String getMotsCles() {
336
	public String getMotsCles() {
341
		
337
 
Line 342... Line 338...
342
		return renvoyerValeurCorrecte("ci_meta_mots_cles") ;
338
		return renvoyerValeurCorrecte("ci_meta_mots_cles");
343
	}
339
	}
-
 
340
 
-
 
341
	/**
344
	
342
	 * Met à jour le commenentaire et la date
-
 
343
	 * 
345
	/**
344
	 * @param commentaires
346
	 * Met à jour le commenentaire et la date
345
	 *            le nouveau commentaire
347
	 * @param commentaires le nouveau commentaire
346
	 * @param date
348
	 * @param date la nouvelle date
347
	 *            la nouvelle date
349
	 */
348
	 */
350
	public void miseAJourInfoGenerales(String commentaires, String date, String note)
349
	public void miseAJourInfoGenerales(String commentaires, String date,
351
	{
350
			String note) {
352
			put("ci_meta_comment",commentaires) ;
351
		put("ci_meta_comment", commentaires);
Line 353... Line 352...
353
			put("ci_note_image",note) ;
352
		put("ci_note_image", note);
354
			put("ci_meta_date",date) ;
353
		put("ci_meta_date", date);
-
 
354
	}
-
 
355
 
355
	}
356
	/**
356
	
357
	 * Met à jour les mots clés
357
	/**
358
	 * 
Line 358... Line 359...
358
	 * Met à jour les mots clés
359
	 * @param motsClesEnCours