Subversion Repositories eFlore/Applications.del

Rev

Rev 676 | Rev 1038 | 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;
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();
447 gduche 76
	}
477 benjamin 77
 
447 gduche 78
	private Vue vue;
79
	private Observation observation;
552 benjamin 80
	private ModeRecherche modeRecherche;
477 benjamin 81
 
552 benjamin 82
	public MetadonneesPresenteur(Vue vue, Observation observation, ModeRecherche modeRecherche) {
447 gduche 83
		this.vue = vue;
552 benjamin 84
		this.modeRecherche = modeRecherche;
447 gduche 85
		setObservation(observation);
86
	}
477 benjamin 87
 
447 gduche 88
	public void setObservation(Observation observation) {
89
		this.observation = observation;
90
	}
477 benjamin 91
 
447 gduche 92
	public void chargerMetaDonnees() {
93
		vue.getNomRetenu().setText(observation.getNomRetenu());
94
		vue.getNomCommun().setText(observation.getNomCommun());
95
		vue.getFamille().setText(observation.getFamille());
471 aurelien 96
		vue.getLocalite().setText(observation.getLocaliteAvecIdFormatee());
447 gduche 97
		vue.getLieuDit().setText(observation.getLieuDit());
1026 gduche 98
		vue.setStation(observation.getStation());
447 gduche 99
		vue.getMilieu().setText(observation.getMilieu());
100
		vue.getCommentaire().setText(observation.getCommentaire());
101
		vue.getAuteur().setText(observation.getAuteur());
570 gduche 102
 
674 gduche 103
		vue.getDateTransmission().setText(formaterDate(observation.getDateTransmission()));
104
 
105
		vue.getDateReleve().setText(formaterDate(observation.getDateReleve()));
570 gduche 106
		vue.masquerChampsVides();
447 gduche 107
	}
477 benjamin 108
 
674 gduche 109
	public String formaterDate(String dateNonFormatee) {
676 gduche 110
 
111
		try {
674 gduche 112
		DateTimeFormat parseur = DateTimeFormat.getFormat("yyyy-dd-MM HH:mm:ss");
113
		Date date = parseur.parse(dateNonFormatee);
114
 
115
		DateTimeFormat formateur = DateTimeFormat.getFormat("dd/MM/yyyy");
116
		return formateur.format(date);
676 gduche 117
		} catch (IllegalArgumentException e) {
118
			return "";
119
		}
674 gduche 120
	}
121
 
447 gduche 122
	@Override
123
	public void go(HasWidgets composite) {
477 benjamin 124
		composite.add(vue.asWidget());
447 gduche 125
		chargerMetaDonnees();
552 benjamin 126
		gererEvenements();
447 gduche 127
	}
128
 
129
	@Override
130
	protected void gererEvenements() {
477 benjamin 131
 
552 benjamin 132
		vue.getLienAuteur().addClickHandler(new ClickHandler() {
133
 
134
			@Override
135
			public void onClick(ClickEvent arg0) {
136
				InformationsRecherche informationsRecherche = new InformationsRecherche();
137
				informationsRecherche.setAuteur(vue.getAuteur().getText());
138
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
139
			}
140
		});
141
 
142
		vue.getLienDateReleve().addClickHandler(new ClickHandler() {
143
 
144
			@Override
145
			public void onClick(ClickEvent arg0) {
146
				InformationsRecherche informationsRecherche = new InformationsRecherche();
147
				informationsRecherche.setDate(vue.getDateReleve().getText());
148
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
149
			}
150
		});
151
 
152
		vue.getLienDateTransmission().addClickHandler(new ClickHandler() {
153
 
154
			@Override
155
			public void onClick(ClickEvent arg0) {
156
				InformationsRecherche informationsRecherche = new InformationsRecherche();
157
				informationsRecherche.setDate(vue.getDateReleve().getText());
158
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
159
			}
160
		});
161
 
162
		vue.getLienFamille().addClickHandler(new ClickHandler() {
163
 
164
			@Override
165
			public void onClick(ClickEvent arg0) {
166
				InformationsRecherche informationsRecherche = new InformationsRecherche();
167
				informationsRecherche.setFamille(vue.getFamille().getText());
168
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
169
			}
170
		});
171
 
172
		vue.getLienLocalite().addClickHandler(new ClickHandler() {
173
 
174
			@Override
175
			public void onClick(ClickEvent arg0) {
176
				InformationsRecherche informationsRecherche = new InformationsRecherche();
177
				informationsRecherche.setCommune(vue.getLocalite().getText());
178
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
179
			}
180
		});
181
 
182
		vue.getLienMotsClefs().addClickHandler(new ClickHandler() {
183
 
184
			@Override
185
			public void onClick(ClickEvent arg0) {
186
				InformationsRecherche informationsRecherche = new InformationsRecherche();
187
				informationsRecherche.setMotClef(vue.getMotsClefs().getText());
188
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
189
			}
190
		});
191
 
192
		vue.getLienNomCommun().addClickHandler(new ClickHandler() {
193
 
194
			@Override
195
			public void onClick(ClickEvent arg0) {
196
				InformationsRecherche informationsRecherche = new InformationsRecherche();
197
				informationsRecherche.setRechercheLibre(vue.getNomCommun().getText());
198
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
199
			}
200
		});
201
 
202
		vue.getLienNomRetenu().addClickHandler(new ClickHandler() {
203
 
204
			@Override
205
			public void onClick(ClickEvent arg0) {
206
				InformationsRecherche informationsRecherche = new InformationsRecherche();
207
				informationsRecherche.setRechercheLibre(vue.getNomRetenu().getText());
208
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
209
			}
210
		});
211
 
212
		vue.getLienMilieu().addClickHandler(new ClickHandler() {
213
 
214
			@Override
215
			public void onClick(ClickEvent arg0) {
216
				InformationsRecherche informationsRecherche = new InformationsRecherche();
217
				informationsRecherche.setRechercheLibre(vue.getMilieu().getText());
218
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
219
			}
220
		});
221
 
222
		vue.getLienCommentaire().addClickHandler(new ClickHandler() {
223
 
224
			@Override
225
			public void onClick(ClickEvent arg0) {
226
				InformationsRecherche informationsRecherche = new InformationsRecherche();
227
				informationsRecherche.setRechercheLibre(vue.getCommentaire().getText());
228
				setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
229
			}
230
		});
231
 
447 gduche 232
	}
552 benjamin 233
 
234
	public void setInfosRechercheEnCacheEtLancerEvenement(InformationsRecherche informationsRecherche) {
560 benjamin 235
 
552 benjamin 236
		switch (modeRecherche) {
237
		case MODE_IMAGE:
560 benjamin 238
			CacheClient.getInstance().setPageCouranteRechercheImages(1);
552 benjamin 239
			CacheClient.getInstance().setInformationsRechercheImage(informationsRecherche);
240
			BusEvenementiel.getInstance().fireEvent(new EvenementRechercheImage());
241
			break;
242
 
243
		case MODE_OBSERVATION:
560 benjamin 244
			CacheClient.getInstance().setPageCouranteRechercheObservations(1);
552 benjamin 245
			CacheClient.getInstance().setInformationsRechercheObservation(informationsRecherche);
246
			BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation());
247
 
248
		default:
249
			break;
250
		}
251
 
252
	}
447 gduche 253
}