Subversion Repositories eFlore/Applications.del

Rev

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