Subversion Repositories eFlore/Applications.del

Rev

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