Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1686 → Rev 1687

/trunk/src/org/tela_botanica/client/vues/collection/CollectionListeVue.java
137,7 → 137,7
CollectionListe collectionListe = new CollectionListe();
champFiltreRecherche = new ChampFiltreRecherche(mediateur, toolBar, collectionListe);
// Définition de la barre de pagination
pagination = new BarrePaginationVue(collectionListe, mediateur);
pagination = new BarrePaginationVue(collectionListe, mediateur, champFiltreRecherche);
setBottomComponent(pagination);
}
 
/trunk/src/org/tela_botanica/client/vues/structure/StructureListeVue.java
139,7 → 139,7
StructureListe structureListe = new StructureListe();
champFiltreRecherche = new ChampFiltreRecherche(mediateurCourant, toolBar, structureListe);
// Définition de la barre de pagination
pagination = new BarrePaginationVue(structureListe, mediateur);
pagination = new BarrePaginationVue(structureListe, mediateur, champFiltreRecherche);
setBottomComponent(pagination);
}
 
/trunk/src/org/tela_botanica/client/vues/projet/ProjetListeVue.java
160,7 → 160,7
ProjetListe projetListe = new ProjetListe();
champFiltreRecherche = new ChampFiltreRecherche(mediateurCourant, toolBar, projetListe);
// Définition de la barre de pagination
pagination = new BarrePaginationVue(projetListe, mediateur);
pagination = new BarrePaginationVue(projetListe, mediateur, champFiltreRecherche);
setBottomComponent(pagination);
}
276,4 → 276,4
mediateur.mettreFiltreAJour(grille.getStore().getModels());
layout(true);
}
}
}
/trunk/src/org/tela_botanica/client/vues/commentaire/CommentaireListeVue.java
182,7 → 182,7
CommentaireListe commentaireListe = new CommentaireListe();
champFiltreRecherche = new ChampFiltreRecherche(mediateur, toolBar, commentaireListe);
// Définition de la barre de pagination
pagination = new BarrePaginationVue(commentaireListe, mediateur);
pagination = new BarrePaginationVue(commentaireListe, mediateur, champFiltreRecherche);
setBottomComponent(pagination);
}
346,4 → 346,4
*/
mediateur.clicMenu(MenuApplicationId.COMMENTAIRE);
}
}
}
/trunk/src/org/tela_botanica/client/vues/BarrePaginationVue.java
13,6 → 13,7
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.util.Debug;
import org.tela_botanica.client.util.UtilString;
import org.tela_botanica.client.composants.ChampFiltreRecherche;
 
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.ComponentEvent;
38,373 → 39,392
 
public class BarrePaginationVue extends ToolBar implements Rafraichissable {
 
private Mediateur mediateur = null;
private Constantes i18nC = null;
private ErrorMessages i18nM = null;
public int valeur = 0;
private Mediateur mediateur = null;
private Constantes i18nC = null;
private ErrorMessages i18nM = null;
public int valeur = 0;
private ListePaginable listePaginable = null;
private Button prevPage, suivPage, premierePage, dernierePage, rafraichir;
private ListePaginable listePaginable = null;
private Button prevPage, suivPage, premierePage, dernierePage, rafraichir;
private int pageCourante, nbElement = 0;
private int taillePage = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage"));
private int pageTotale = 1;
private Text page, surTotalPage, afficherNbElem, nbElemParPage, intervalleElements;
private int pageCourante, nbElement = 0;
private int taillePage = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage"));
private int pageTotale = 1;
private Text page, surTotalPage, afficherNbElem, nbElemParPage, intervalleElements;
private NumberField champPage = new NumberField();
private SimpleComboBox<Integer> selecteurTaillePage = new SimpleComboBox<Integer>();
private NumberField champPage = new NumberField();
private SimpleComboBox<Integer> selecteurTaillePage = new SimpleComboBox<Integer>();
private LinkedList<Integer> intervallePages = new LinkedList<Integer>();
private ListStore storeIntervalle = new ListStore() ;
private LinkedList<Integer> intervallePages = new LinkedList<Integer>();
private ListStore storeIntervalle = new ListStore() ;
private String labelElement;
private int taillePageDefaut = 50;
private String labelElement;
private int taillePageDefaut = 50;
 
private ChampFiltreRecherche champFiltreRecherche = null;
 
public ListePaginable getlistePaginable() {
return listePaginable;
}
public ListePaginable getlistePaginable() {
return listePaginable;
}
public void setlistePaginable(ListePaginable listePaginable) {
this.listePaginable = listePaginable;
}
public void setlistePaginable(ListePaginable listePaginable) {
this.listePaginable = listePaginable;
}
/***************************************************************************
* constructeur sans argument (privé car ne doit pas être utilisé)
*/
@SuppressWarnings("unused")
private BarrePaginationVue() {
super();
}
/***************************************************************************
* constructeur sans argument (privé car ne doit pas être utilisé)
*/
@SuppressWarnings("unused")
private BarrePaginationVue() {
super();
}
 
/**
* constructeur avec paramètres
*
* @param im
* le médiateur à associer à la barre
*/
public BarrePaginationVue(ListePaginable listePaginableCourante, Mediateur mediateurCourant) {
super();
/**
* constructeur avec paramètres
*
* @param im
* le médiateur à associer à la barre
*/
public BarrePaginationVue(ListePaginable listePaginableCourante, Mediateur mediateurCourant) {
super();
listePaginable = listePaginableCourante;
mediateur = mediateurCourant;
i18nC = Mediateur.i18nC;
i18nM = Mediateur.i18nM;
listePaginable = listePaginableCourante;
mediateur = mediateurCourant;
i18nC = Mediateur.i18nC;
i18nM = Mediateur.i18nM;
intervallePages.add(10);
intervallePages.add(20);
intervallePages.add(50);
intervallePages.add(100);
intervallePages.add(200);
intervallePages.add(10);
intervallePages.add(20);
intervallePages.add(50);
intervallePages.add(100);
intervallePages.add(200);
premierePage = new Button();
premierePage.setIcon(Images.ICONES.resultsetFirst());
add(premierePage);
premierePage = new Button();
premierePage.setIcon(Images.ICONES.resultsetFirst());
add(premierePage);
prevPage = new Button();
prevPage.setIcon(Images.ICONES.resultsetPrevious());
add(prevPage);
prevPage = new Button();
prevPage.setIcon(Images.ICONES.resultsetPrevious());
add(prevPage);
add(new SeparatorToolItem());
add(new SeparatorToolItem());
page = new Text(i18nC.page());
page.setStyleAttribute("padding", "0 5px 0 5px");
add(page);
page = new Text(i18nC.page());
page.setStyleAttribute("padding", "0 5px 0 5px");
add(page);
champPage.setValue(pageCourante+1);
champPage.setAllowDecimals(false);
champPage.setAllowNegative(false);
champPage.setStyleAttribute("text-align","right");
champPage.setWidth(30);
add(champPage);
champPage.setValue(pageCourante+1);
champPage.setAllowDecimals(false);
champPage.setAllowNegative(false);
champPage.setStyleAttribute("text-align","right");
champPage.setWidth(30);
add(champPage);
surTotalPage = new Text(i18nC.sur() + " " + pageTotale);
surTotalPage.setStyleAttribute("padding-left", "5px");
add(surTotalPage);
surTotalPage = new Text(i18nC.sur() + " " + pageTotale);
surTotalPage.setStyleAttribute("padding-left", "5px");
add(surTotalPage);
//Séparation
add(new SeparatorToolItem());
//Séparation
add(new SeparatorToolItem());
suivPage = new Button();
suivPage.setIcon(Images.ICONES.resultsetNext());
add(suivPage);
suivPage = new Button();
suivPage.setIcon(Images.ICONES.resultsetNext());
add(suivPage);
dernierePage = new Button();
dernierePage.setIcon(Images.ICONES.resultsetLast());
add(dernierePage);
dernierePage = new Button();
dernierePage.setIcon(Images.ICONES.resultsetLast());
add(dernierePage);
 
//Séparation
add(new SeparatorToolItem());
//Séparation
add(new SeparatorToolItem());
rafraichir = new Button();
rafraichir.setIcon(Images.ICONES.rafraichir());
add(rafraichir);
rafraichir = new Button();
rafraichir.setIcon(Images.ICONES.rafraichir());
add(rafraichir);
//Séparation
add(new SeparatorToolItem());
//Séparation
add(new SeparatorToolItem());
afficherNbElem = new Text(i18nC.afficher());
afficherNbElem.setStyleAttribute("padding", "0 5px 0 5px");
add(afficherNbElem);
afficherNbElem = new Text(i18nC.afficher());
afficherNbElem.setStyleAttribute("padding", "0 5px 0 5px");
add(afficherNbElem);
 
// Attention l'appel à setTriggerAction avec ALL est indispensable
// pour éviter un bug lors de la selection de la taille de page par défaut
selecteurTaillePage.setTriggerAction(TriggerAction.ALL);
selecteurTaillePage.setLazyRender(false);
selecteurTaillePage.setWidth("40px");
setIntervallesPages();
add(selecteurTaillePage);
// Attention l'appel à setTriggerAction avec ALL est indispensable
// pour éviter un bug lors de la selection de la taille de page par défaut
selecteurTaillePage.setTriggerAction(TriggerAction.ALL);
selecteurTaillePage.setLazyRender(false);
selecteurTaillePage.setWidth("40px");
setIntervallesPages();
add(selecteurTaillePage);
labelElement = i18nC.elements();
labelElement = i18nC.elements();
nbElemParPage = new Text(labelElement+" "+i18nC.parPage());
nbElemParPage.setStyleAttribute("padding-left", "5px");
add(nbElemParPage);
nbElemParPage = new Text(labelElement+" "+i18nC.parPage());
nbElemParPage.setStyleAttribute("padding-left", "5px");
add(nbElemParPage);
//Séparation
add(new SeparatorToolItem());
//Séparation
add(new SeparatorToolItem());
intervalleElements = new Text(i18nM.elementsAffiches(UtilString.ucFirst(labelElement),
pageCourante * taillePage, (pageCourante + 1) * taillePage, nbElement));
add(intervalleElements);
intervalleElements = new Text(i18nM.elementsAffiches(UtilString.ucFirst(labelElement),
pageCourante * taillePage, (pageCourante + 1) * taillePage, nbElement));
add(intervalleElements);
// on ajoute les différents listeners
ajouterListeners();
}
// on ajoute les différents listeners
ajouterListeners();
}
 
public BarrePaginationVue(ListePaginable listePaginableCourante, Mediateur mediateurCourant, ChampFiltreRecherche champFiltreRechercheCourant) {
this(listePaginableCourante, mediateurCourant);
champFiltreRecherche = champFiltreRechercheCourant;
}
/**
* Texte nommant les elements pagines (Images, Observation, truc, machin etc...).
* @param label
*/
public void setLabelElement(String label) {
this.labelElement = label;
nbElemParPage.setText(labelElement + " par page ");
intervalleElements.setText(i18nM.elementsAffiches(UtilString.ucFirst(labelElement),
pageCourante * taillePage, (pageCourante + 1) * taillePage, nbElement));
}
/**
* Texte nommant les elements pagines (Images, Observation, truc, machin etc...).
* @param label
*/
public void setLabelElement(String label) {
this.labelElement = label;
nbElemParPage.setText(labelElement + " par page ");
intervalleElements.setText(i18nM.elementsAffiches(UtilString.ucFirst(labelElement),
pageCourante * taillePage, (pageCourante + 1) * taillePage, nbElement));
}
 
public void setTaillePageParDefaut(int taille) {
this.taillePageDefaut = taille;
selecteurTaillePage.setRawValue(""+taillePageDefaut);
public void setTaillePageParDefaut(int taille) {
this.taillePageDefaut = taille;
selecteurTaillePage.setRawValue(""+taillePageDefaut);
}
public void setIntervallesPages() {
if (!intervallePages.contains(taillePage)) {
intervallePages.add(taillePage);
}
public void setIntervallesPages() {
if (!intervallePages.contains(taillePage)) {
intervallePages.add(taillePage);
}
Iterator<Integer> itIntervallePages = intervallePages.iterator();
while (itIntervallePages.hasNext()) {
Integer intervalle = itIntervallePages.next();
selecteurTaillePage.add(intervalle);
}
Iterator<Integer> itIntervallePages = intervallePages.iterator();
while (itIntervallePages.hasNext()) {
Integer intervalle = itIntervallePages.next();
selecteurTaillePage.add(intervalle);
}
 
selecteurTaillePage.setSimpleValue(taillePage);
}
selecteurTaillePage.setSimpleValue(taillePage);
}
/**
* Change l'état de la barre de pagination a actif ou inactif
* @param etat actif ou inactif
*/
private void changerEtatBarre(boolean etat) {
premierePage.setEnabled(etat);
prevPage.setEnabled(etat);
suivPage.setEnabled(etat);
dernierePage.setEnabled(etat);
champPage.setEnabled(etat);
selecteurTaillePage.setEnabled(etat);
page.setEnabled(etat);
surTotalPage.setEnabled(etat);
afficherNbElem.setEnabled(etat);
nbElemParPage.setEnabled(etat);
}
/**
* Change l'état de la barre de pagination a actif ou inactif
* @param etat actif ou inactif
*/
private void changerEtatBarre(boolean etat) {
premierePage.setEnabled(etat);
prevPage.setEnabled(etat);
suivPage.setEnabled(etat);
dernierePage.setEnabled(etat);
champPage.setEnabled(etat);
selecteurTaillePage.setEnabled(etat);
page.setEnabled(etat);
surTotalPage.setEnabled(etat);
afficherNbElem.setEnabled(etat);
nbElemParPage.setEnabled(etat);
}
/**
* ajoute les différents listeners nécessaires au bon fonctionnement des
* éléments de la barre de pagination
*/
@SuppressWarnings("unchecked")
private void ajouterListeners() {
premierePage.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
pageCourante = 0;
rafraichirNumeroPage();
listePaginable.changerNumeroPage(pageCourante);
}
});
/**
* ajoute les différents listeners nécessaires au bon fonctionnement des
* éléments de la barre de pagination
*/
@SuppressWarnings("unchecked")
private void ajouterListeners() {
premierePage.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
pageCourante = 0;
rafraichirNumeroPage();
changePage();
}
});
// boutons suivants et précédents
prevPage.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
// si la page courante n'est pas la première
if (pageCourante > 0) {
// on décrémente la page courante de 1
pageCourante--;
// on rafraichit l'affichage
rafraichirNumeroPage();
// et on notifie le médiateur de l'évenement
listePaginable.changerNumeroPage(pageCourante);
// boutons suivants et précédents
prevPage.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
// si la page courante n'est pas la première
if (pageCourante > 0) {
// on décrémente la page courante de 1
pageCourante--;
// on rafraichit l'affichage
rafraichirNumeroPage();
changePage();
}
}
});
 
}
}
});
 
suivPage.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
// si la page courante n'est pas la dernière
if (pageCourante < pageTotale - 1) {
// on incrémente la page courante de 1
pageCourante++;
// on rafraichit l'affichage
rafraichirNumeroPage();
// et on notifie le médiateur de l'évenement
listePaginable.changerNumeroPage(pageCourante);
}
}
});
suivPage.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
// si la page courante n'est pas la dernière
if (pageCourante < pageTotale - 1) {
// on incrémente la page courante de 1
pageCourante++;
// on rafraichit l'affichage
rafraichirNumeroPage();
changePage();
}
}
});
dernierePage.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
pageCourante = pageTotale;
rafraichirNumeroPage();
listePaginable.changerNumeroPage(pageCourante);
}
});
dernierePage.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
pageCourante = pageTotale;
rafraichirNumeroPage();
changePage();
}
});
rafraichir.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
listePaginable.changerNumeroPage(pageCourante);
}
});
rafraichir.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
changePage();
}
});
 
champPage.addKeyListener(new KeyListener() {
public void componentKeyUp(ComponentEvent ce) {
// on teste si la touche entrée a été pressée
if (ce.getKeyCode() == KeyCodes.KEY_ENTER) {
int nouvellePage = champPage.getValue().intValue();
champPage.addKeyListener(new KeyListener() {
public void componentKeyUp(ComponentEvent ce) {
// on teste si la touche entrée a été pressée
if (ce.getKeyCode() == KeyCodes.KEY_ENTER) {
int nouvellePage = champPage.getValue().intValue();
 
// on verifie s'il est nécessaire de changer de page
// et si la nouvelle est comprise dans l'intervalle des
// pages existantes (0..pageTotale)
if (nouvellePage != pageCourante + 1 && nouvellePage > 0
&& nouvellePage <= pageTotale) {
// le cas échéant, on charge la nouvelle page et on
// notifie le médiateur
changerPageCourante(nouvellePage - 1);
listePaginable.changerNumeroPage(pageCourante);
} else {
// sinon on reaffiche l'ancien numero de page sans rien changer
rafraichirNumeroPage();
champPage.focus();
}
}
}
});
 
// listener pour la selection dans la combobox
selecteurTaillePage.addSelectionChangedListener(new SelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent e) {
SimpleComboBox comboBox = (SimpleComboBox) e.getSource();
String nouvelleTaillePageString = comboBox.getRawValue();
int nouvelleTaillePage = Integer.parseInt(nouvelleTaillePageString);
changerTaillePage(nouvelleTaillePage);
rafraichirNumeroPage();
}
});
}
/**
* Met à jour les affichage sur les numéros de pages et d'intervalle
* d'éléments à partir des variables de classes
*/
public void rafraichirNumeroPage() {
surTotalPage.setText(" sur " + pageTotale);
if (nbElement == 0) {
champPage.setValue(0);
// on met simplement à jour l'intervalle qui contient toujours le
// même nombre d'éléments
intervalleElements.setText(i18nM.elementsAffiches(UtilString.ucFirst(labelElement), 0,0,0));
} else {
champPage.setValue(pageCourante + 1);
// si la page n'est pas la dernière
if (pageCourante + 1 != pageTotale) {
// sauf pour la dernière page qui contient souvent moins
// d'élements que le nombre d'élements par page
intervalleElements.setText(i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage,
(pageCourante + 1) * taillePage, nbElement));
// on verifie s'il est nécessaire de changer de page
// et si la nouvelle est comprise dans l'intervalle des
// pages existantes (0..pageTotale)
if (nouvellePage != pageCourante + 1 && nouvellePage > 0
&& nouvellePage <= pageTotale) {
// le cas échéant, on charge la nouvelle page et on
// notifie le médiateur
changerPageCourante(nouvellePage - 1);
changePage();
} else {
// on met simplement à jour l'intervalle qui contient toujours
// le même nombre d'éléments
intervalleElements.setText(i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage,
nbElement, nbElement));
// sinon on reaffiche l'ancien numero de page sans rien changer
rafraichirNumeroPage();
champPage.focus();
}
}
}
}
});
 
/**
* Met à jour la page en cours
*
* @param nouvellePageCourante
* la nouvelle page en cours
*/
public void changerPageCourante(int nouvellePageCourante) {
pageCourante = nouvellePageCourante;
// listener pour la selection dans la combobox
selecteurTaillePage.addSelectionChangedListener(new SelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent e) {
SimpleComboBox comboBox = (SimpleComboBox) e.getSource();
String nouvelleTaillePageString = comboBox.getRawValue();
int nouvelleTaillePage = Integer.parseInt(nouvelleTaillePageString);
changerTaillePage(nouvelleTaillePage);
rafraichirNumeroPage();
}
});
}
 
public void changePage() {
// si notre barre de pagination n'a pas été initialisée
// avec un filtre de recherche, contentons-nous de changer de page
// Attention, car tous les webservice ne supporte pas un segment d'URI "null" (500)
if(champFiltreRecherche == null || champFiltreRecherche.getFiltreValue() == null) {
// et on notifie le médiateur de l'évenement
listePaginable.changerNumeroPage(pageCourante);
} else {
// autrement nous pouvons changer de page *tout en conservant* le filtre de recherche,
// charge au modèle de cette liste d'avoir implémenté correctement filtrerParNomEtPage()
listePaginable.filtrerParNomEtPage(champFiltreRecherche.getFiltreValue(), pageCourante);
}
}
 
/**
* Envoie au médiateur une demande pour modifier la taille de la page (qui
* va à son tour faire les modifications nécessaires)
*
* @param nouvelleTaillePage
* la nouvelle taille de page (élement appartenant au tableau
* renvoyé par getNbPages())
*/
public void changerTaillePage(int nouvelleTaillePage) {
if (nouvelleTaillePage != taillePage) {
listePaginable.changerTaillePage(nouvelleTaillePage);
}
/**
* Met à jour les affichage sur les numéros de pages et d'intervalle
* d'éléments à partir des variables de classes
*/
public void rafraichirNumeroPage() {
surTotalPage.setText(" sur " + pageTotale);
if (nbElement == 0) {
champPage.setValue(0);
// on met simplement à jour l'intervalle qui contient toujours le
// même nombre d'éléments
intervalleElements.setText(i18nM.elementsAffiches(UtilString.ucFirst(labelElement), 0,0,0));
} else {
champPage.setValue(pageCourante + 1);
// si la page n'est pas la dernière
if (pageCourante + 1 != pageTotale) {
// sauf pour la dernière page qui contient souvent moins
// d'élements que le nombre d'élements par page
intervalleElements.setText(i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage,
(pageCourante + 1) * taillePage, nbElement));
} else {
// on met simplement à jour l'intervalle qui contient toujours
// le même nombre d'éléments
intervalleElements.setText(i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage,
nbElement, nbElement));
}
}
}
 
/**
* Selectionne la valeur correspond à celle passée en paramètre dans la
* combobox (si elle existe)
*
* @param nouvelleTaillePage
* la nouvelle taille de page
*/
public void selectionnerTaillePage(int nouvelleTaillePage) {
selecteurTaillePage.setRawValue("" + nouvelleTaillePage);
/**
* Met à jour la page en cours
*
* @param nouvellePageCourante
* la nouvelle page en cours
*/
public void changerPageCourante(int nouvellePageCourante) {
pageCourante = nouvellePageCourante;
}
 
/**
* Envoie au médiateur une demande pour modifier la taille de la page (qui
* va à son tour faire les modifications nécessaires)
*
* @param nouvelleTaillePage
* la nouvelle taille de page (élement appartenant au tableau
* renvoyé par getNbPages())
*/
public void changerTaillePage(int nouvelleTaillePage) {
if (nouvelleTaillePage != taillePage) {
listePaginable.changerTaillePage(nouvelleTaillePage);
}
}
 
public void rafraichir(Object nouvelleDonnees) {
// si on reçoit un tableau de int
if (nouvelleDonnees instanceof int[]) {
int[] page = (int[]) nouvelleDonnees;
// le premier élement est le nombre de pages totales
pageTotale = page[0];
// le second la page en cours
pageCourante = page[1];
// le troisième la taille de la page
taillePage = page[2];
// et le dernier le nombre total d'éléments
nbElement = page[3];
/**
* Selectionne la valeur correspond à celle passée en paramètre dans la
* combobox (si elle existe)
*
* @param nouvelleTaillePage
* la nouvelle taille de page
*/
public void selectionnerTaillePage(int nouvelleTaillePage) {
selecteurTaillePage.setRawValue("" + nouvelleTaillePage);
}
 
public void rafraichir(Object nouvelleDonnees) {
// si on reçoit un tableau de int
if (nouvelleDonnees instanceof int[]) {
int[] page = (int[]) nouvelleDonnees;
// le premier élement est le nombre de pages totales
pageTotale = page[0];
// le second la page en cours
pageCourante = page[1];
// le troisième la taille de la page
taillePage = page[2];
// et le dernier le nombre total d'éléments
nbElement = page[3];
// si la page courante dépasse la page totale (cas normalement
// improbable car géré en amont)
// on met le numéro de page à la page courante -1 (car la page
// courante est comptée à partir
// de zéro)
if (pageCourante >= pageTotale && pageCourante != 0) {
pageCourante = pageTotale - 1;
// le cas échéant on en notifie le médiateur
listePaginable.changerNumeroPage(pageCourante);
}
}
// si la page courante dépasse la page totale (cas normalement
// improbable car géré en amont)
// on met le numéro de page à la page courante -1 (car la page
// courante est comptée à partir
// de zéro)
if (pageCourante >= pageTotale && pageCourante != 0) {
pageCourante = pageTotale - 1;
// le cas échéant on en notifie le médiateur
changePage();
}
}
 
// enfin on rafraichit les informations affichées à partir des nouvelles
// variables de classes mises à jour
rafraichirNumeroPage();
// enfin on rafraichit les informations affichées à partir des nouvelles
// variables de classes mises à jour
rafraichirNumeroPage();
layout();
}
layout();
}
}
/trunk/src/org/tela_botanica/client/vues/publication/PublicationListeVue.java
147,7 → 147,7
PublicationListe publicationListe = new PublicationListe();
champFiltreRecherche = new ChampFiltreRecherche(mediateurCourant, toolBar, publicationListe);
// Définition de la barre de pagination
pagination = new BarrePaginationVue(publicationListe, mediateur);
pagination = new BarrePaginationVue(publicationListe, mediateur, champFiltreRecherche);
setBottomComponent(pagination);
}
/trunk/src/org/tela_botanica/client/vues/personne/PersonneListeVue.java
152,7 → 152,7
PersonneListe personneListe = new PersonneListe();
champFiltreRecherche = new ChampFiltreRecherche(mediateur, toolBar, personneListe);
// Définition de la barre de pagination
pagination = new BarrePaginationVue(personneListe, mediateur);
pagination = new BarrePaginationVue(personneListe, mediateur, champFiltreRecherche);
setBottomComponent(pagination);
}
 
/trunk/src/org/tela_botanica/client/interfaces/ListePaginable.java
12,5 → 12,5
public void changerNumeroPage(int pageCourante);
public void recharger();
public void filtrerParNom(String nom);
public void filtrerParNomEtPage(String nom, int pageCourante);
}
/trunk/src/org/tela_botanica/client/composants/ChampFiltreRecherche.java
95,4 → 95,8
public void setListePaginable(ListePaginable listePaginable) {
this.listePaginable = listePaginable;
}
 
public String getFiltreValue() {
return filtre.getValue();
}
}
/trunk/src/org/tela_botanica/client/modeles/structure/StructureListe.java
124,5 → 124,10
mediateur.selectionnerStructure(vueARafraichir, mediateur.getProjetId(), null, "%" + nom + "%", 0, nbElementsPage, null);
}
}
 
public void filtrerParNomEtPage(String nom, int pageCourante) {
currentPage = pageCourante;
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
mediateur.selectionnerStructure(vueARafraichir, mediateur.getProjetId(), null, "%" + nom + "%", currentPage, nbElementsPage, null);
}
}
/trunk/src/org/tela_botanica/client/modeles/commentaire/CommentaireListe.java
132,4 → 132,10
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
mediateur.selectionnerCommentaireParTitre(vueARafraichir, "%" + nom + "%", null);
}
}
 
public void filtrerParNomEtPage(String nom, int pageCourante) {
currentPage = pageCourante;
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
mediateur.selectionnerCommentaire(vueARafraichir, null, "%" + nom + "%", currentPage, nbElementsPage, null);
}
}
/trunk/src/org/tela_botanica/client/modeles/projet/ProjetListe.java
127,4 → 127,10
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
mediateur.selectionnerProjet(vueARafraichir, mediateur.getProjetId(), "%" + nom + "%", 0, nbElementsPage, null, false, null);
}
}
 
public void filtrerParNomEtPage(String nom, int pageCourante) {
currentPage = pageCourante;
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
mediateur.selectionnerProjet(vueARafraichir, mediateur.getProjetId(), "%" + nom + "%", currentPage, nbElementsPage, null, false, null);
}
}
/trunk/src/org/tela_botanica/client/modeles/publication/PublicationListe.java
120,4 → 120,10
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
mediateur.selectionnerPublicationParNomComplet(vueARafraichir, mediateur.getProjetId(), "%" + nom + "%");
}
}
 
public void filtrerParNomEtPage(String nom, int pageCourante) {
currentPage = pageCourante;
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
mediateur.selectionnerPublication(vueARafraichir, mediateur.getProjetId(), null, "%" + nom + "%", currentPage, nbElementsPage, null);
}
}
/trunk/src/org/tela_botanica/client/modeles/personne/PersonneListe.java
134,4 → 134,9
personne.setNom("%" + nom + "%");
mediateur.selectionnerPersonne(vueARafraichir, personne, mediateur.getProjetId(), currentPage, nbElementsPage, null);
}
}
 
public void filtrerParNomEtPage(String nom, int pageCourante) {
currentPage = pageCourante;
filtrerParNom(nom);
}
}
/trunk/src/org/tela_botanica/client/modeles/collection/CollectionListe.java
121,4 → 121,10
Mediateur mediateur =(Mediateur) Registry.get(RegistreId.MEDIATEUR);
mediateur.selectionnerCollection(vueARafraichir, null, "%" + nom + "%", 0, nbElementsPage, null);
}
}
 
public void filtrerParNomEtPage(String nom, int pageCourante) {
currentPage = pageCourante;
Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
mediateur.selectionnerCollection(vueARafraichir, mediateur.getProjetId(), "%" + nom + "%", currentPage, nbElementsPage, null);
}
}