Subversion Repositories eFlore/Archives.cel-v2

Rev

Rev 18 | Rev 27 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 aperonnet 1
package org.tela_botanica.client.modeles;
2
 
12 aperonnet 3
import java.util.HashMap;
4
import java.util.Iterator;
5
import java.util.Set;
6
 
7
import com.google.gwt.json.client.JSONObject;
8
 
9
/**
10
 *
11
 * Classe representant une image du carnet,
12
 * elle ne contient pas d'image à proprement parler mais
13
 * plutôt les informations associées ainsi que l'url distante
14
 *
15
 */
16
public class ImageCarnet extends HashMap {
4 aperonnet 17
 
12 aperonnet 18
 
19
	public ImageCarnet(JSONObject image)
20
	{
21
		Set im = image.keySet() ;
22
 
23
		for (Iterator iterator = im.iterator(); iterator.hasNext();) {
24
 
25
			String key = (String) iterator.next();
26
			if(image.get(key).isString() != null)
27
			{
28
				String valeur = image.get(key).isString().stringValue() ;
29
				this.put(key, valeur) ;
30
			}
16 aperonnet 31
			else
32
			{
33
				String valeur = " " ;
34
				this.put(key, valeur) ;
35
			}
12 aperonnet 36
 
37
		}
38
 
39
	}
40
 
16 aperonnet 41
	public String toString()
42
	{
43
		String valeur = " ";
44
 
45
		for (Iterator iterator = this.keySet().iterator(); iterator.hasNext();) {
46
 
47
 
48
			String key = (String) iterator.next();
49
			if(this.get(key) != null)
50
			{
51
				valeur += "cle : "+key+" valeur :"+(String)this.get(key)+"\n" ;
52
			}
53
 
54
		}
55
 
56
		return valeur ;
57
	}
58
 
12 aperonnet 59
	public String renvoyerValeurCorrecte(String cle)
4 aperonnet 60
	{
12 aperonnet 61
		if(this.containsKey((cle)))
62
		{
63
			String valeur = (String)this.get(cle) ;
64
			if(valeur.equals("null"))
65
			{
22 aperonnet 66
				return "null" ;
12 aperonnet 67
			}
68
			else
69
			{
22 aperonnet 70
				char nullChar = '\u0000' ;
71
				String sNull = ""+nullChar ;
72
				valeur = valeur.replaceAll(sNull, "") ;
12 aperonnet 73
				return valeur ;
74
			}
75
		}
76
		else
77
		{
22 aperonnet 78
			return "null" ;
12 aperonnet 79
		}
4 aperonnet 80
	}
81
 
22 aperonnet 82
	public String getId() {
83
 
84
		return renvoyerValeurCorrecte("ci_id_image") ;
85
	}
12 aperonnet 86
 
87
	public String getOrdre() {
88
 
89
		return renvoyerValeurCorrecte("ci_ordre") ;
90
	}
91
 
92
	public String getBaseUrl()
93
	{
16 aperonnet 94
		return "http://162.38.234.9/Documents/images_serveur/" ;
12 aperonnet 95
	}
96
 
4 aperonnet 97
	public String getUrl() {
12 aperonnet 98
 
99
		return getBaseUrl()+(String)this.get("ci_id_image")+".jpg" ;
4 aperonnet 100
	}
12 aperonnet 101
 
102
	public String getSUrl() {
103
 
104
		return getBaseUrl()+(String)this.get("ci_id_image")+"_S.jpg" ;
105
	}
106
 
107
	public String getMUrl() {
108
 
109
		return getBaseUrl()+(String)this.get("ci_id_image")+"_M.jpg" ;
110
	}
111
 
4 aperonnet 112
 
12 aperonnet 113
 
114
	public String getDate() {
115
 
116
		return renvoyerValeurCorrecte("ci_meta_date_time") ;
4 aperonnet 117
	}
118
 
12 aperonnet 119
 
120
	public Object getIptcCity() {
121
 
122
		return renvoyerValeurCorrecte("ci_meta_iptc_city") ;
4 aperonnet 123
	}
124
 
12 aperonnet 125
 
126
	public String getMake() {
127
 
128
		return renvoyerValeurCorrecte("ci_meta_make") ;
129
	}
130
 
131
 
132
	public String getModel() {
133
 
134
		return renvoyerValeurCorrecte("ci_meta_model") ;
135
	}
16 aperonnet 136
 
137
	public String[][] getMetadonnesIptc() {
138
 
139
		String[][] metaIptc = new String[12][2] ;
140
		int elem = 0 ;
141
 
142
		for (Iterator it = this.keySet().iterator(); it.hasNext();)
143
		{
144
 
145
			String key = (String)it.next();
146
 
147
				// on filtre le "ci"
148
				String type[] = key.split("_",3) ;
149
 
150
 
151
				// si c'est une metadonnee exif ou iptc
152
				if(type[1].equals("meta"))
153
				{
154
					String[] genre =  type[2].split("_",2) ;
155
					if(genre[0].equals("iptc"))
156
					{
157
						String nom = genre[1] ;
158
						metaIptc[elem][0] = nom ;
159
						metaIptc[elem][1] = renvoyerValeurCorrecte(key) ;
160
						elem++ ;
161
					}
162
 
163
				}
164
 
165
		}
166
 
167
		return metaIptc ;
168
	}
169
 
170
	public Object[][] getMetadonnesExif() {
171
 
172
		String[][] metaExif = new String[31][2] ;
173
		int elem = 0 ;
174
 
175
		for (Iterator it = this.keySet().iterator(); it.hasNext();)
176
		{
177
 
178
			String key = (String)it.next();
179
 
180
				// on filtre le "ci"
181
				String type[] = key.split("_",3) ;
182
 
183
 
184
				// si c'est une metadonnee exif ou iptc
185
				if(type[1].equals("meta"))
186
				{
187
					String[] genre =  type[2].split("_",2) ;
188
					if(genre[0].equals("exif"))
189
					{
190
						String nom = genre[1] ;
191
						metaExif[elem][0] = nom ;
192
						metaExif[elem][1] = renvoyerValeurCorrecte(key) ;
193
						elem++ ;
194
					}
195
 
196
				}
197
 
198
		}
199
 
200
		return metaExif ;
201
 
202
	}
18 aperonnet 203
 
204
	public Object[][] getInfoGenerales() {
205
 
206
		String[][] metaGen = new String[2][2] ;
207
 
208
		metaGen[0][0] = "ci_meta_comment" ;
209
		metaGen[0][1] = (String)this.get("ci_meta_comment") ;
210
 
211
		metaGen[1][0] = "ci_meta_date" ;
212
		metaGen[1][1] = (String)this.get("ci_meta_date") ;
213
 
214
		return metaGen ;
215
	}
216
 
217
	public void miseAJourInfoGenerales(String commentaires, String date)
218
	{
219
			put("ci_meta_comment",commentaires) ;
220
 
221
			put("ci_meta_date",date) ;
222
	}
4 aperonnet 223
}