Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1125 → Rev 1124

/trunk/src/org/tela_botanica/client/vues/BarrePaginationVue.java
4,8 → 4,6
import java.util.LinkedList;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.i18n.Constantes;
import org.tela_botanica.client.i18n.ErrorMessages;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.ListePaginable;
import org.tela_botanica.client.interfaces.Rafraichissable;
27,15 → 25,12
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.i18n.client.Dictionary;
import com.google.gwt.user.client.Window;
 
public class BarrePaginationVue extends ToolBar implements Rafraichissable {
 
private Mediateur mediateur = null;
private Constantes i18nC = null;
private ErrorMessages i18nM = null;
public int valeur = 0;
private ListePaginable listePaginable = null;
private ListePaginable listePaginable = null;
private Button prevPage, suivPage, premierePage, dernierePage, rafraichir;
private int pageCourante, nbElement = 0;
51,8 → 46,9
private boolean filtreActive = false;
private String termeRecherche = "";
private LinkedList<Integer> intervallePages = new LinkedList<Integer>();
private ListStore storeIntervalle = new ListStore() ;
LinkedList<Integer> intervallePages = new LinkedList<Integer>();
ListStore storeIntervalle = new ListStore() ;
private String labelElement;
private int taillePageDefaut = 50;
65,6 → 61,9
this.listePaginable = listePaginable;
}
private Mediateur mediateur;
public int valeur = 0;
/***************************************************************************
* constructeur sans argument (privé car ne doit pas être utilisé)
*/
79,13 → 78,12
* @param im
* le médiateur à associer à la barre
*/
public BarrePaginationVue(ListePaginable listePaginableCourante, Mediateur mediateurCourant) {
public BarrePaginationVue(ListePaginable listePaginable, Mediateur mediateur) {
super();
listePaginable = listePaginableCourante;
mediateur = mediateurCourant;
i18nC = Mediateur.i18nC;
i18nM = Mediateur.i18nM;
this.listePaginable = listePaginable;
this.mediateur = mediateur;
intervallePages.add(10);
intervallePages.add(20);
103,7 → 101,7
add(new SeparatorToolItem());
page = new Text(i18nC.page());
page = new Text(mediateur.i18nC.page());
page.setStyleAttribute("padding", "0 5px 0 5px");
add(page);
112,7 → 110,7
champPage.setWidth(30);
add(champPage);
surTotalPage = new Text(i18nC.sur() + " " + pageTotale);
surTotalPage = new Text(mediateur.i18nC.sur() + " " + pageTotale);
surTotalPage.setStyleAttribute("padding-left", "5px");
add(surTotalPage);
137,7 → 135,7
//Séparation
add(new SeparatorToolItem());
afficherNbElem = new Text(i18nC.afficher());
afficherNbElem = new Text(mediateur.i18nC.afficher());
afficherNbElem.setStyleAttribute("padding", "0 5px 0 5px");
add(afficherNbElem);
 
146,9 → 144,9
setIntervallesPages();
add(selecteurTaillePage);
labelElement = i18nC.elements();
labelElement = mediateur.i18nC.elements();
nbElemParPage = new Text(labelElement+" "+i18nC.parPage());
nbElemParPage = new Text(labelElement + " " + mediateur.i18nC.parPage());
nbElemParPage.setStyleAttribute("padding-left", "5px");
add(nbElemParPage);
170,23 → 168,32
add(new FillToolItem());
intervalleElements = new Text(i18nM.elementsAffiches(UtilString.ucFirst(labelElement),
pageCourante * taillePage, (pageCourante + 1) * taillePage, nbElement));
intervalleElements = new Text(mediateur.i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage,
(pageCourante + 1) * taillePage, nbElement));
add(intervalleElements);
// on ajoute les différents listeners
ajouterListeners();
ajouterListeners();
}
/**
* 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));
intervalleElements.setText(mediateur.i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage,
(pageCourante + 1) * taillePage, nbElement));
}
 
public void setTaillePageParDefaut(int taille) {
194,7 → 201,9
selecteurTaillePage.setRawValue(""+taillePageDefaut);
}
public void setIntervallesPages() {
public void setIntervallesPages()
{
if (!intervallePages.contains(taillePage)) {
intervallePages.add(taillePage);
}
231,7 → 240,9
*/
@SuppressWarnings("unchecked")
private void ajouterListeners() {
premierePage.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
pageCourante = 0;
rafraichirNumeroPage();
241,8 → 252,9
// 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
// si la page courante n'est pas la première
if (pageCourante > 0) {
// on décrémente la page courante de 1
pageCourante--;
256,7 → 268,9
});
 
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
270,6 → 284,7
});
dernierePage.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
pageCourante = pageTotale;
rafraichirNumeroPage();
278,6 → 293,7
});
rafraichir.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
listePaginable.changerNumeroPage(pageCourante);
}
284,6 → 300,7
});
annulerFiltre.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
filtre.setValue("");
termeRecherche = "";
297,6 → 314,7
filtre.addKeyListener(new KeyListener(){
public void componentKeyUp(ComponentEvent ce) {
if (ce.getKeyCode() == KeyCodes.KEY_ENTER) {
termeRecherche = filtre.getValue();
if (termeRecherche == null || termeRecherche.equals("")) {
filtreActive = false;
314,7 → 332,9
});
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 = pageCourante;
341,6 → 361,7
// notifie le médiateur
changerPageCourante(nouvellePage - 1);
listePaginable.changerNumeroPage(pageCourante);
 
} else {
// sinon on reaffiche l'ancien numero de page sans rien
// changer
348,13 → 369,22
champPage.focus();
}
}
}
}
 
/* public void onFocus(Field field) {
 
champPage.focus();
}*/
 
});
 
// pour éviter de se compliquer la vie, on filtre tous les charactères
// non numériques
champPage.addKeyListener(new KeyListener() {
public void componentKeyDown(ComponentEvent ce) {
champPage.addKeyListener(new KeyListener() {
 
public void componentKeyDown(ComponentEvent ce) {
 
// si c'est un numerique
/*
FIXME
376,19 → 406,25
ce.stopEvent();
}
}
 
});
 
// 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);
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);
changerTaillePage(nouvelleTaillePage);
rafraichirNumeroPage();
rafraichirNumeroPage();
}
 
});
}
397,9 → 433,11
* d'éléments à partir des variables de classes
*/
public void rafraichirNumeroPage() {
if (filtreActive == true) {
if (filtreActive == true) {
intervalleElements.setText("<b><i>Recherche active : </i></b>" + termeRecherche);
} else {
surTotalPage.setText(" sur " + pageTotale);
if (nbElement == 0) {
406,7 → 444,7
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));
intervalleElements.setText(mediateur.i18nM.elementsAffiches(UtilString.ucFirst(labelElement), 0,0,0));
} else {
champPage.setValue("" + (pageCourante + 1));
414,13 → 452,13
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,
intervalleElements.setText(mediateur.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,
intervalleElements.setText(mediateur.i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage,
nbElement, nbElement));
}
}
470,6 → 508,7
* la nouvelle taille de page
*/
public void selectionnerTaillePage(int nouvelleTaillePage) {
 
selecteurTaillePage.setRawValue("" + nouvelleTaillePage);
}
 
477,6 → 516,7
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];
505,4 → 545,5
layout();
}
}
 
}