Subversion Repositories eFlore/Applications.del

Rev

Rev 591 | Blame | Last modification | View Log | RSS feed

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

import java.util.ArrayList;
import java.util.List;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasChangeHandlers;
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.HTMLPanel;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;

public class ResultatRechercheImageVue extends Composite implements ResultatRechercheImagePresenteur.Vue {

        @UiField
        Panel panneauChargement;
        private final List<HasWidgets> panneauxImages = new ArrayList<HasWidgets>();
        private final int nbImagesPerPage = 10;
        private int numImage = 0;

        // Annotation can be used to change the name of the associated xml file
        // @UiTemplate("ObservationRechercheVue.ui.xml")
        interface MyUiBinder extends UiBinder<Widget, ResultatRechercheImageVue> {
        }

        private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);

        @UiField
        Panel panneauPagination, panneauPaginationHaut, zoneTri;

        @UiField
        HTMLPanel imageTable;

        @UiField
        Button triParNbVotesAscendant, triParNbVotesDescendant, triParDateAscendant, triParDateDescendant;

        @UiField
        Label aucunResultat;
        
        @UiField
        Hyperlink labelVote, labelDate;
        
        @UiField
        ListBox listeProtocoles;
        // Constructeur
        public ResultatRechercheImageVue() {
                initWidget(uiBinder.createAndBindUi(this));
        }

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

        public void creerPanneauxObservations(int taille) {

                panneauxImages.clear();
                for (int i = 0; i < taille; i++) {
                        Panel imagePanel = new HTMLPanel("");
                        panneauxImages.add(imagePanel);
                }
        }

        public void afficherElementsAucunResultatTrouve() {
                imageTable.clear();
                aucunResultat.setVisible(true);
                panneauPaginationHaut.setVisible(false);
                panneauPagination.setVisible(false);
                zoneTri.setVisible(false);
        }

        public void afficherElementsResultatsTrouve() {
                aucunResultat.setVisible(false);
                panneauPaginationHaut.setVisible(true);
                panneauPagination.setVisible(true);
                zoneTri.setVisible(true);
        }

        public void setNumImage(int numImage) {
                this.numImage = numImage;
        }

        public void startChargement() {
                panneauChargement.setHeight((this.getOffsetHeight() - (panneauPagination.getOffsetHeight() * 2)) + "px");
                panneauChargement.setVisible(true);
        }

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

        public HTMLPanel getImageTable() {
                return imageTable;
        }

        public int getNumImage() {
                return numImage;
        }

        public Panel getPanneauChargement() {
                return panneauChargement;
        }

        public Panel getPanneauPagination() {
                return panneauPagination;
        }

        public Panel getPanneauPaginationHaut() {
                return panneauPaginationHaut;
        }

        public int getNbImagesPerPage() {
                return nbImagesPerPage;
        }

        public List<HasWidgets> getPanneauxImages() {
                return panneauxImages;
        }

        public Button getTriParNbVotesAscendant() {
                return triParNbVotesAscendant;
        }

        public Button getTriParNbVotesDescendant() {
                return triParNbVotesDescendant;
        }

        public Button getTriParDateAscendant() {
                return triParDateAscendant;
        }

        public Button getTriParDateDescendant() {
                return triParDateDescendant;
        }
        
        public void setListeProtocoles(ListBox listeProtocoles) {
                this.listeProtocoles = listeProtocoles;
        }
        
        public HasChangeHandlers getListeProtocoles() {
                return listeProtocoles;
        }
        
        public void ajouterProtocole(String protocole) {
                listeProtocoles.addItem(protocole);
        }

        public void selectionnerProtocole(int index) {
                listeProtocoles.setSelectedIndex(index);
        }
        
        @Override
        public String getNomProtocolSelectionne() {
                return listeProtocoles.getValue(listeProtocoles.getSelectedIndex());
        }

        @Override
        public int getIdProtocoleSelectionne() {
                return listeProtocoles.getSelectedIndex();
        }

        @Override
        public Hyperlink getLabelVote() {
                return labelVote;
        }

        @Override
        public void masquerVoteAscendant() {
                triParNbVotesAscendant.setVisible(false);
        }
        
        @Override
        public void masquerVoteDescendant() {
                triParNbVotesDescendant.setVisible(false);
        }
        
        @Override
        public void afficherVoteAscendant() {
                triParNbVotesAscendant.setVisible(true);
        }
        
        @Override
        public void afficherVoteDescendant() {
                triParNbVotesDescendant.setVisible(true);
        }
        
        @Override
        public Hyperlink getLabelDate() {
                return labelDate;
        }
        
        @Override
        public void masquerDateAscendant() {
                triParDateAscendant.setVisible(false);
        }
        
        @Override
        public void masquerDateDescendant() {
                triParDateDescendant.setVisible(false);
        }
        
        @Override
        public void afficherDateAscendant() {
                triParDateAscendant.setVisible(true);
        }
        
        @Override
        public void afficherDateDescendant() {
                triParDateDescendant.setVisible(true);
        }
}