Rev 1934 | Rev 2054 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.vues.identiplante.moteur;import org.tela_botanica.del.client.cache.CacheClient;import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue;import org.tela_botanica.del.client.composants.partageurl.PartageUrlPresenteur;import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue;import org.tela_botanica.del.client.composants.presenteur.Presenteur;import org.tela_botanica.del.client.config.Config;import org.tela_botanica.del.client.modeles.ModeRecherche;import org.tela_botanica.del.client.modeles.Utilisateur;import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;import org.tela_botanica.del.client.services.rest.ObservationService;import org.tela_botanica.del.client.services.rest.ObservationServiceConcret;import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplantePresenteur;import org.tela_botanica.del.client.vues.identiplante.resultats.ResultatsIdentiplanteVue;import com.google.gwt.event.dom.client.ClickEvent;import com.google.gwt.event.dom.client.ClickHandler;import com.google.gwt.event.dom.client.HasClickHandlers;import com.google.gwt.user.client.Window;import com.google.gwt.user.client.ui.HasWidgets;import com.google.gwt.user.client.ui.IsWidget;import com.google.gwt.user.client.ui.Panel;public class MoteurIdentiplantePresenteur extends Presenteur {public interface Vue extends IsWidget {public HasWidgets getZoneRecherche();public HasWidgets getZoneResultats();public HasClickHandlers getOngletAConfirmer();public HasClickHandlers getOngletADeterminer();public HasClickHandlers getOngletTout();public HasClickHandlers getOngletValidees();public HasClickHandlers getOngletMonActivite();public void setOngletADeterminerActif();public void setOngletToutActif();public void setOngletAConfirmerActif();public void setOngletValideesActif();void afficherCacherOngletMonActivite(boolean afficher);void setOngletMonActiviteActif();void setOngletActif(String onglet);public void afficherNbEvenements(String nbEvenements);public void cacherNbEvenements();}private Vue vue;public MoteurIdentiplantePresenteur(ObservationService serviceObs, Vue vue) {this.vue = vue;}public void go(HasWidgets composite) {composite.add(vue.asWidget());ajouterMoteurRechercheAvancee();gererEvenements();gererAffichageOngletMonActivite();}private void gererAffichageOngletMonActivite() {vue.afficherCacherOngletMonActivite(CacheClient.getInstance().getUtilisateur().estIdentifie());BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {@Overridepublic void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur();vue.afficherCacherOngletMonActivite(utilisateur.estIdentifie());vue.cacherNbEvenements();if(!utilisateur.estIdentifie()) {activerOnglet("tous");} else {if(utilisateur.getNbEvenementsInt() > 0) {vue.afficherNbEvenements(utilisateur.getNbEvenements());}}}});}protected void ajouterMoteurRechercheAvancee() {MoteurRecherchePresenteur presenteur = new MoteurRecherchePresenteur(new MoteurRechercheVue("") {}, ModeRecherche.MODE_OBSERVATION) {@Overridepublic void lancerRecherche() {chercherObservations();}};presenteur.go(vue.getZoneRecherche());}public void chercherObservations() {vue.getZoneResultats().clear();CacheClient.getInstance().mettreAjourUrlCourante();new ResultatsIdentiplantePresenteur(new ObservationServiceConcret(), new ResultatsIdentiplanteVue()).go(vue.getZoneResultats());}protected void gererEvenements() {// Gestion du clic sur les ongletsvue.getOngletTout().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {activerOnglet("tous");}});vue.getOngletADeterminer().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {activerOnglet("adeterminer");}});vue.getOngletAConfirmer().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {activerOnglet("aconfirmer");}});vue.getOngletValidees().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {activerOnglet("validees");}});vue.getOngletMonActivite().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {// S'il y a de nouveau évènements sur l'obs, on les affichera tous sur la même pageint nbEvents = CacheClient.getInstance().getUtilisateur().getNbEvenementsInt();if(CacheClient.getInstance().getPasPagination() < nbEvents) {CacheClient.getInstance().setPasPagination(nbEvents);}activerOnglet("monactivite");vue.cacherNbEvenements();}});}protected void activerOnglet(String onglet) {CacheClient.getInstance().setFiltreStatut(onglet);CacheClient.getInstance().setPageCouranteRechercheObservations(1);chercherObservations();vue.setOngletActif(onglet);}}