Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 567 → Rev 568

/trunk/src/org/tela_botanica/del/client/composants/pagination/pagination.css
1,5 → 1,6
.pagination {width:100%;}
.selecteurElements {float:right; width:2em}
.pageCourante {width:2em}
.pagination button {border:none; border-right:solid 1px #DDD; cursor:pointer; width:30px}
.zoneLiens {}
.zoneLiens button:hover {background:#8EB533}
/trunk/src/org/tela_botanica/del/client/composants/pagination/PaginationVue.ui.xml
5,8 → 5,7
<g:HorizontalPanel styleName="{style.pagination}">
<g:Button ui:field="boutonPremierePage" styleName="{style.boutonPremierePage}" text=" " />
<g:Button ui:field="boutonPrecedent" styleName="{style.boutonPrecedent}" text=" " />
<g:HorizontalPanel styleName="{style.zoneLiens}" ui:field="zoneLiens"/>
<g:HorizontalPanel />
<g:TextBox styleName="{style.pageCourante}" ui:field="saisiePageCourante"/>
<g:Button ui:field="boutonSuivant" styleName="{style.boutonSuivant}" text=" "/>
<g:Button ui:field="boutonDernierePage" styleName="{style.boutonDernierePage}" text=" " />
<g:Label styleName="{style.nombreTotal}" ui:field="nbTotalPages" />
/trunk/src/org/tela_botanica/del/client/composants/pagination/PaginationPresenteur.java
5,7 → 5,6
import org.tela_botanica.del.client.navigation.evenement.pagination.EvenementChangementPas;
import org.tela_botanica.del.client.navigation.evenement.pagination.GestionnaireEvenementChangementPage;
import org.tela_botanica.del.client.navigation.evenement.pagination.GestionnaireEvenementChangementPas;
 
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent;
12,8 → 11,6
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasChangeHandlers;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
28,47 → 25,23
public abstract class PaginationPresenteur {
 
public interface Vue extends IsWidget {
public HasWidgets getZoneLiens();
 
public int getNbWidgetsZoneLiens();
 
public HasClickHandlers getWidgetZoneLiensHasClickHandlers(int index);
 
public HasText getWidgetZoneLiensAsText(int index);
 
public void changerStyleBoutonZoneLiens(int index, String style);
 
public void ajouterBoutonZoneLiens(String label);
 
public HasClickHandlers getBoutonSuivant();
 
public HasClickHandlers getBoutonPrecedent();
 
public HasClickHandlers getBoutonPremierePage();
 
public HasClickHandlers getBoutonDernierePage();
 
public void masquerBoutonPrecedent();
 
public void afficherBoutonPrecedent();
 
public void masquerBoutonSuivant();
 
public void afficherBoutonSuivant();
 
public boolean boutonPrecedentEstAffiche();
 
public boolean boutonSuivantEstAffiche();
 
public HasChangeHandlers getSelecteurPas();
 
public int getPasSelectionne();
 
public void afficherPas(int pas);
 
public void mettreEnValeurPageActive(int pageActive);
 
public void mettreNbTotalPages(int nbPages);
public HasChangeHandlers getSaisiePageCourante();
public int getPageSaisie();
public void setPageCourante(int pageCourante);
}
 
private Vue vue;
92,6 → 65,7
this.vue = vue;
this.pas = pas;
this.pageCourante = pageCourante;
vue.setPageCourante(pageCourante);
this.nbPage = calculerNbPage();
}
 
104,7 → 78,6
public void go(HasWidgets container) {
container.add(vue.asWidget());
gererEvenements();
actualiserLiensPagesPagination();
actualiserPas();
actualiserAffichageBoutons();
}
114,6 → 87,28
* selecteur pas)
* */
protected void gererEvenements() {
vue.getSaisiePageCourante().addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
int pageSaisie;
try {
pageSaisie = vue.getPageSaisie();
if (pageSaisie < 0) {
pageSaisie = 1;
} else if (pageSaisie > nbPage){
pageSaisie = nbPage;
}
} catch (NumberFormatException e) {
pageSaisie = pageCourante;
}
pageCourante = pageSaisie;
chargerElements(pas * (pageCourante - 1), pas * (pageCourante));
vue.setPageCourante(pageCourante);
actualiserAffichageBoutons();
}
});
vue.getSelecteurPas().addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
167,7 → 162,7
public void onChangementPage(EvenementChangementPage event) {
if (event.getGroupePagination() == groupePagination) {
pageCourante = event.getPageAAfficher();
mettreEnValeurPageCourante();
vue.setPageCourante(pageCourante);
actualiserAffichageBoutons();
}
}
181,7 → 176,6
// modifie le pas et les liens en fonction
pas = event.getPas();
actualiserPas();
actualiserLiensPagesPagination();
}
}
});
194,54 → 188,12
}
}
 
/**
* Gérer les évènements sur les boutons dynamiques (qui sont recréés à
* chaque fois)
* */
private void gererEvenementsBoutonsDynamiques() {
int nbLiens = vue.getNbWidgetsZoneLiens();
for (int i = 0; i < nbLiens; i++) {
HasClickHandlers boutonCourant = vue.getWidgetZoneLiensHasClickHandlers(i);
boutonCourant.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
HasText boutonCourant = (HasText) event.getSource();
int pageAAfficher = Integer.parseInt(boutonCourant.getText());
pageCourante = pageAAfficher;
chargerElements(pas * (pageAAfficher - 1), pas * (pageAAfficher));
BusEvenementiel.getInstance().fireEvent(new EvenementChangementPage(pageAAfficher, groupePagination));
}
});
}
}
 
public void actualiserPas() {
actualiserPasCache(pas);
vue.afficherPas(pas);
}
 
/**
* Actualiser les liens pour n'afficher 5 avant et 5 après
* */
public void actualiserLiensPagesPagination() {
 
this.nbPage = calculerNbPage();
 
vue.mettreNbTotalPages(nbPage);
HasWidgets zoneLiens = vue.getZoneLiens();
zoneLiens.clear();
 
int pageDebut = 1;
int pageFin = nbPage;
 
for (int i = pageDebut; i <= pageFin; i++) {
vue.ajouterBoutonZoneLiens(i + "");
}
gererEvenementsBoutonsDynamiques();
mettreEnValeurPageCourante();
}
 
public int getPageCourante() {
public int getPageCourante() {
return this.pageCourante;
}
 
304,10 → 256,6
return nombrePages.intValue();
}
 
public void mettreEnValeurPageCourante() {
getVue().mettreEnValeurPageActive(getPageCourante());
}
 
public void setNbPages(int nbPages) {
this.nbPage = nbPages;
}
/trunk/src/org/tela_botanica/del/client/composants/pagination/PaginationVue.java
3,6 → 3,7
import org.tela_botanica.del.client.i18n.I18n;
 
import com.google.gwt.core.client.GWT;
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;
19,7 → 20,7
public class PaginationVue extends Composite implements PaginationPresenteur.Vue {
 
@UiField
HorizontalPanel zoneLiens;
TextBox saisiePageCourante;
 
@UiField
TextBox selecteurPas;
43,24 → 44,6
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)));
}
90,8 → 73,8
}
 
@Override
public HasWidgets getZoneLiens() {
return zoneLiens;
public HasChangeHandlers getSaisiePageCourante() {
return saisiePageCourante;
}
 
@Override
115,32 → 98,6
}
 
@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());
}
159,4 → 116,14
return nbTotalPages;
}
 
@Override
public int getPageSaisie() throws NumberFormatException {
return Integer.parseInt(saisiePageCourante.getText());
}
@Override
public void setPageCourante(int pageCourante) {
saisiePageCourante.setText(String.valueOf(pageCourante));
}
 
}