Subversion Repositories eFlore/Applications.del

Rev

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