25,6 → 25,7 |
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 { |
|
39,7 → 40,12 |
|
private TextField<String> champPage = new TextField<String>(); |
private SimpleComboBox selecteurTaillePage = new SimpleComboBox(); |
|
private Text labelFiltre; |
private TextField<String> filtre; |
private Button annulerFiltre; |
private boolean filtreActive = false; |
private String termeRecherche = ""; |
|
LinkedList<Integer> intervallePages = new LinkedList<Integer>(); |
|
ListStore storeIntervalle = new ListStore() ; |
145,6 → 151,19 |
add(nbElemParPage); |
|
// Ajout d'un espace pour mettre le nombre d'éléments à droite |
labelFiltre = new Text("Recherche rapide : "); |
labelFiltre.setStyleAttribute("padding-left", "15px"); |
labelFiltre.setStyleAttribute("padding-right", "5px"); |
add(labelFiltre); |
|
filtre = new TextField<String>(); |
filtre.setWidth(150); |
this.add(filtre); |
|
annulerFiltre = new Button(); |
annulerFiltre.setIcon(Images.ICONES.annuler()); |
add(annulerFiltre); |
|
add(new FillToolItem()); |
|
intervalleElements = new Text(mediateur.i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage, |
153,11 → 172,15 |
|
// on ajoute les différents listeners |
ajouterListeners(); |
|
|
} |
|
|
|
|
|
|
/** |
* Texte nommant les elements pagines (Images, Observation, truc, machin etc...). |
* @param label |
256,8 → 279,34 |
listePaginable.changerNumeroPage(pageCourante); |
} |
}); |
|
|
|
annulerFiltre.addSelectionListener(new SelectionListener<ButtonEvent>() { |
|
public void componentSelected(ButtonEvent ce) { |
filtre.setValue(""); |
termeRecherche = ""; |
filtreActive = false; |
listePaginable.changerNumeroPage(pageCourante); |
} |
}); |
|
filtre.addKeyListener(new KeyListener(){ |
public void componentKeyUp(ComponentEvent ce) { |
if (ce.getKeyCode() == KeyCodes.KEY_ENTER) { |
|
System.out.println(pageCourante +" ---- " + nbElement); |
termeRecherche = filtre.getValue(); |
if (termeRecherche == null || termeRecherche.equals("")) { |
filtreActive = false; |
listePaginable.changerNumeroPage(pageCourante); |
} else { |
listePaginable.filtrerParNom(termeRecherche); |
filtreActive = true; |
} |
} |
} |
}); |
|
champPage.addKeyListener(new KeyListener() { |
|
public void componentKeyUp(ComponentEvent ce) { |
296,8 → 345,9 |
champPage.focus(); |
} |
} |
} |
} |
|
|
/* public void onFocus(Field field) { |
|
champPage.focus(); |
360,28 → 410,33 |
*/ |
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(mediateur.i18nM.elementsAffiches(UtilString.ucFirst(labelElement), 0,0,0)); |
if (filtreActive == true) { |
intervalleElements.setText("<i>Recherche rapide : </i>" + termeRecherche); |
} 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(mediateur.i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage, |
(pageCourante + 1) * taillePage, nbElement)); |
|
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(mediateur.i18nM.elementsAffiches(UtilString.ucFirst(labelElement), 0,0,0)); |
} else { |
|
// on met simplement à jour l'intervalle qui contient toujours |
// le même nombre d'éléments |
intervalleElements.setText(mediateur.i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage, |
nbElement, nbElement)); |
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(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(mediateur.i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage, |
nbElement, nbElement)); |
} |
} |
} |
} |