Subversion Repositories eFlore/Applications.del

Rev

Rev 1196 | 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.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 triParDateAscendant, triParDateDescendant;

        @UiField
        Label aucunResultat, labelDate;
        

        // 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 Button getTriParDateAscendant() {
                return triParDateAscendant;
        }

        public Button getTriParDateDescendant() {
                return triParDateDescendant;
        }
        
        @Override
        public Label getLabelDate() {
                return labelDate;
        }
        
        
        /**
         * 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
         * */
        public void setModeTri(ModeTri mode) {
                if (mode == ModeTri.TRI_ASCENDANT) {
                        triParDateAscendant.setVisible(true);
                        triParDateDescendant.setVisible(false);
                } else {
                        triParDateDescendant.setVisible(true);
                        triParDateAscendant.setVisible(false);
                }
        }
}