Subversion Repositories eFlore/Applications.del

Rev

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