28,7 → 28,7 |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; |
import com.extjs.gxt.ui.client.widget.form.SimpleComboBox; |
import com.extjs.gxt.ui.client.widget.form.SimpleComboValue; |
import com.extjs.gxt.ui.client.widget.form.TextField; |
import com.extjs.gxt.ui.client.widget.form.NumberField; |
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem; |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem; |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; |
51,7 → 51,7 |
private int pageTotale = 1; |
private Text page, surTotalPage, afficherNbElem, nbElemParPage, intervalleElements; |
|
private TextField<String> champPage = new TextField<String>(); |
private NumberField champPage = new NumberField(); |
private SimpleComboBox<Integer> selecteurTaillePage = new SimpleComboBox<Integer>(); |
|
private LinkedList<Integer> intervallePages = new LinkedList<Integer>(); |
110,7 → 110,9 |
page.setStyleAttribute("padding", "0 5px 0 5px"); |
add(page); |
|
champPage.setValue(String.valueOf(pageCourante+1)); |
champPage.setValue(pageCourante+1); |
champPage.setAllowDecimals(false); |
champPage.setAllowNegative(false); |
champPage.setStyleAttribute("text-align","right"); |
champPage.setWidth(30); |
add(champPage); |
275,23 → 277,12 |
}); |
|
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; |
// on teste avec parseInt si la valeur entrée est un entier |
try { |
nouvellePage = Integer.parseInt(champPage.getRawValue()); |
} catch (NumberFormatException nfe) { |
// si ce n'est pas le cas alors on remet le numéro de page correct |
rafraichirNumeroPage(); |
champPage.focus(); |
return; |
} |
int nouvellePage = champPage.getValue().intValue(); |
|
// si la conversion reussit on verifie s'il est nécessaire |
// de changer de page |
// 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 |
307,22 → 298,6 |
} |
} |
} |
|
public void componentKeyDown(ComponentEvent ce) { |
|
int caractereSaisi = ce.getKeyCode(); |
boolean isInteger = (caractereSaisi >= 96 && caractereSaisi <= 105); |
|
// si le caractère n'est ni un chiffre ni 'entrée' ni 'backspace' |
if (!( isInteger |
|| ce.getKeyCode() == KeyCodes.KEY_ENTER |
|| ce.getKeyCode() == KeyCodes.KEY_BACKSPACE |
)) { |
// on remet le numero de page correct et on annule l'évenement |
rafraichirNumeroPage(); |
ce.stopEvent(); |
} |
} |
}); |
|
// listener pour la selection dans la combobox |
344,12 → 319,12 |
public void rafraichirNumeroPage() { |
surTotalPage.setText(" sur " + pageTotale); |
if (nbElement == 0) { |
champPage.setValue("" + (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)); |
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 |