Subversion Repositories eFlore/Applications.del

Rev

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

Rev Author Line No. Line
447 gduche 1
package org.tela_botanica.del.client.composants.metadonnees;
2
 
552 benjamin 3
import org.tela_botanica.del.client.cache.CacheClient;
447 gduche 4
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
1079 gduche 5
import org.tela_botanica.del.client.config.Config;
552 benjamin 6
import org.tela_botanica.del.client.modeles.InformationsRecherche;
7
import org.tela_botanica.del.client.modeles.ModeRecherche;
447 gduche 8
import org.tela_botanica.del.client.modeles.Observation;
552 benjamin 9
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
10
import org.tela_botanica.del.client.navigation.evenement.detailsimage.EvenementRechercheImage;
11
import org.tela_botanica.del.client.navigation.evenement.rechercheobservation.EvenementRechercheObservation;
1131 aurelien 12
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
477 benjamin 13
 
552 benjamin 14
import com.google.gwt.event.dom.client.ClickEvent;
15
import com.google.gwt.event.dom.client.ClickHandler;
16
import com.google.gwt.event.dom.client.HasClickHandlers;
674 gduche 17
import com.google.gwt.i18n.client.DateTimeFormat;
1078 gduche 18
import com.google.gwt.user.client.History;
1026 gduche 19
import com.google.gwt.user.client.Window;
447 gduche 20
import com.google.gwt.user.client.ui.HasText;
21
import com.google.gwt.user.client.ui.HasWidgets;
22
import com.google.gwt.user.client.ui.IsWidget;
23
 
477 benjamin 24
public class MetadonneesPresenteur extends Presenteur {
447 gduche 25
 
26
	public abstract interface Vue extends IsWidget {
27
		public HasText getNomRetenu();
477 benjamin 28
 
552 benjamin 29
		public HasClickHandlers getLienNomRetenu();
30
 
447 gduche 31
		public HasText getNomCommun();
477 benjamin 32
 
447 gduche 33
		public HasText getFamille();
477 benjamin 34
 
447 gduche 35
		public HasText getLocalite();
477 benjamin 36
 
447 gduche 37
		public HasText getLieuDit();
477 benjamin 38
 
447 gduche 39
		public HasText getMilieu();
477 benjamin 40
 
447 gduche 41
		public HasText getCommentaire();
477 benjamin 42
 
447 gduche 43
		public HasText getAuteur();
477 benjamin 44
 
449 gduche 45
		public HasText getDateTransmission();
477 benjamin 46
 
447 gduche 47
		public HasText getMotsClefs();
477 benjamin 48
 
447 gduche 49
		public HasText getNumNomenclatural();
477 benjamin 50
 
449 gduche 51
		public HasText getDateReleve();
552 benjamin 52
 
53
		public HasClickHandlers getLienFamille();
54
 
55
		public HasClickHandlers getLienAuteur();
56
 
57
		public HasClickHandlers getLienDateTransmission();
58
 
59
		public HasClickHandlers getLienDateReleve();
60
 
61
		public HasClickHandlers getLienLocalite();
62
 
63
		public HasClickHandlers getLienMotsClefs();
64
 
65
		public HasClickHandlers getLienNumNomenclatural();
66
 
67
		public HasClickHandlers getLienNomCommun();
68
 
69
		public HasClickHandlers getLienMilieu();
70
 
71
		public HasClickHandlers getLienCommentaire();
570 gduche 72
 
1026 gduche 73
		public void setStation(String station) ;
74
 
570 gduche 75
		public void masquerChampsVides();
1078 gduche 76
 
77
		public void activerLiens();
1079 gduche 78
 
79
		public void activerLienAuteur();
1214 gduche 80
 
1531 mathias 81
		public void activerLienNomRetenu();
82
 
1342 gduche 83
		public void setLienIdentiplante(String id);
1282 aurelien 84
 
85
		void desactiverLienAuteur();
1393 aurelien 86
 
87
		public HasText getReferentiel();
447 gduche 88
	}
477 benjamin 89
 
447 gduche 90
	private Vue vue;
91
	private Observation observation;
552 benjamin 92
	private ModeRecherche modeRecherche;
1078 gduche 93
	private boolean avecLiens;
94
 
95
	public MetadonneesPresenteur(Vue vue, Observation observation, ModeRecherche modeRecherche, boolean avecLiens) {
447 gduche 96
		this.vue = vue;
552 benjamin 97
		this.modeRecherche = modeRecherche;
447 gduche 98
		setObservation(observation);
1078 gduche 99
		this.avecLiens = avecLiens;
447 gduche 100
	}
477 benjamin 101
 
447 gduche 102
	public void setObservation(Observation observation) {
103
		this.observation = observation;
104
	}
477 benjamin 105
 
447 gduche 106
	public void chargerMetaDonnees() {
107
		vue.getNomRetenu().setText(observation.getNomRetenu());
108
		vue.getNomCommun().setText(observation.getNomCommun());
1393 aurelien 109
		vue.getReferentiel().setText(observation.getReferentiel());
447 gduche 110
		vue.getFamille().setText(observation.getFamille());
471 aurelien 111
		vue.getLocalite().setText(observation.getLocaliteAvecIdFormatee());
447 gduche 112
		vue.getLieuDit().setText(observation.getLieuDit());
1026 gduche 113
		vue.setStation(observation.getStation());
447 gduche 114
		vue.getMilieu().setText(observation.getMilieu());
115
		vue.getCommentaire().setText(observation.getCommentaire());
116
		vue.getAuteur().setText(observation.getAuteur());
570 gduche 117
 
674 gduche 118
		vue.getDateTransmission().setText(formaterDate(observation.getDateTransmission()));
119
 
120
		vue.getDateReleve().setText(formaterDate(observation.getDateReleve()));
570 gduche 121
		vue.masquerChampsVides();
447 gduche 122
	}
477 benjamin 123
 
674 gduche 124
	public String formaterDate(String dateNonFormatee) {
676 gduche 125
		try {
1132 aurelien 126
			String dateFormatee =  DateTimeFormat.getFormat("dd/MM/yyyy").format(UtilitairesServiceResultat.parserDateObservation(dateNonFormatee));
127
			dateFormatee = (dateFormatee == "01/01/1970") ? "???" : dateFormatee ;
128
			return dateFormatee;
676 gduche 129
		} catch (IllegalArgumentException e) {
130
			return "";
131
		}
674 gduche 132
	}
133
 
447 gduche 134
	@Override
135
	public void go(HasWidgets composite) {
477 benjamin 136
		composite.add(vue.asWidget());
447 gduche 137
		chargerMetaDonnees();
1078 gduche 138
		//if (this.avecLiens) {
139
			gererEvenements();
140
		//}
447 gduche 141
	}
142
 
143
	@Override
144
	protected void gererEvenements() {
1078 gduche 145
 
146
		if (this.avecLiens) {
1282 aurelien 147
			if(!observation.getIdAuteur().equals("0")) {
148
				vue.getLienAuteur().addClickHandler(new ClickHandler() {
1038 gduche 149
 
1282 aurelien 150
					@Override
151
					public void onClick(ClickEvent arg0) {
152
 
153
						InformationsRecherche informationsRecherche = new InformationsRecherche();
154
						informationsRecherche.setAuteur(vue.getAuteur().getText());
155
						setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
156
						History.fireCurrentHistoryState();
157
					}
158
				});
1078 gduche 159
			}
1214 gduche 160
 
1282 aurelien 161
			vue.getLienDateReleve().addClickHandler(new ClickHandler() {
162
 
1079 gduche 163
				@Override
1282 aurelien 164
				public void onClick(ClickEvent arg0) {
165
					InformationsRecherche informationsRecherche = new InformationsRecherche();
166
					informationsRecherche.setDate(vue.getDateReleve().getText());
167
					setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
168
					History.fireCurrentHistoryState();
169
				}
170
			});
171
 
172
			vue.getLienDateTransmission().addClickHandler(new ClickHandler() {
173
 
174
				@Override
175
				public void onClick(ClickEvent arg0) {
176
					InformationsRecherche informationsRecherche = new InformationsRecherche();
177
					informationsRecherche.setDate(vue.getDateReleve().getText());
178
					setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
179
					History.fireCurrentHistoryState();
180
				}
181
			});
182
 
183
			vue.getLienFamille().addClickHandler(new ClickHandler() {
184
 
185
				@Override
186
				public void onClick(ClickEvent arg0) {
187
					InformationsRecherche informationsRecherche = new InformationsRecherche();
188
					informationsRecherche.setFamille(vue.getFamille().getText());
189
					setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
190
					History.fireCurrentHistoryState();
191
				}
192
			});
193
 
194
			vue.getLienLocalite().addClickHandler(new ClickHandler() {
195
 
196
				@Override
197
				public void onClick(ClickEvent arg0) {
198
					InformationsRecherche informationsRecherche = new InformationsRecherche();
199
					informationsRecherche.setCommune(vue.getLocalite().getText());
200
					setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
201
					History.fireCurrentHistoryState();
202
				}
203
			});
204
 
205
			vue.getLienMotsClefs().addClickHandler(new ClickHandler() {
206
 
207
				@Override
208
				public void onClick(ClickEvent arg0) {
209
					InformationsRecherche informationsRecherche = new InformationsRecherche();
210
					informationsRecherche.setMotClef(vue.getMotsClefs().getText());
211
					setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
212
					History.fireCurrentHistoryState();
213
				}
214
			});
215
 
216
			vue.getLienNomCommun().addClickHandler(new ClickHandler() {
217
 
218
				@Override
219
				public void onClick(ClickEvent arg0) {
220
					InformationsRecherche informationsRecherche = new InformationsRecherche();
221
					informationsRecherche.setRechercheLibre(vue.getNomCommun().getText());
222
					setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
223
					History.fireCurrentHistoryState();
224
				}
225
			});
226
 
227
			vue.getLienNomRetenu().addClickHandler(new ClickHandler() {
228
 
229
				@Override
230
				public void onClick(ClickEvent arg0) {
231
					InformationsRecherche informationsRecherche = new InformationsRecherche();
232
					informationsRecherche.setRechercheLibre(vue.getNomRetenu().getText());
233
					setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
234
					History.fireCurrentHistoryState();
235
				}
236
			});
237
 
238
			vue.getLienMilieu().addClickHandler(new ClickHandler() {
239
 
240
				@Override
241
				public void onClick(ClickEvent arg0) {
242
					InformationsRecherche informationsRecherche = new InformationsRecherche();
243
					informationsRecherche.setRechercheLibre(vue.getMilieu().getText());
244
					setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
245
					History.fireCurrentHistoryState();
246
				}
247
			});
248
 
249
			vue.getLienCommentaire().addClickHandler(new ClickHandler() {
250
 
251
				@Override
252
				public void onClick(ClickEvent arg0) {
253
					InformationsRecherche informationsRecherche = new InformationsRecherche();
254
					informationsRecherche.setRechercheLibre(vue.getCommentaire().getText());
255
					setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
256
					History.fireCurrentHistoryState();
257
				}
258
			});
1531 mathias 259
 
1342 gduche 260
			vue.setLienIdentiplante(this.observation.getId());
1282 aurelien 261
			vue.activerLiens();
262
 
263
			if(observation.getIdAuteur().equals("0")) {
264
				vue.desactiverLienAuteur();
265
			}
266
		} else {
1531 mathias 267
			if (! observation.getIdAuteur().equals("0")) {
1282 aurelien 268
				vue.getLienAuteur().addClickHandler(new ClickHandler() {
269
					@Override
270
					public void onClick(ClickEvent event) {
271
						Config config = new Config();
1543 jpm 272
						Window.open(config.getUrl("profil") + observation.getIdAuteur(), "Consultation de l'annuaire", null);
1282 aurelien 273
					}
274
				});
275
 
276
				vue.activerLienAuteur();
277
			}
1531 mathias 278
 
279
			if (observation.getNumNomenclatural() != null && ! observation.getNumNomenclatural().equals("0") && ! observation.getNumNomenclatural().equals("")) {
280
				vue.activerLienNomRetenu();
281
				vue.getLienNomRetenu().addClickHandler(new ClickHandler() {
282
					@Override
283
					public void onClick(ClickEvent arg0) {
284
						Config config = new Config();
285
						String efloreUrlFicheTpl = config.getUrl("efloreTaxon");
286
						String efloreUrlFiche = efloreUrlFicheTpl.replaceAll("referentiel-nn-num_nom", observation.getReferentiel().substring(0,5) + "-nn-" + observation.getNumNomenclatural());
287
						Window.open(efloreUrlFiche, "Fiche eflore", null);
288
					}
289
				});
290
			}
1078 gduche 291
		}
447 gduche 292
	}
552 benjamin 293
 
294
	public void setInfosRechercheEnCacheEtLancerEvenement(InformationsRecherche informationsRecherche) {
560 benjamin 295
 
552 benjamin 296
		switch (modeRecherche) {
297
		case MODE_IMAGE:
560 benjamin 298
			CacheClient.getInstance().setPageCouranteRechercheImages(1);
552 benjamin 299
			CacheClient.getInstance().setInformationsRechercheImage(informationsRecherche);
300
			BusEvenementiel.getInstance().fireEvent(new EvenementRechercheImage());
301
			break;
302
 
303
		case MODE_OBSERVATION:
560 benjamin 304
			CacheClient.getInstance().setPageCouranteRechercheObservations(1);
552 benjamin 305
			CacheClient.getInstance().setInformationsRechercheObservation(informationsRecherche);
306
			BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation());
307
 
308
		default:
309
			break;
310
		}
311
 
312
	}
447 gduche 313
}