Subversion Repositories eFlore/Applications.del

Rev

Rev 2050 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.del.client.vues.identiplante.resultats;

import org.tela_botanica.del.client.modeles.ModeTri;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;

public class ResultatsIdentiplanteVue extends Composite implements ResultatsIdentiplantePresenteur.Vue {

        @UiField
        Panel panneauChargement;

        // Gestion d'UiBinder
        interface Binder extends UiBinder<Widget, ResultatsIdentiplanteVue> {
        }

        private static Binder binder = GWT.create(Binder.class);

        @UiField
        Panel zoneObservations, zonePaginationHaut, zonePaginationBas, zoneTri;

        @UiField
        Button triParDateObservationAscendant, triParDateObservationDescendant,
                        triParDatePublicationAscendant, triParDatePublicationDescendant,
                        triParNbCommentairesAscendant, triParNbCommentairesDescendant;

        @UiField
        Label aucunResultat, labelDateObservation, labelDatePublication, labelNbCommentaires;
        

        // Constructeur de la vue
        public ResultatsIdentiplanteVue() {
                initWidget(binder.createAndBindUi(this));
        }
        
        @Override
        public HasWidgets getZoneObservations() {
                return zoneObservations;
        }

        @Override
        public HasWidgets getZonePaginationHaut() {
                return zonePaginationHaut;
        }

        @Override
        public HasWidgets getZonePaginationBas() {
                return zonePaginationBas;
        }

        /**
         * Nettoie et remet à zéro les composants du panneau qui doivent l'être
         * */
        @Override
        public void nettoyer() {
                zoneObservations.clear();
        }

        @Override
        public void startChargement() {
                panneauChargement.setHeight(zoneObservations.getOffsetHeight() + "px");
                panneauChargement.setVisible(true);
        }

        @Override
        public void stopChargement() {
                panneauChargement.setVisible(false);
        }

        public void afficherElementsAucunResultatTrouve() {
                nettoyer();
                aucunResultat.setVisible(true);
                zonePaginationHaut.setVisible(false);
                zonePaginationBas.setVisible(false);
                zoneTri.setVisible(false);
        }

        public void afficherElementsResultatsTrouves() {
                aucunResultat.setVisible(false);
                zonePaginationHaut.setVisible(true);
                zonePaginationBas.setVisible(true);
                zoneTri.setVisible(true);
        }
        
        public void afficherCacherZoneTri(boolean afficher) {
                zoneTri.setVisible(afficher);
        }

        public Button getTriParDateObservationAscendant() {
                return triParDateObservationAscendant;
        }

        public Button getTriParDateObservationDescendant() {
                return triParDateObservationDescendant;
        }
        
        public Button getTriParDatePublicationAscendant() {
                return triParDatePublicationAscendant;
        }

        public Button getTriParDatePublicationDescendant() {
                return triParDatePublicationDescendant;
        }
        
        @Override
        public Label getLabelDateObservation() {
                return labelDateObservation;
        }
        
        @Override
        public Label getLabelDatePublication() {
                return labelDatePublication;
        }
        
        @Override
        public Label getLabelNbCommentaires() {
                return labelNbCommentaires;
        }
        
        @Override
        public HasClickHandlers getTriParNbCommentairesAscendant() {
                return triParNbCommentairesAscendant;
        }

        @Override
        public HasClickHandlers getTriParNbCommentairesDescendant() {
                return triParNbCommentairesDescendant;
        }
        
        private void cacherTris() {
                triParDateObservationAscendant.setVisible(false);
                triParDateObservationDescendant.setVisible(false);
                
                triParDatePublicationDescendant.setVisible(false);
                triParDatePublicationAscendant.setVisible(false);
                
                triParNbCommentairesAscendant.setVisible(false);
                triParNbCommentairesDescendant.setVisible(false);
        }
        
        /**
         * En fonction du sens du tri (ascendant ou descendant), on change l'affichage des 
         * boutons de tri pour masquer que celui qui doit être cliquable.
         * @param ModeTri le mode Ascendant ou Descendant
         * */
        @Override
        public void setModeTriPublication(ModeTri mode) {
                cacherTris();
                if (mode == ModeTri.TRI_ASCENDANT) {
                        triParDatePublicationAscendant.setVisible(true);
                        triParDatePublicationDescendant.setVisible(false);
                } else {
                        triParDatePublicationDescendant.setVisible(true);
                        triParDatePublicationAscendant.setVisible(false);
                }
        }
        
        /**
         * En fonction du sens du tri (ascendant ou descendant), on change l'affichage des 
         * boutons de tri pour masquer que celui qui doit être cliquable.
         * @param ModeTri le mode Ascendant ou Descendant
         * */
        @Override
        public void setModeTriObservation(ModeTri mode) {
                cacherTris();
                if (mode == ModeTri.TRI_ASCENDANT) {
                        triParDateObservationAscendant.setVisible(true);
                        triParDateObservationDescendant.setVisible(false);
                } else {
                        triParDateObservationDescendant.setVisible(true);
                        triParDateObservationAscendant.setVisible(false);
                }
        }
        

        @Override
        public void setModeTriNbCommentaires(ModeTri mode) {
                cacherTris();
                if (mode == ModeTri.TRI_ASCENDANT) {
                        triParNbCommentairesAscendant.setVisible(true);
                        triParNbCommentairesDescendant.setVisible(false);
                } else {
                        triParNbCommentairesDescendant.setVisible(true);
                        triParNbCommentairesAscendant.setVisible(false);
                }
        }
}