Subversion Repositories eFlore/Applications.del

Rev

Rev 2050 | Rev 2076 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2050 Rev 2054
1
package org.tela_botanica.del.client.vues.identiplante.moteur;
1
package org.tela_botanica.del.client.vues.identiplante.moteur;
2
 
2
 
3
import org.tela_botanica.del.client.cache.CacheClient;
3
import org.tela_botanica.del.client.cache.CacheClient;
4
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;
4
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;
5
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue;
5
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue;
6
import org.tela_botanica.del.client.composants.partageurl.PartageUrlPresenteur;
6
import org.tela_botanica.del.client.composants.partageurl.PartageUrlPresenteur;
7
import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue;
7
import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue;
8
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
8
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
9
import org.tela_botanica.del.client.config.Config;
9
import org.tela_botanica.del.client.config.Config;
-
 
10
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation;
-
 
11
import org.tela_botanica.del.client.modeles.ActiviteUtilisateur;
10
import org.tela_botanica.del.client.modeles.ModeRecherche;
12
import org.tela_botanica.del.client.modeles.ModeRecherche;
11
import org.tela_botanica.del.client.modeles.Utilisateur;
13
import org.tela_botanica.del.client.modeles.Utilisateur;
12
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
14
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
13
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
15
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
14
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
16
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
15
import org.tela_botanica.del.client.services.rest.ObservationService;
17
import org.tela_botanica.del.client.services.rest.ObservationService;
16
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret;
18
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret;
-
 
19
import org.tela_botanica.del.client.services.rest.UtilisateurServiceConcret;
-
 
20
import org.tela_botanica.del.client.services.rest.async.ActiviteUtilisateurCallback;
17
import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplantePresenteur;
21
import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplantePresenteur;
18
import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplanteVue;
22
import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplanteVue;
19
 
23
 
20
import com.google.gwt.event.dom.client.ClickEvent;
24
import com.google.gwt.event.dom.client.ClickEvent;
21
import com.google.gwt.event.dom.client.ClickHandler;
25
import com.google.gwt.event.dom.client.ClickHandler;
22
import com.google.gwt.event.dom.client.HasClickHandlers;
26
import com.google.gwt.event.dom.client.HasClickHandlers;
-
 
27
import com.google.gwt.user.client.Timer;
23
import com.google.gwt.user.client.Window;
28
import com.google.gwt.user.client.Window;
24
import com.google.gwt.user.client.ui.HasWidgets;
29
import com.google.gwt.user.client.ui.HasWidgets;
25
import com.google.gwt.user.client.ui.IsWidget;
30
import com.google.gwt.user.client.ui.IsWidget;
26
import com.google.gwt.user.client.ui.Panel;
31
import com.google.gwt.user.client.ui.Panel;
27
 
32
 
28
public class MoteurIdentiplantePresenteur extends Presenteur {
33
public class MoteurIdentiplantePresenteur extends Presenteur {
29
 
34
 
30
	public interface Vue extends IsWidget {
35
	public interface Vue extends IsWidget {
31
		public HasWidgets getZoneRecherche();
36
		public HasWidgets getZoneRecherche();
32
 
37
 
33
		public HasWidgets getZoneResultats();
38
		public HasWidgets getZoneResultats();
34
 
39
 
35
		public HasClickHandlers getOngletAConfirmer();
40
		public HasClickHandlers getOngletAConfirmer();
36
		
41
		
37
		public HasClickHandlers getOngletADeterminer();
42
		public HasClickHandlers getOngletADeterminer();
38
		
43
		
39
		public HasClickHandlers getOngletTout();
44
		public HasClickHandlers getOngletTout();
40
 
45
 
41
		public HasClickHandlers getOngletValidees();
46
		public HasClickHandlers getOngletValidees();
42
		
47
		
43
		public HasClickHandlers getOngletMonActivite();
48
		public HasClickHandlers getOngletMonActivite();
44
		
49
		
45
		public void setOngletADeterminerActif();
50
		public void setOngletADeterminerActif();
46
		
51
		
47
		public void setOngletToutActif();
52
		public void setOngletToutActif();
48
		
53
		
49
		public void setOngletAConfirmerActif();
54
		public void setOngletAConfirmerActif();
50
 
55
 
51
		public void setOngletValideesActif();
56
		public void setOngletValideesActif();
52
 
57
 
53
		void afficherCacherOngletMonActivite(boolean afficher);
58
		void afficherCacherOngletMonActivite(boolean afficher);
54
 
59
 
55
		void setOngletMonActiviteActif();
60
		void setOngletMonActiviteActif();
56
 
61
 
57
		void setOngletActif(String onglet);
62
		void setOngletActif(String onglet);
58
 
63
 
59
		public void afficherNbEvenements(String nbEvenements);	
64
		public void afficherNbEvenements(String nbEvenements);	
60
		
65
		
61
		public void cacherNbEvenements();	
66
		public void cacherNbEvenements();	
62
	}
67
	}
63
 
68
 
64
	private Vue vue;
69
	private Vue vue;
-
 
70
	private Timer timerRequeteActiviteUtilisateur = null;
65
 
71
 
66
	public MoteurIdentiplantePresenteur(ObservationService serviceObs, Vue vue) {
72
	public MoteurIdentiplantePresenteur(ObservationService serviceObs, Vue vue) {
67
		this.vue = vue;
73
		this.vue = vue;
68
	}
74
	}
69
 
75
 
70
	public void go(HasWidgets composite) {
76
	public void go(HasWidgets composite) {
71
 
77
 
72
		composite.add(vue.asWidget());
78
		composite.add(vue.asWidget());
73
		ajouterMoteurRechercheAvancee();
79
		ajouterMoteurRechercheAvancee();
74
		gererEvenements();
80
		gererEvenements();
75
		gererAffichageOngletMonActivite();
81
		gererAffichageOngletMonActivite();
76
		
-
 
-
 
82
		gererTimerRequeteActiviteUtilisateur();
77
	}
83
	}
78
 
84
 
79
	private void gererAffichageOngletMonActivite() {
85
	private void gererAffichageOngletMonActivite() {
80
		vue.afficherCacherOngletMonActivite(CacheClient.getInstance().getUtilisateur().estIdentifie());
86
		vue.afficherCacherOngletMonActivite(CacheClient.getInstance().getUtilisateur().estIdentifie());
81
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
87
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
82
			@Override
88
			@Override
83
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
89
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
84
				Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur();
90
				Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur();
85
				vue.afficherCacherOngletMonActivite(utilisateur.estIdentifie());
91
				vue.afficherCacherOngletMonActivite(utilisateur.estIdentifie());
86
				vue.cacherNbEvenements();
92
				vue.cacherNbEvenements();
87
				if(!utilisateur.estIdentifie()) {
93
				if(!utilisateur.estIdentifie()) {
88
					activerOnglet("tous");
94
					activerOnglet("tous");
89
				} else {
95
				} else {
90
					if(utilisateur.getNbEvenementsInt() > 0) {
96
					if(utilisateur.getActivite().getNbEvenementsInt() > 0) {
91
						vue.afficherNbEvenements(utilisateur.getNbEvenements());
97
						vue.afficherNbEvenements(utilisateur.getActivite().getNbEvenements());
-
 
98
						CacheClient.ajouterAuTitreOngletNavigateur(" ("+utilisateur.getActivite().getNbEvenements()+")");
92
					}
99
					}
93
				}
100
				}
94
			}
101
			}
95
		});
102
		});
96
	}
103
	}
97
 
104
 
98
	protected void ajouterMoteurRechercheAvancee() {
105
	protected void ajouterMoteurRechercheAvancee() {
99
		MoteurRecherchePresenteur presenteur = new MoteurRecherchePresenteur(new MoteurRechercheVue("") {
106
		MoteurRecherchePresenteur presenteur = new MoteurRecherchePresenteur(new MoteurRechercheVue("") {
100
		}, ModeRecherche.MODE_OBSERVATION) {
107
		}, ModeRecherche.MODE_OBSERVATION) {
101
 
108
 
102
			@Override
109
			@Override
103
			public void lancerRecherche() {
110
			public void lancerRecherche() {
104
				chercherObservations();
111
				chercherObservations();
105
			}
112
			}
106
		};
113
		};
107
		presenteur.go(vue.getZoneRecherche());
114
		presenteur.go(vue.getZoneRecherche());
108
	}
115
	}
109
 
116
 
110
	public void chercherObservations() {
117
	public void chercherObservations() {
111
		vue.getZoneResultats().clear();
118
		vue.getZoneResultats().clear();
112
		CacheClient.getInstance().mettreAjourUrlCourante();
119
		CacheClient.getInstance().mettreAjourUrlCourante();
113
		new ResultatsIdentiplantePresenteur(new ObservationServiceConcret(), new ResultatsIdentiplanteVue()).go(vue.getZoneResultats());
120
		new ResultatsIdentiplantePresenteur(new ObservationServiceConcret(), new ResultatsIdentiplanteVue()).go(vue.getZoneResultats());
114
	}
121
	}
115
 
122
 
116
	protected void gererEvenements() {
123
	protected void gererEvenements() {
117
		// Gestion du clic sur les onglets
124
		// Gestion du clic sur les onglets
118
		vue.getOngletTout().addClickHandler(new ClickHandler() {		
125
		vue.getOngletTout().addClickHandler(new ClickHandler() {		
119
			@Override
126
			@Override
120
			public void onClick(ClickEvent event) {
127
			public void onClick(ClickEvent event) {
121
				activerOnglet("tous");
128
				activerOnglet("tous");
122
			}
129
			}
123
		});
130
		});
124
		
131
		
125
		vue.getOngletADeterminer().addClickHandler(new ClickHandler() {		
132
		vue.getOngletADeterminer().addClickHandler(new ClickHandler() {		
126
			@Override
133
			@Override
127
			public void onClick(ClickEvent event) {
134
			public void onClick(ClickEvent event) {
128
				activerOnglet("adeterminer");
135
				activerOnglet("adeterminer");
129
			}
136
			}
130
		});
137
		});
131
		
138
		
132
		vue.getOngletAConfirmer().addClickHandler(new ClickHandler() {			
139
		vue.getOngletAConfirmer().addClickHandler(new ClickHandler() {			
133
			@Override
140
			@Override
134
			public void onClick(ClickEvent event) {
141
			public void onClick(ClickEvent event) {
135
				activerOnglet("aconfirmer");
142
				activerOnglet("aconfirmer");
136
			}
143
			}
137
		});
144
		});
138
 
145
 
139
		vue.getOngletValidees().addClickHandler(new ClickHandler() {		
146
		vue.getOngletValidees().addClickHandler(new ClickHandler() {		
140
			@Override
147
			@Override
141
			public void onClick(ClickEvent event) {
148
			public void onClick(ClickEvent event) {
142
				activerOnglet("validees");
149
				activerOnglet("validees");
143
			}
150
			}
144
		});
151
		});
145
		
152
		
146
		vue.getOngletMonActivite().addClickHandler(new ClickHandler() {			
153
		vue.getOngletMonActivite().addClickHandler(new ClickHandler() {			
147
			@Override
154
			@Override
148
			public void onClick(ClickEvent event) {	
155
			public void onClick(ClickEvent event) {	
149
				// S'il y a de nouveau évènements sur l'obs, on les affichera tous sur la même page
156
				// S'il y a de nouveau évènements sur l'obs, on les affichera tous sur la même page
150
				int nbEvents = CacheClient.getInstance().getUtilisateur().getNbEvenementsInt();	
157
				int nbEvents = CacheClient.getInstance().getUtilisateur().getActivite().getNbEvenementsInt();	
151
				if(CacheClient.getInstance().getPasPagination() < nbEvents) {
158
				if(CacheClient.getInstance().getPasPagination() < nbEvents) {
152
					CacheClient.getInstance().setPasPagination(nbEvents);
159
					CacheClient.getInstance().setPasPagination(nbEvents);
153
				}
160
				}
154
				
161
				
155
				activerOnglet("monactivite");
162
				activerOnglet("monactivite");
156
				vue.cacherNbEvenements();
163
				vue.cacherNbEvenements();
-
 
164
				CacheClient.reinitialiserTitreOngletNavigateur();
157
			}
165
			}
158
		});
166
		});
159
	}
167
	}
-
 
168
	
-
 
169
	
-
 
170
	public void gererTimerRequeteActiviteUtilisateur() {
-
 
171
		timerRequeteActiviteUtilisateur = new Timer() {			
-
 
172
			@Override
-
 
173
			public void run() {
-
 
174
				Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur();
-
 
175
				if(utilisateur.estIdentifie()) {
-
 
176
					UtilisateurServiceConcret serviceUtilisateur = new UtilisateurServiceConcret();
-
 
177
					serviceUtilisateur.obtenirActiviteUtilisateur(utilisateur.getId(), new ActiviteUtilisateurCallback() {					
-
 
178
						@Override
-
 
179
						public void surRetour(ActiviteUtilisateur activite) {
-
 
180
							CacheClient.getInstance().getUtilisateur().setActivite(activite);
-
 
181
							if(activite.getNbEvenementsInt() > 0) {
-
 
182
								vue.afficherNbEvenements(activite.getNbEvenements());
-
 
183
								CacheClient.ajouterAuTitreOngletNavigateur(" ("+activite.getNbEvenements()+")");
-
 
184
							}
-
 
185
						}
-
 
186
					});
-
 
187
				}
-
 
188
			}
-
 
189
		};
-
 
190
		
-
 
191
		timerRequeteActiviteUtilisateur.scheduleRepeating(30000);
-
 
192
	}
160
	
193
	
161
	protected void activerOnglet(String onglet) {
194
	protected void activerOnglet(String onglet) {
162
		CacheClient.getInstance().setFiltreStatut(onglet);
195
		CacheClient.getInstance().setFiltreStatut(onglet);
163
		CacheClient.getInstance().setPageCouranteRechercheObservations(1);
196
		CacheClient.getInstance().setPageCouranteRechercheObservations(1);
164
		chercherObservations();
197
		chercherObservations();
165
		vue.setOngletActif(onglet);
198
		vue.setOngletActif(onglet);
166
	}
199
	}
167
}
200
}