Subversion Repositories eFlore/Applications.del

Rev

Rev 210 | Go to most recent revision | 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 org.tela_botanica.del.client.modeles.Image;

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.Composite;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

public class ResultatRechercheImageVue extends Composite {

        private final VerticalPanel mainPanel = new VerticalPanel();
        private final Panel panneauChargement = new FlowPanel();
        private final List<Panel> panneauxImages = new ArrayList<Panel>();
        private int nbCol = 5;
        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;

        @UiField
        FlexTable imageTable;

        // Constructeur
        protected ResultatRechercheImageVue() {

                initWidget(uiBinder.createAndBindUi(this));

        }

        /**
         * Nettoie et remet à zéro les composants du panneau qui doivent l'être
         * */
        protected void nettoyer() {
                setNumImage(0);
                imageTable.clear();
                panneauxImages.clear();
        }
        
        protected void creerPanneauxObservations(int taille) {
                
                panneauxImages.clear();
                for (int i = 0; i < taille; i++) {
                        Panel imagePanel = new VerticalPanel();
                        panneauxImages.add(imagePanel);
                }
        }

        protected void afficherPanneauxObservation(List<Panel> imagesPanel) {

                imageTable.clear();
                for (int i = 0; i < imagesPanel.size(); i++) {
                        VerticalPanel panneauImage = (VerticalPanel)imagesPanel.get(i);
                        panneauxImages.add(panneauImage);
                        imageTable.setWidget((i) / nbCol, (i) % nbCol, panneauImage);
                }

        }

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

        protected void startChargement() {
                panneauChargement.setVisible(true);
        }

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

        public FlexTable getImageTable() {
                return imageTable;
        }

        public int getNumImage() {
                return numImage;
        }

        public Panel getPanneauChargement() {
                return panneauChargement;
        }

        public Panel getPanneauPagination() {
                return panneauPagination;
        }

        public int getNbImagesPerPage() {
                return nbImagesPerPage;
        }

        public Panel getPanel() {
                return mainPanel;
        }

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

}