Subversion Repositories eFlore/Applications.del

Rev

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

package org.tela_botanica.del.client.composants.pagination;

import org.tela_botanica.del.client.i18n.I18n;

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.HasText;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

public class PaginationVue extends Composite implements PaginationPresenteur.Vue {

        @UiField
        HorizontalPanel zoneLiens;

        @UiField
        TextBox selecteurPas;

        @UiField
        Button boutonPrecedent, boutonSuivant, boutonPremierePage, boutonDernierePage;

        @UiField
        Label nbTotalPages;

        interface MyUiBinder extends UiBinder<Widget, PaginationVue> {
        }

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

        public PaginationVue() {
                initWidget(uiBinder.createAndBindUi(this));
        }

        public void afficherPas(int pas) {
                selecteurPas.setText(String.valueOf(pas));
        }

        public void mettreEnValeurPageActive(int pageActive) {
                int nbLiens = getNbWidgetsZoneLiens();
                for (int i = 0; i < nbLiens; i++) {
                        Button boutonCourant = (Button) zoneLiens.getWidget(i);
                        if (nbLiens - i > 5 && i < pageActive - 1 || i > pageActive + 3) {
                                boutonCourant.setVisible(false);
                        } else {
                                if (boutonCourant.getText().equals(String.valueOf(pageActive))) {
                                        changerStyleBoutonZoneLiens(i, "actif");
                                } else {
                                        changerStyleBoutonZoneLiens(i, "inactif");
                                }
                                boutonCourant.setVisible(true);
                        }

                }
        }

        public void mettreNbTotalPages(int nbPages) {
                nbTotalPages.setText((I18n.getMessages().parmi_nb_pages(nbPages)));
        }

        public void masquerBoutonPrecedent() {
                boutonPremierePage.setVisible(false);
                boutonPrecedent.setVisible(false);
        }

        public void afficherBoutonPrecedent() {
                boutonPremierePage.setVisible(true);
                boutonPrecedent.setVisible(true);
        }

        public void masquerBoutonSuivant() {
                boutonDernierePage.setVisible(false);
                boutonSuivant.setVisible(false);
        }

        public void afficherBoutonSuivant() {
                boutonDernierePage.setVisible(true);
                boutonSuivant.setVisible(true);
        }

        public TextBox getSelecteurPas() {
                return selecteurPas;
        }

        @Override
        public HasWidgets getZoneLiens() {
                return zoneLiens;
        }

        @Override
        public HasClickHandlers getBoutonSuivant() {
                return boutonSuivant;
        }

        @Override
        public HasClickHandlers getBoutonPrecedent() {
                return boutonPrecedent;
        }

        @Override
        public HasClickHandlers getBoutonPremierePage() {
                return boutonPremierePage;
        }

        @Override
        public HasClickHandlers getBoutonDernierePage() {
                return boutonDernierePage;
        }

        @Override
        public int getNbWidgetsZoneLiens() {
                return zoneLiens.getWidgetCount();
        }

        @Override
        public HasClickHandlers getWidgetZoneLiensHasClickHandlers(int index) {
                return (Button) zoneLiens.getWidget(index);
        }

        @Override
        public HasText getWidgetZoneLiensAsText(int index) {
                return (Button) zoneLiens.getWidget(index);
        }

        @Override
        public void changerStyleBoutonZoneLiens(int index, String style) {
                zoneLiens.getWidget(index).setStyleName(style);
        }

        @Override
        public void ajouterBoutonZoneLiens(String label) {
                Button bouton = new Button(label);
                zoneLiens.add(bouton);
        }

        @Override
        public int getPasSelectionne() throws NumberFormatException {
                return Integer.parseInt(selecteurPas.getText());
        }

        @Override
        public boolean boutonPrecedentEstAffiche() {
                return boutonPrecedent.isVisible() && boutonPremierePage.isVisible();
        }

        @Override
        public boolean boutonSuivantEstAffiche() {
                return boutonSuivant.isVisible() && boutonDernierePage.isVisible();
        }

        public Label getNbTotalPages() {
                return nbTotalPages;
        }

}