Subversion Repositories eFlore/Applications.del

Rev

Rev 1196 | Rev 1206 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.del.client.vues.pictoflora.moteur;

import java.util.List;

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

import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.NodeList;
import com.google.gwt.dom.client.OptionElement;
import com.google.gwt.dom.client.SelectElement;
import com.google.gwt.event.dom.client.HasChangeHandlers;
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.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HasWidgets;
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 MoteurPictofloraVue extends Composite implements MoteurPictofloraPresenteur.Vue {

        private final Panel panneauChargement = new FlowPanel();

        interface MyUiBinder extends UiBinder<Widget, MoteurPictofloraVue> {
        }

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

        @UiField
        Panel panneauResultats, zoneRecherche, zonePartageUrl;
        
        @UiField
        Label ajouterObservation;

        @UiField
        ListBox listeProtocoles;
        
        // Constructeur
        public MoteurPictofloraVue() {
                initWidget(uiBinder.createAndBindUi(this));
        }

        public Panel getPanneauChargement() {
                return panneauChargement;
        }

        public Panel getZonePartageUrl() {
                return zonePartageUrl;
        }
        
        // Cette méthode est public car appelé dans GestionnaireHistorique
        public Panel getZoneResultats() {
                return panneauResultats;
        }

        public void setPanneauResultats(Panel panneauResultats) {
                this.panneauResultats = panneauResultats;
        }

        public HasWidgets getZoneRecherche() {
                return zoneRecherche;
        }
        
        @Override
        public HasClickHandlers getLienAjoutObservation() {
                return ajouterObservation;
        }

        @Override
        public void ajouterVue(HasWidgets composite) {
                composite.add(this.asWidget());
        }
        
        public void setListeProtocoles(ListBox listeProtocoles) {
                this.listeProtocoles = listeProtocoles;
        }
        
        public HasChangeHandlers getListeProtocoles() {
                return listeProtocoles;
        }
        
        public void ajouterProtocole(String NomProtocole, String idProtocole) {
                listeProtocoles.addItem(NomProtocole, idProtocole);
        }

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

        @Override
        public int getIdProtocoleSelectionne() {
                return Integer.parseInt(listeProtocoles.getValue((listeProtocoles.getSelectedIndex())));
        }
        @Override
        public void ajouterProtocoles(List<Protocole> protocoles) {
                SelectElement selectElement = SelectElement.as(listeProtocoles.getElement());
                NodeList<OptionElement> options = selectElement.getOptions();
            for (int i = 0; i < protocoles.size(); i++) {
                listeProtocoles.addItem(protocoles.get(i).getNom(), protocoles.get(i).getId()+"");
                options.getItem(i).setTitle(protocoles.get(i).getDescription());
            }
        }

        @Override
        public void mettreAJourDescriptionProtocoleCourant(
                        Protocole protocoleCourant) {
                listeProtocoles.setTitle(protocoleCourant.getDescription());
        }

}