Subversion Repositories eFlore/Applications.del

Rev

Rev 1132 | Rev 1282 | 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
 
86
		public HasClickHandlers getLienIdentiplante();
447 gduche 87
	}
477 benjamin 88
 
447 gduche 89
	private Vue vue;
90
	private Observation observation;
552 benjamin 91
	private ModeRecherche modeRecherche;
1078 gduche 92
	private boolean avecLiens;
93
 
94
	public MetadonneesPresenteur(Vue vue, Observation observation, ModeRecherche modeRecherche, boolean avecLiens) {
447 gduche 95
		this.vue = vue;
552 benjamin 96
		this.modeRecherche = modeRecherche;
447 gduche 97
		setObservation(observation);
1078 gduche 98
		this.avecLiens = avecLiens;
447 gduche 99
	}
477 benjamin 100
 
447 gduche 101
	public void setObservation(Observation observation) {
102
		this.observation = observation;
103
	}
477 benjamin 104
 
447 gduche 105
	public void chargerMetaDonnees() {
106
		vue.getNomRetenu().setText(observation.getNomRetenu());
107
		vue.getNomCommun().setText(observation.getNomCommun());
108
		vue.getFamille().setText(observation.getFamille());
471 aurelien 109
		vue.getLocalite().setText(observation.getLocaliteAvecIdFormatee());
447 gduche 110
		vue.getLieuDit().setText(observation.getLieuDit());
1026 gduche 111
		vue.setStation(observation.getStation());
447 gduche 112
		vue.getMilieu().setText(observation.getMilieu());
113
		vue.getCommentaire().setText(observation.getCommentaire());
114
		vue.getAuteur().setText(observation.getAuteur());
570 gduche 115
 
674 gduche 116
		vue.getDateTransmission().setText(formaterDate(observation.getDateTransmission()));
117
 
118
		vue.getDateReleve().setText(formaterDate(observation.getDateReleve()));
570 gduche 119
		vue.masquerChampsVides();
447 gduche 120
	}
477 benjamin 121
 
674 gduche 122
	public String formaterDate(String dateNonFormatee) {
676 gduche 123
		try {
1132 aurelien 124
			String dateFormatee =  DateTimeFormat.getFormat("dd/MM/yyyy").format(UtilitairesServiceResultat.parserDateObservation(dateNonFormatee));
125
			dateFormatee = (dateFormatee == "01/01/1970") ? "???" : dateFormatee ;
126
			return dateFormatee;
676 gduche 127
		} catch (IllegalArgumentException e) {
128
			return "";
129
		}
674 gduche 130
	}
131
 
447 gduche 132
	@Override
133
	public void go(HasWidgets composite) {
477 benjamin 134
		composite.add(vue.asWidget());
447 gduche 135
		chargerMetaDonnees();
1078 gduche 136
		//if (this.avecLiens) {
137
			gererEvenements();
138
		//}
447 gduche 139
	}
140
 
141
	@Override
142
	protected void gererEvenements() {
1078 gduche 143
 
144
		if (this.avecLiens) {
145
		vue.getLienAuteur().addClickHandler(new ClickHandler() {
477 benjamin 146
 
1078 gduche 147
			@Override
148
			public void onClick(ClickEvent arg0) {
149
 
150
				InformationsRecherche informationsRecherche = new InformationsRecherche();
151
				informationsRecherche.setAuteur(vue.getAuteur().getText());
152
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
153
				History.fireCurrentHistoryState();
154
			}
155
		});
1038 gduche 156
 
1078 gduche 157
		vue.getLienDateReleve().addClickHandler(new ClickHandler() {
552 benjamin 158
 
1078 gduche 159
			@Override
160
			public void onClick(ClickEvent arg0) {
161
				InformationsRecherche informationsRecherche = new InformationsRecherche();
162
				informationsRecherche.setDate(vue.getDateReleve().getText());
163
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
164
				History.fireCurrentHistoryState();
165
			}
166
		});
167
 
168
		vue.getLienDateTransmission().addClickHandler(new ClickHandler() {
169
 
170
			@Override
171
			public void onClick(ClickEvent arg0) {
172
				InformationsRecherche informationsRecherche = new InformationsRecherche();
173
				informationsRecherche.setDate(vue.getDateReleve().getText());
174
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
175
				History.fireCurrentHistoryState();
176
			}
177
		});
178
 
179
		vue.getLienFamille().addClickHandler(new ClickHandler() {
180
 
181
			@Override
182
			public void onClick(ClickEvent arg0) {
183
				InformationsRecherche informationsRecherche = new InformationsRecherche();
184
				informationsRecherche.setFamille(vue.getFamille().getText());
185
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
186
				History.fireCurrentHistoryState();
187
			}
188
		});
189
 
190
		vue.getLienLocalite().addClickHandler(new ClickHandler() {
191
 
192
			@Override
193
			public void onClick(ClickEvent arg0) {
194
				InformationsRecherche informationsRecherche = new InformationsRecherche();
195
				informationsRecherche.setCommune(vue.getLocalite().getText());
196
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
197
				History.fireCurrentHistoryState();
198
			}
199
		});
200
 
201
		vue.getLienMotsClefs().addClickHandler(new ClickHandler() {
202
 
203
			@Override
204
			public void onClick(ClickEvent arg0) {
205
				InformationsRecherche informationsRecherche = new InformationsRecherche();
206
				informationsRecherche.setMotClef(vue.getMotsClefs().getText());
207
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
208
				History.fireCurrentHistoryState();
209
			}
210
		});
211
 
212
		vue.getLienNomCommun().addClickHandler(new ClickHandler() {
213
 
214
			@Override
215
			public void onClick(ClickEvent arg0) {
216
				InformationsRecherche informationsRecherche = new InformationsRecherche();
217
				informationsRecherche.setRechercheLibre(vue.getNomCommun().getText());
218
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
219
				History.fireCurrentHistoryState();
220
			}
221
		});
222
 
223
		vue.getLienNomRetenu().addClickHandler(new ClickHandler() {
224
 
225
			@Override
226
			public void onClick(ClickEvent arg0) {
227
				InformationsRecherche informationsRecherche = new InformationsRecherche();
228
				informationsRecherche.setRechercheLibre(vue.getNomRetenu().getText());
229
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
230
				History.fireCurrentHistoryState();
231
			}
232
		});
233
 
234
		vue.getLienMilieu().addClickHandler(new ClickHandler() {
235
 
236
			@Override
237
			public void onClick(ClickEvent arg0) {
238
				InformationsRecherche informationsRecherche = new InformationsRecherche();
239
				informationsRecherche.setRechercheLibre(vue.getMilieu().getText());
240
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
241
				History.fireCurrentHistoryState();
242
			}
243
		});
244
 
245
		vue.getLienCommentaire().addClickHandler(new ClickHandler() {
246
 
247
			@Override
248
			public void onClick(ClickEvent arg0) {
249
				InformationsRecherche informationsRecherche = new InformationsRecherche();
250
				informationsRecherche.setRechercheLibre(vue.getCommentaire().getText());
251
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
252
				History.fireCurrentHistoryState();
253
			}
254
		});
255
 
1214 gduche 256
		final Observation monobservation = this.observation;
257
		vue.getLienIdentiplante().addClickHandler(new ClickHandler() {
258
 
259
			@Override
260
			public void onClick(ClickEvent event) {
261
				CacheClient.getInstance().setObservationCourante(monobservation);
262
				BusEvenementiel.getInstance().fireEvent(new EvenementValidation(monobservation));
263
			}
264
		});
265
 
1078 gduche 266
		vue.activerLiens();
1079 gduche 267
		} else {
268
			vue.getLienAuteur().addClickHandler(new ClickHandler() {
269
				@Override
270
				public void onClick(ClickEvent event) {
271
					Config config = new Config();
272
					Window.open(config.getUrl("annuaire") + observation.getIdAuteur(), "Consultation de l'annuaire", null);
273
				}
274
			});
275
 
276
			vue.activerLienAuteur();
1078 gduche 277
		}
447 gduche 278
	}
552 benjamin 279
 
280
	public void setInfosRechercheEnCacheEtLancerEvenement(InformationsRecherche informationsRecherche) {
560 benjamin 281
 
552 benjamin 282
		switch (modeRecherche) {
283
		case MODE_IMAGE:
560 benjamin 284
			CacheClient.getInstance().setPageCouranteRechercheImages(1);
552 benjamin 285
			CacheClient.getInstance().setInformationsRechercheImage(informationsRecherche);
286
			BusEvenementiel.getInstance().fireEvent(new EvenementRechercheImage());
287
			break;
288
 
289
		case MODE_OBSERVATION:
560 benjamin 290
			CacheClient.getInstance().setPageCouranteRechercheObservations(1);
552 benjamin 291
			CacheClient.getInstance().setInformationsRechercheObservation(informationsRecherche);
292
			BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation());
293
 
294
		default:
295
			break;
296
		}
297
 
298
	}
447 gduche 299
}