16,20 → 16,18 |
|
public abstract class PaginationPresenteur { |
|
// Singleton |
private static PaginationPresenteur presenteur; |
|
private final PaginationVue vue; |
private int nbElementsTotal = 0; |
private int nbPage; |
private Vector<Button> liens; |
private int pas = 10; |
|
public PaginationPresenteur(int nbElements) { |
presenteur = this; |
public PaginationPresenteur(int nbElements, int pas) { |
this.nbElementsTotal = nbElements; |
actualiserNbPage(); |
vue = new PaginationVue(); |
setPas(CacheClient.getInstance().getPasPageRechercheImage()); |
//FIXME : doit être dans la page de rechercheImage |
setPas(pas); |
} |
|
private void setBoutonActif() { |
45,15 → 43,16 |
} |
|
private void actualiserNbPage() { |
Double a = Math.ceil((double) nbElementsTotal / (double) CacheClient.getInstance().getPasPageRechercheImage()); |
Double a = Math.ceil((double) nbElementsTotal / (double) pas); |
this.nbPage = a.intValue(); |
} |
|
public void setPas(int pas) { |
CacheClient.getInstance().setPasPageRechercheImage(pas); |
actualiserNbPage(); |
creerLiens(); |
changerPage(CacheClient.getInstance().getPasPageRechercheImage() * CacheClient.getInstance().getNumPageRechercheImage(), CacheClient.getInstance().getPasPageRechercheImage() * (CacheClient.getInstance().getNumPageRechercheImage() + 1)); |
changerPage(pas * CacheClient.getInstance().getNumPageRechercheImage(), pas * (CacheClient.getInstance().getNumPageRechercheImage() + 1)); |
|
actualiserPasCache(pas); |
} |
|
public void creerLiens() { |
73,8 → 72,17 |
liens.add(precedent); |
vue.getZoneLiens().add(precedent); |
|
// TODO : gérer le nombre de pages excessives |
for (int i = 0; i < nbPage; i++) { |
int pageDebut = CacheClient.getInstance().getNumPageRechercheImage() - 5; |
if (pageDebut < 1) { |
pageDebut = 1; |
} |
|
int pageFin = pageDebut + 5; |
if (pageFin > nbPage) { |
pageFin = nbPage; |
} |
|
for (int i = pageDebut; i < pageFin; i++) { |
Button bouton = new Button(); |
bouton.setText(String.valueOf(i)); |
liens.add(bouton); |
109,7 → 117,7 |
|
nbElements.addItem(String.valueOf(valeur)); |
} |
nbElements.setSelectedIndex(CacheClient.getInstance().getPasPageRechercheImage() / 5); |
nbElements.setSelectedIndex(pas / 5); |
nbElements.addChangeHandler(new ChangeHandler() { |
|
@Override |
140,8 → 148,8 |
public void onClick(ClickEvent event) { |
Button bouton = (Button) event.getSource(); |
CacheClient.getInstance().setNumPageRechercheImage(Integer.parseInt(bouton.getText())); |
int debut = Integer.parseInt(bouton.getText()) * CacheClient.getInstance().getPasPageRechercheImage(); |
int fin = (debut + CacheClient.getInstance().getPasPageRechercheImage()); |
int debut = Integer.parseInt(bouton.getText()) * pas; |
int fin = (debut + pas); |
setBoutonActif(); |
changerPage(debut, fin); |
|
154,8 → 162,8 |
public void pageSuivante() { |
if (CacheClient.getInstance().getNumPageRechercheImage() < nbPage - 1) { |
CacheClient.getInstance().setNumPageRechercheImage(CacheClient.getInstance().getNumPageRechercheImage() + 1); |
int debut = CacheClient.getInstance().getNumPageRechercheImage() * CacheClient.getInstance().getPasPageRechercheImage(); |
int fin = debut + CacheClient.getInstance().getPasPageRechercheImage(); |
int debut = CacheClient.getInstance().getNumPageRechercheImage() * pas; |
int fin = debut + pas; |
changerPage(debut, fin); |
} |
setBoutonActif(); |
165,8 → 173,8 |
|
if (CacheClient.getInstance().getNumPageRechercheImage() > 0) { |
CacheClient.getInstance().setNumPageRechercheImage(CacheClient.getInstance().getNumPageRechercheImage() - 1); |
int debut = CacheClient.getInstance().getNumPageRechercheImage() * CacheClient.getInstance().getPasPageRechercheImage(); |
int fin = debut + CacheClient.getInstance().getPasPageRechercheImage(); |
int debut = CacheClient.getInstance().getNumPageRechercheImage() * pas; |
int fin = debut + pas; |
changerPage(debut, fin); |
} |
setBoutonActif(); |
173,8 → 181,6 |
} |
|
public abstract void changerPage(int debut, int fin); |
public abstract void actualiserPasCache(int pas); |
|
public PaginationPresenteur getInstance() { |
return presenteur; |
} |
} |