Subversion Repositories eFlore/Applications.del

Rev

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