Rev 445 | 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.Widget;
public class PaginationVue extends Composite implements PaginationPresenteur.Vue {
@UiField
HorizontalPanel zoneLiens;
@UiField
ListBox 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) {
switch (pas) {
case 5:
changerSelecteurPas(0);
break;
case 10:
changerSelecteurPas(1);
break;
case 15:
changerSelecteurPas(2);
break;
case 20:
changerSelecteurPas(3);
break;
default:
break;
}
}
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 ListBox 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;
}
public void changerSelecteurPas(int index) {
selecteurPas.setSelectedIndex(index);
}
@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() {
int index = selecteurPas.getSelectedIndex();
return Integer.parseInt(selecteurPas.getValue(index));
}
@Override
public boolean boutonPrecedentEstAffiche() {
return boutonPrecedent.isVisible() && boutonPremierePage.isVisible();
}
@Override
public boolean boutonSuivantEstAffiche() {
return boutonSuivant.isVisible() && boutonDernierePage.isVisible();
}
public Label getNbTotalPages() {
return nbTotalPages;
}
}