Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
935 jpm 1
package org.tela_botanica.client.modeles.structure;
60 jpm 2
 
156 jp_milcent 3
import java.util.Date;
60 jpm 4
import java.util.Iterator;
1369 cyprien 5
import java.util.Map;
60 jpm 6
import java.util.Set;
7
 
935 jpm 8
import org.tela_botanica.client.modeles.aDonnee;
9
import org.tela_botanica.client.modeles.personne.Personne;
1284 gduche 10
import org.tela_botanica.client.util.UtilString;
935 jpm 11
 
166 jp_milcent 12
import com.extjs.gxt.ui.client.data.BaseModelData;
1329 cyprien 13
import com.extjs.gxt.ui.client.data.ModelData;
156 jp_milcent 14
import com.google.gwt.i18n.client.DateTimeFormat;
60 jpm 15
import com.google.gwt.json.client.JSONObject;
16
 
69 jpm 17
public class Structure extends aDonnee {
119 jpm 18
 
748 jpm 19
	private static final long serialVersionUID = -5623886668593288218L;
20
 
119 jpm 21
	public static final String PREFIXE = "cs";
177 jp_milcent 22
	public static final String URL_SITE = "WEB";
23
	public static final String URL_LOGO = "LOGO";
748 jpm 24
 
166 jp_milcent 25
	private BaseModelData urls = null;
382 jp_milcent 26
	private StructureAPersonneListe personnel = null;
27
	private StructureValorisation valorisation = null;
28
	private StructureConservation conservation = null;
1173 jpm 29
	public static String[] champsObligatoires = {"cs_id_structure", "csc_id_structure", "csv_id_structure"};
382 jp_milcent 30
 
60 jpm 31
	public Structure() {
177 jp_milcent 32
		// Constructions du tableau des urls interne
33
		urls = new BaseModelData();
60 jpm 34
	}
35
 
1329 cyprien 36
	public Structure(ModelData model)
37
	{
1369 cyprien 38
		Map<String, Object> a = model.getProperties();
39
 
40
		Set<String> cles = a.keySet();
41
		Iterator<String> it = cles.iterator();
42
		while (it.hasNext()) {
43
			String cle = it.next();
44
			if (a.get(cle) != null) {
45
				String cleObjet = cle.replaceFirst("^"+getPrefixe()+"_", "");
46
				this.set(cleObjet, a.get(cle));
47
			}
48
		}
1329 cyprien 49
	}
50
 
60 jpm 51
	public Structure(JSONObject institution) {
177 jp_milcent 52
		// Constructions du tableau des urls interne
53
		urls = new BaseModelData();
54
 
60 jpm 55
		// l'objet JSON est une table de hachage
56
		Set<String> im = institution.keySet();
57
 
58
		// Parcourt pour chaque clé
59
		for (Iterator<String> it = im.iterator(); it.hasNext();) {
60
			// Si elle est associée à une valeur, nous l'ajoutons
61
			String cle = it.next();
203 jp_milcent 62
			if (cle.startsWith(PREFIXE+"_")) {
63
				// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet
64
				String cleObjet = cle.replaceFirst("^"+PREFIXE+"_", "");
65
				// Sinon, nous ajoutons la clé avec une valeur vide
66
				String valeur = "";
67
				if (institution.get(cle).isString() != null) {
68
					valeur = institution.get(cle).isString().stringValue();
69
				}
70
				if (cleObjet.equals("truk_url")) {
71
					this.setUrl(valeur);
72
				} else {
73
					this.set(cleObjet, valeur);
74
				}
166 jp_milcent 75
			}
60 jpm 76
		}
77
	}
78
 
748 jpm 79
	@Override
80
	protected String getPrefixe() {
81
		return PREFIXE;
82
	}
83
 
1173 jpm 84
	protected String[] getChampsObligatoires()	{
85
		return champsObligatoires;
86
	}
87
 
60 jpm 88
	public String getId() {
602 jp_milcent 89
		return renvoyerValeurCorrecte("id_structure");
60 jpm 90
	}
119 jpm 91
	public void setId(String idStructure) {
92
		this.set("id_structure", idStructure);
93
	}
60 jpm 94
 
119 jpm 95
	public String getIdProjet() {
602 jp_milcent 96
		return renvoyerValeurCorrecte("ce_projet");
119 jpm 97
	}
98
	public void setIdProjet(String idProjet) {
99
		this.set("ce_projet", idProjet);
100
	}
101
 
102
	public String getIdMere() {
602 jp_milcent 103
		return renvoyerValeurCorrecte("ce_mere");
119 jpm 104
	}
105
	public void setIdMere(String idMere) {
106
		this.set("ce_mere", idMere);
107
	}
108
 
109
	public String getGuid() {
602 jp_milcent 110
		return renvoyerValeurCorrecte("guid");
119 jpm 111
	}
112
	public void setGuid(String guid) {
113
		this.set("guid", guid);
114
	}
115
 
116
	public String getIdAlternatif() {
602 jp_milcent 117
		return renvoyerValeurCorrecte("truk_identifiant_alternatif");
119 jpm 118
	}
119
	public void setIdAlternatif(String idAlter) {
120
		this.set("truk_identifiant_alternatif", idAlter);
121
	}
122
 
60 jpm 123
	public String getNom() {
602 jp_milcent 124
		return renvoyerValeurCorrecte("nom");
60 jpm 125
	}
119 jpm 126
	public void setNom(String nom) {
127
		this.set("nom", nom);
128
	}
60 jpm 129
 
119 jpm 130
	public String getNomAlternatif() {
602 jp_milcent 131
		return renvoyerValeurCorrecte("truk_nom_alternatif");
119 jpm 132
	}
133
 
60 jpm 134
	public String getDescription() {
602 jp_milcent 135
		return renvoyerValeurCorrecte("description");
60 jpm 136
	}
1173 jpm 137
	public void setDescription(String description) {
138
		this.set("description", description);
139
	}
60 jpm 140
 
119 jpm 141
	public String getType() {
602 jp_milcent 142
		return renvoyerValeurCorrecte("ce_type");
119 jpm 143
	}
144
	public void setType(String type) {
145
		this.set("ce_type", type);
146
	}
147
 
148
	public String getTypePrive() {
602 jp_milcent 149
		return renvoyerValeurCorrecte("ce_truk_type_prive");
119 jpm 150
	}
151
	public void setTypePrive(String typePrive) {
152
		this.set("ce_truk_type_prive", typePrive);
153
	}
154
 
155
	public String getTypePublic() {
602 jp_milcent 156
		return renvoyerValeurCorrecte("ce_truk_type_public");
119 jpm 157
	}
158
	public void setTypePublic(String typePublic) {
159
		this.set("ce_truk_type_public", typePublic);
160
	}
161
 
1369 cyprien 162
	public String getAbreviationProjet() {
163
		return renvoyerValeurCorrecte("_abreviationprojet_");
164
	}
165
	public void setAbreviationProjet(String abreviation) {
166
		this.set("_abreviationprojet_", abreviation);
167
	}
168
 
119 jpm 169
	public String getAdresse() {
60 jpm 170
		return (String) renvoyerValeurCorrecte("adresse_01");
171
	}
119 jpm 172
	public void setAdresse(String adr) {
173
		this.set("adresse_01", adr);
174
	}
175
 
176
	public String getAdresseComplement() {
602 jp_milcent 177
		return renvoyerValeurCorrecte("adresse_02");
119 jpm 178
	}
1173 jpm 179
	public void setAdresseComplement(String adr) {
180
		this.set("adresse_02", adr);
181
	}
60 jpm 182
 
169 jp_milcent 183
	public String getDateFondationFormatMysql() {
602 jp_milcent 184
		return renvoyerValeurCorrecte("date_fondation");
169 jp_milcent 185
	}
392 jp_milcent 186
	public String getDateFondationFormatLong() {
187
		String dateFormatee = "";
188
		Date dateFondation = getDateFondation();
189
		if (dateFondation != null) {
190
			dateFormatee = DateTimeFormat.getLongDateFormat().format(dateFondation);
191
		}
192
		return dateFormatee;
193
	}
1284 gduche 194
 
195
	public String getAnneOuDateFondationFormatLong() {
196
		String dateFormatee = "";
197
		String dateFondation =  renvoyerValeurCorrecte("date_fondation");
198
		if (!dateFondation.equals(""))	{
199
			if (dateFondation.endsWith("00-00"))	{
200
			dateFormatee = dateFondation.substring(0, 4);
201
			} else {
202
				Date date = DateTimeFormat.getFormat("yyyy-MM-dd").parse(dateFondation);
203
				dateFormatee = DateTimeFormat.getLongDateFormat().format(date);
204
			}
205
		}
206
		return dateFormatee;
207
	}
156 jp_milcent 208
	public Date getDateFondation() {
166 jp_milcent 209
		Date fondationDate = null;
602 jp_milcent 210
		String fondationChaine = renvoyerValeurCorrecte("date_fondation");
177 jp_milcent 211
		if (!fondationChaine.isEmpty() && !fondationChaine.equals("0000-00-00")) {
212
			fondationDate = DateTimeFormat.getFormat("yyyy-MM-dd").parseStrict(fondationChaine);
166 jp_milcent 213
		}
214
		return fondationDate;
119 jpm 215
	}
1284 gduche 216
 
1513 jpm 217
	/*
1284 gduche 218
	public String getAnneeOuDateFondation()	{
219
		 String valeurDateFondation = get("date_fondation");
220
		 if (!UtilString.isEmpty(valeurDateFondation) && valeurDateFondation.endsWith("00-00")) {
221
			 valeurDateFondation = valeurDateFondation.substring(0, 4);
222
		 } else if (UtilString.isEmpty(valeurDateFondation) && valeurDateFondation.equals("0000-00-00")) {
223
			 valeurDateFondation  = "";
224
		 }
225
		 return valeurDateFondation;
1513 jpm 226
	}*/
227
 
228
	public String getAnneeOuDateFondation()	{
229
		 String valeurDateFondation = get("date_fondation");
230
		 return getDateSouple(valeurDateFondation);
1284 gduche 231
	}
232
 
1513 jpm 233
	public String getDateSouple(String date) {
234
		String valeurDate = date;
235
 
236
		String jour = "";
237
		String mois = "";
238
		String annee = "";
239
 
240
		// pas de date dans la BD
241
		if (UtilString.isEmpty(valeurDate) || valeurDate.equals("0000-00-00")) {
242
			valeurDate  = "";
243
 
244
		// YYYY
245
		} else if (valeurDate.endsWith("00-00")) {
246
			valeurDate = valeurDate.substring(0, 4);
247
			if (valeurDate.matches("\\d{4}")) {
248
				jour = "";
249
				mois = "";
250
				annee = valeurDate.substring(0,4);
251
				valeurDate = annee;
252
			}
253
 
254
		// YYYY-MM
255
		} else if (valeurDate.endsWith("-00")) {
256
			valeurDate = valeurDate.substring(0, 7);
257
			if (valeurDate.matches("\\d{4}-\\d{2}")) {
258
				jour = "";
259
				mois = valeurDate.substring(5,7);
260
				annee = valeurDate.substring(0,4);
261
				valeurDate = mois+"/"+annee;
262
			}
263
		}
264
 
265
		// YYYY-MM-DD
266
		else if (valeurDate.matches("\\d{4}-\\d{2}-\\d{2}")) {
267
			Date objetDate = DateTimeFormat.getFormat("yyyy-MM-dd").parse(valeurDate);
268
			DateTimeFormat fmt = DateTimeFormat.getFormat("dd/MM/yyyy");
269
			valeurDate = fmt.format(objetDate);
270
		}
271
 
272
		 return valeurDate;
273
	}
274
 
156 jp_milcent 275
	public void setDateFondation(Date dateFondation) {
276
		if (dateFondation != null) {
177 jp_milcent 277
			this.set("date_fondation", DateTimeFormat.getFormat("yyyy-MM-dd").format(dateFondation));
156 jp_milcent 278
		}
279
	}
119 jpm 280
	public void setDateFondation(String dateFondation) {
156 jp_milcent 281
		if (dateFondation != null) {
282
			this.set("date_fondation", dateFondation);
283
		}
119 jpm 284
	}
156 jp_milcent 285
 
60 jpm 286
	public String getCodePostal() {
602 jp_milcent 287
		return renvoyerValeurCorrecte("code_postal");
60 jpm 288
	}
119 jpm 289
	public void setCodePostal(String codePostal) {
290
		this.set("code_postal", codePostal);
291
	}
292
 
60 jpm 293
	public String getVille() {
602 jp_milcent 294
		return renvoyerValeurCorrecte("ville");
60 jpm 295
	}
119 jpm 296
	public void setVille(String ville) {
297
		this.set("ville", ville);
298
	}
299
 
60 jpm 300
	public String getRegion() {
602 jp_milcent 301
		return getChaineDenormaliseUnique("ce_truk_region");
60 jpm 302
	}
119 jpm 303
	public void setRegion(String region) {
602 jp_milcent 304
		this.set("ce_truk_region", region);
119 jpm 305
	}
306
 
60 jpm 307
	public String getPays() {
602 jp_milcent 308
		return getChaineDenormaliseUnique("ce_truk_pays");
60 jpm 309
	}
119 jpm 310
	public void setPays(String pays) {
602 jp_milcent 311
		this.set("ce_truk_pays", pays);
119 jpm 312
	}
60 jpm 313
 
119 jpm 314
	public String getLatitude() {
602 jp_milcent 315
		return renvoyerValeurCorrecte("latitude");
119 jpm 316
	}
1173 jpm 317
	public void setLatitude(String latitude) {
1193 gduche 318
		if (latitude != null)	{
319
			latitude = latitude.replace(".", ",");
320
		}
1173 jpm 321
		this.set("latitude", latitude);
322
	}
119 jpm 323
 
324
	public String getLongitude() {
602 jp_milcent 325
		return renvoyerValeurCorrecte("longitude");
119 jpm 326
	}
1173 jpm 327
	public void setLongitude(String longitude) {
1292 cyprien 328
		if (longitude != null)	{
1193 gduche 329
			longitude = longitude.replace(".", ",");
330
		}
1173 jpm 331
		this.set("longitude", longitude);
332
	}
119 jpm 333
 
602 jp_milcent 334
	// TELEPHONE
60 jpm 335
	public String getTelephone() {
602 jp_milcent 336
		return renvoyerValeurCorrecte("truk_telephone");
60 jpm 337
	}
119 jpm 338
	public void setTelephone(String tel) {
602 jp_milcent 339
		this.set("truk_telephone", tel);
1292 cyprien 340
	}
341
 
602 jp_milcent 342
	// TELEPHONE FIXE
343
	public String getTelephoneFixe() {
344
		return getInfoDenormaliseParType(renvoyerValeurCorrecte("truk_telephone"), Personne.TELEPHONE_FIXE);
345
	}
346
	public void setTelephoneFixe(String fixe) {
347
		modifierChaineDenormaliseParType("truk_telephone", Personne.TELEPHONE_FIXE, fixe);
348
	}
349
 
350
	//TELEPHONE FAX
60 jpm 351
	public String getFax() {
602 jp_milcent 352
		return getInfoDenormaliseParType(renvoyerValeurCorrecte("truk_telephone"), Personne.TELEPHONE_FAX);
60 jpm 353
	}
119 jpm 354
	public void setFax(String fax) {
602 jp_milcent 355
		modifierChaineDenormaliseParType("truk_telephone", Personne.TELEPHONE_FAX, fax);
119 jpm 356
	}
1292 cyprien 357
 
60 jpm 358
 
602 jp_milcent 359
	// COURRIEL
60 jpm 360
	public String getCourriel() {
602 jp_milcent 361
		return renvoyerValeurCorrecte("courriel");
60 jpm 362
	}
119 jpm 363
	public void setCourriel(String courriel) {
364
		this.set("courriel", courriel);
365
	}
60 jpm 366
 
602 jp_milcent 367
	// URL
166 jp_milcent 368
	public String getUrl(String type) {
369
		return urls.get(type);
370
	}
119 jpm 371
	public String getUrl() {
166 jp_milcent 372
		String urlsDenormalise = "";
373
		Set<String> proprietes = urls.getProperties().keySet();
374
		for (Iterator<String> it = proprietes.iterator(); it.hasNext();) {
375
			String cle = it.next();
376
			urlsDenormalise += cle+"##"+urls.get(cle)+";;";
377
		}
1369 cyprien 378
		urlsDenormalise = urlsDenormalise.replaceFirst(";;$", "");
166 jp_milcent 379
		return urlsDenormalise;
119 jpm 380
	}
166 jp_milcent 381
	public void setUrl(String urlsDenormalise) {
382
		if (urlsDenormalise != null && !urlsDenormalise.equals("")) {
383
			//GWT.log(urlsDenormalise, null);
384
			String[] tableauUrls = urlsDenormalise.split(";;");
385
			for (int i = 0; i < tableauUrls.length; i++) {
386
				String url = tableauUrls[i];
387
				//GWT.log("\t"+url, null);
388
				String[] tableauUrl = url.split("##");
389
				if (tableauUrl.length == 2) {
390
					//GWT.log("\t\t"+tableauUrl[0]+"-"+tableauUrl[1], null);
391
					urls.set(tableauUrl[0], tableauUrl[1]);
392
				}
393
			}
394
		}
119 jpm 395
	}
166 jp_milcent 396
	public void setUrl(String type, String url) {
177 jp_milcent 397
		if (url != null) {
398
			urls.set(type, url);
399
		}
166 jp_milcent 400
	}
1685 raphael 401
 
402
	public Integer getNbrePersonne() {
208 jp_milcent 403
		if (renvoyerValeurCorrecte("nbre_personne").equals("")) {
1685 raphael 404
			return null;
208 jp_milcent 405
		}
1685 raphael 406
		return Integer.parseInt(renvoyerValeurCorrecte("nbre_personne"));
119 jpm 407
	}
1690 raphael 408
	public void setNbrePersonne(Number nbrePersonne) {
409
		this.set("nbre_personne", nbrePersonne != null ? nbrePersonne.intValue() : null);
119 jpm 410
	}
411
 
60 jpm 412
	public String getConditionAcces() {
602 jp_milcent 413
		return renvoyerValeurCorrecte("condition_acces");
60 jpm 414
	}
1173 jpm 415
	public void setConditionAcces(String acces) {
416
		this.set("condition_acces", acces);
417
	}
119 jpm 418
 
419
	public String getConditionUsage() {
602 jp_milcent 420
		return renvoyerValeurCorrecte("condition_usage");
119 jpm 421
	}
1173 jpm 422
	public void setConditionUsage(String usage) {
423
		this.set("condition_usage", usage);
424
	}
119 jpm 425
 
382 jp_milcent 426
	public StructureAPersonneListe getPersonnel() {
427
		return personnel;
428
	}
429
	public void setPersonnel(StructureAPersonneListe personnelAStocker) {
430
		personnel = personnelAStocker;
431
	}
432
 
433
	public StructureValorisation getValorisation() {
434
		return valorisation;
435
	}
436
	public void setValorisation(StructureValorisation valorisationAStocker) {
437
		valorisation = valorisationAStocker;
438
	}
439
 
440
	public StructureConservation getConservation() {
441
		return conservation;
442
	}
443
	public void setConservation(StructureConservation conservationAStocker) {
444
		conservation = conservationAStocker;
445
	}
446
 
166 jp_milcent 447
	public String toString() {
448
		String sortie = "";
177 jp_milcent 449
 
450
		// Champs du BaseModelData
166 jp_milcent 451
		Set<String> proprietes = this.getProperties().keySet();
452
		for (Iterator<String> it = proprietes.iterator(); it.hasNext();) {
453
			String cle = it.next();
454
			sortie += cle+" : "+this.get(cle)+"\n";
455
		}
177 jp_milcent 456
 
457
		// Champs spéciaux
458
		sortie += getUrl();
459
 
166 jp_milcent 460
		return sortie;
461
	}
462
 
1685 raphael 463
}