10,12 → 10,12 |
import com.google.gwt.user.client.ui.ListBox; |
|
/** |
* @author gregoire |
* Pagination GENERIQUE qui permet d'afficher un nombre donné d'éléments (pas) |
* La méthode changerPage est abstraite et doit être définie lors de l'instanciation |
* de la classe pagination pour permettre d'afficher la suite des éléments |
* La méthode actualiserPasCache est abstraite car le pas est différent en |
* fonction de la page où l'on se trouve |
* @author gregoire Pagination GENERIQUE qui permet d'afficher un nombre donné |
* d'éléments (pas) La méthode changerPage est abstraite et doit être |
* définie lors de l'instanciation de la classe pagination pour |
* permettre d'afficher la suite des éléments La méthode |
* actualiserPasCache est abstraite car le pas est différent en fonction |
* de la page où l'on se trouve |
* */ |
public abstract class PaginationPresenteur { |
|
27,15 → 27,29 |
|
/** |
* Constructeur de l'application |
* @param nbElementsTotal : le nombre total des éléments à paginer |
* @param pas : le nombre d'éléments à afficher par page |
* |
* @param nbElementsTotal |
* : le nombre total des éléments à paginer |
* @param pas |
* : le nombre d'éléments à afficher par page |
* */ |
public PaginationPresenteur(int nbElementsTotal, int pas) { |
this.nbElementsTotal = nbElementsTotal; |
this.pas=pas; |
vue = new PaginationVue(); |
changerPas(pas); |
} |
|
/** |
* Methode go du modèle MVP |
* |
* @param container |
* : la vue ou éxécuter l'affichage |
*/ |
public void go(HasWidgets container) { |
actualiserLiens(); |
container.add(vue); |
} |
|
/** Met à jour le nombre de page en fonction du pas */ |
private void actualiserNbPage() { |
Double nombrePages = Math.ceil((double) nbElementsTotal / (double) pas); |
42,28 → 56,43 |
this.nbPage = nombrePages.intValue(); |
} |
|
/** Changer le pas de la pagination |
* @param pas : le nombre d'éléments à afficher par page */ |
/** |
* Changer le pas de la pagination |
* |
* @param pas |
* : le nombre d'éléments à afficher par page |
*/ |
public void changerPas(int pas) { |
this.pas = pas; |
actualiserNbPage(); |
changerPage(pas * pageCourante, pas * (pageCourante + 1)); |
switch (pas) { |
case 5: |
vue.getSelecteurPas().setSelectedIndex(0); |
break; |
case 10: |
vue.getSelecteurPas().setSelectedIndex(1); |
break; |
case 15: |
vue.getSelecteurPas().setSelectedIndex(2); |
break; |
case 20: |
vue.getSelecteurPas().setSelectedIndex(3); |
break; |
default: |
break; |
} |
actualiserPasCache(pas); |
} |
|
/** Methode Go du modèle MVP |
* @param container : la vue ou éxécuter l'affichage */ |
public void go(HasWidgets container) { |
actualiserLiens(); |
container.add(vue); |
} |
|
/** Actualiser les liens pour n'afficher 5 avant et 5 après |
/** |
* Actualiser les liens pour n'afficher 5 avant et 5 après |
* */ |
public void actualiserLiens() { |
|
HorizontalPanel zoneLiens = vue.zoneLiens; |
zoneLiens.clear(); |
|
|
int pageDebut = pagesAvant(); |
int pageFin = pagesApres(); |
|
108,7 → 137,8 |
} |
} |
|
/** Gérer les évènements sur les boutons |
/** |
* Gérer les évènements sur les boutons |
* */ |
public void gererEvenements() { |
vue.selecteurPas.addChangeHandler(new ChangeHandler() { |
135,7 → 165,6 |
} |
}); |
|
|
int nbLiens = vue.zoneLiens.getWidgetCount(); |
for (int i=0; i < nbLiens; i++) { |
Button boutonCourant = (Button) vue.zoneLiens.getWidget(i); |
156,7 → 185,8 |
} |
} |
|
/** Retourne la limite supèrieur du nombre de pages à afficher |
/** |
* Retourne la limite supèrieur du nombre de pages à afficher |
* */ |
public void pageSuivante() { |
if (pageCourante < nbPage - 1) { |
168,7 → 198,8 |
} |
} |
|
/** Retourne la limite infèrieure du nombre de pages à afficher |
/** |
* Retourne la limite infèrieure du nombre de pages à afficher |
* */ |
public void pagePrecedente() { |
if (pageCourante > 1) { |
185,6 → 216,7 |
} |
|
public abstract void changerPage(int debut, int fin); |
|
public abstract void actualiserPasCache(int pas); |
|
} |