Subversion Repositories eFlore/Applications.del

Rev

Rev 1934 | Rev 2054 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1196 gduche 1
package org.tela_botanica.del.client.vues.identiplante.moteur;
161 gduche 2
 
1234 gduche 3
import org.tela_botanica.del.client.cache.CacheClient;
330 gduche 4
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;
5
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue;
1183 gduche 6
import org.tela_botanica.del.client.composants.partageurl.PartageUrlPresenteur;
7
import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue;
161 gduche 8
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
1010 aurelien 9
import org.tela_botanica.del.client.config.Config;
453 aurelien 10
import org.tela_botanica.del.client.modeles.ModeRecherche;
2050 aurelien 11
import org.tela_botanica.del.client.modeles.Utilisateur;
12
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
13
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
14
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
392 aurelien 15
import org.tela_botanica.del.client.services.rest.ObservationService;
445 benjamin 16
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret;
1196 gduche 17
import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplantePresenteur;
18
import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplanteVue;
161 gduche 19
 
1010 aurelien 20
import com.google.gwt.event.dom.client.ClickEvent;
21
import com.google.gwt.event.dom.client.ClickHandler;
22
import com.google.gwt.event.dom.client.HasClickHandlers;
23
import com.google.gwt.user.client.Window;
161 gduche 24
import com.google.gwt.user.client.ui.HasWidgets;
309 aurelien 25
import com.google.gwt.user.client.ui.IsWidget;
1183 gduche 26
import com.google.gwt.user.client.ui.Panel;
161 gduche 27
 
1196 gduche 28
public class MoteurIdentiplantePresenteur extends Presenteur {
436 benjamin 29
 
479 benjamin 30
	public interface Vue extends IsWidget {
330 gduche 31
		public HasWidgets getZoneRecherche();
436 benjamin 32
 
445 benjamin 33
		public HasWidgets getZoneResultats();
455 benjamin 34
 
1934 aurelien 35
		public HasClickHandlers getOngletAConfirmer();
1109 gduche 36
 
1234 gduche 37
		public HasClickHandlers getOngletADeterminer();
1109 gduche 38
 
1234 gduche 39
		public HasClickHandlers getOngletTout();
1444 raphael 40
 
41
		public HasClickHandlers getOngletValidees();
1109 gduche 42
 
2050 aurelien 43
		public HasClickHandlers getOngletMonActivite();
44
 
1234 gduche 45
		public void setOngletADeterminerActif();
46
 
47
		public void setOngletToutActif();
48
 
1934 aurelien 49
		public void setOngletAConfirmerActif();
1444 raphael 50
 
51
		public void setOngletValideesActif();
2050 aurelien 52
 
53
		void afficherCacherOngletMonActivite(boolean afficher);
54
 
55
		void setOngletMonActiviteActif();
56
 
57
		void setOngletActif(String onglet);
58
 
59
		public void afficherNbEvenements(String nbEvenements);
1234 gduche 60
 
2050 aurelien 61
		public void cacherNbEvenements();
309 aurelien 62
	}
335 benjamin 63
 
309 aurelien 64
	private Vue vue;
436 benjamin 65
 
1196 gduche 66
	public MoteurIdentiplantePresenteur(ObservationService serviceObs, Vue vue) {
309 aurelien 67
		this.vue = vue;
161 gduche 68
	}
69
 
70
	public void go(HasWidgets composite) {
436 benjamin 71
 
309 aurelien 72
		composite.add(vue.asWidget());
330 gduche 73
		ajouterMoteurRechercheAvancee();
455 benjamin 74
		gererEvenements();
2050 aurelien 75
		gererAffichageOngletMonActivite();
1183 gduche 76
 
161 gduche 77
	}
335 benjamin 78
 
2050 aurelien 79
	private void gererAffichageOngletMonActivite() {
80
		vue.afficherCacherOngletMonActivite(CacheClient.getInstance().getUtilisateur().estIdentifie());
81
		BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
82
			@Override
83
			public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
84
				Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur();
85
				vue.afficherCacherOngletMonActivite(utilisateur.estIdentifie());
86
				vue.cacherNbEvenements();
87
				if(!utilisateur.estIdentifie()) {
88
					activerOnglet("tous");
89
				} else {
90
					if(utilisateur.getNbEvenementsInt() > 0) {
91
						vue.afficherNbEvenements(utilisateur.getNbEvenements());
92
					}
93
				}
94
			}
95
		});
96
	}
97
 
330 gduche 98
	protected void ajouterMoteurRechercheAvancee() {
406 gduche 99
		MoteurRecherchePresenteur presenteur = new MoteurRecherchePresenteur(new MoteurRechercheVue("") {
453 aurelien 100
		}, ModeRecherche.MODE_OBSERVATION) {
335 benjamin 101
 
330 gduche 102
			@Override
335 benjamin 103
			public void lancerRecherche() {
445 benjamin 104
				chercherObservations();
161 gduche 105
			}
330 gduche 106
		};
107
		presenteur.go(vue.getZoneRecherche());
161 gduche 108
	}
109
 
445 benjamin 110
	public void chercherObservations() {
111
		vue.getZoneResultats().clear();
1467 aurelien 112
		CacheClient.getInstance().mettreAjourUrlCourante();
1234 gduche 113
		new ResultatsIdentiplantePresenteur(new ObservationServiceConcret(), new ResultatsIdentiplanteVue()).go(vue.getZoneResultats());
166 gduche 114
	}
161 gduche 115
 
445 benjamin 116
	protected void gererEvenements() {
1234 gduche 117
		// Gestion du clic sur les onglets
2050 aurelien 118
		vue.getOngletTout().addClickHandler(new ClickHandler() {
1234 gduche 119
			@Override
120
			public void onClick(ClickEvent event) {
2050 aurelien 121
				activerOnglet("tous");
1234 gduche 122
			}
123
		});
1109 gduche 124
 
2050 aurelien 125
		vue.getOngletADeterminer().addClickHandler(new ClickHandler() {
1109 gduche 126
			@Override
127
			public void onClick(ClickEvent event) {
2050 aurelien 128
				activerOnglet("adeterminer");
1109 gduche 129
			}
130
		});
131
 
2050 aurelien 132
		vue.getOngletAConfirmer().addClickHandler(new ClickHandler() {
1109 gduche 133
			@Override
134
			public void onClick(ClickEvent event) {
2050 aurelien 135
				activerOnglet("aconfirmer");
1109 gduche 136
			}
137
		});
1444 raphael 138
 
2050 aurelien 139
		vue.getOngletValidees().addClickHandler(new ClickHandler() {
1444 raphael 140
			@Override
141
			public void onClick(ClickEvent event) {
2050 aurelien 142
				activerOnglet("validees");
1444 raphael 143
			}
144
		});
2050 aurelien 145
 
146
		vue.getOngletMonActivite().addClickHandler(new ClickHandler() {
147
			@Override
148
			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
150
				int nbEvents = CacheClient.getInstance().getUtilisateur().getNbEvenementsInt();
151
				if(CacheClient.getInstance().getPasPagination() < nbEvents) {
152
					CacheClient.getInstance().setPasPagination(nbEvents);
153
				}
154
 
155
				activerOnglet("monactivite");
156
				vue.cacherNbEvenements();
157
			}
158
		});
359 benjamin 159
	}
2050 aurelien 160
 
161
	protected void activerOnglet(String onglet) {
162
		CacheClient.getInstance().setFiltreStatut(onglet);
163
		CacheClient.getInstance().setPageCouranteRechercheObservations(1);
164
		chercherObservations();
165
		vue.setOngletActif(onglet);
166
	}
161 gduche 167
}