Line 26... |
Line 26... |
26 |
import com.extjs.gxt.ui.client.widget.Text;
|
26 |
import com.extjs.gxt.ui.client.widget.Text;
|
27 |
import com.extjs.gxt.ui.client.widget.button.Button;
|
27 |
import com.extjs.gxt.ui.client.widget.button.Button;
|
28 |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
|
28 |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
|
29 |
import com.extjs.gxt.ui.client.widget.form.SimpleComboBox;
|
29 |
import com.extjs.gxt.ui.client.widget.form.SimpleComboBox;
|
30 |
import com.extjs.gxt.ui.client.widget.form.SimpleComboValue;
|
30 |
import com.extjs.gxt.ui.client.widget.form.SimpleComboValue;
|
31 |
import com.extjs.gxt.ui.client.widget.form.TextField;
|
31 |
import com.extjs.gxt.ui.client.widget.form.NumberField;
|
32 |
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
|
32 |
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
|
33 |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
|
33 |
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
|
34 |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
|
34 |
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
|
35 |
import com.google.gwt.event.dom.client.KeyCodes;
|
35 |
import com.google.gwt.event.dom.client.KeyCodes;
|
36 |
import com.google.gwt.i18n.client.Dictionary;
|
36 |
import com.google.gwt.i18n.client.Dictionary;
|
Line 49... |
Line 49... |
49 |
private int pageCourante, nbElement = 0;
|
49 |
private int pageCourante, nbElement = 0;
|
50 |
private int taillePage = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage"));
|
50 |
private int taillePage = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage"));
|
51 |
private int pageTotale = 1;
|
51 |
private int pageTotale = 1;
|
52 |
private Text page, surTotalPage, afficherNbElem, nbElemParPage, intervalleElements;
|
52 |
private Text page, surTotalPage, afficherNbElem, nbElemParPage, intervalleElements;
|
Line 53... |
Line 53... |
53 |
|
53 |
|
54 |
private TextField<String> champPage = new TextField<String>();
|
54 |
private NumberField champPage = new NumberField();
|
Line 55... |
Line 55... |
55 |
private SimpleComboBox<Integer> selecteurTaillePage = new SimpleComboBox<Integer>();
|
55 |
private SimpleComboBox<Integer> selecteurTaillePage = new SimpleComboBox<Integer>();
|
56 |
|
56 |
|
Line 108... |
Line 108... |
108 |
|
108 |
|
109 |
page = new Text(i18nC.page());
|
109 |
page = new Text(i18nC.page());
|
110 |
page.setStyleAttribute("padding", "0 5px 0 5px");
|
110 |
page.setStyleAttribute("padding", "0 5px 0 5px");
|
Line 111... |
Line 111... |
111 |
add(page);
|
111 |
add(page);
|
- |
|
112 |
|
- |
|
113 |
champPage.setValue(pageCourante+1);
|
112 |
|
114 |
champPage.setAllowDecimals(false);
|
113 |
champPage.setValue(String.valueOf(pageCourante+1));
|
115 |
champPage.setAllowNegative(false);
|
114 |
champPage.setStyleAttribute("text-align","right");
|
116 |
champPage.setStyleAttribute("text-align","right");
|
Line 115... |
Line 117... |
115 |
champPage.setWidth(30);
|
117 |
champPage.setWidth(30);
|
Line 273... |
Line 275... |
273 |
listePaginable.changerNumeroPage(pageCourante);
|
275 |
listePaginable.changerNumeroPage(pageCourante);
|
274 |
}
|
276 |
}
|
275 |
});
|
277 |
});
|
Line 276... |
Line 278... |
276 |
|
278 |
|
277 |
champPage.addKeyListener(new KeyListener() {
|
- |
|
278 |
|
279 |
champPage.addKeyListener(new KeyListener() {
|
279 |
public void componentKeyUp(ComponentEvent ce) {
|
280 |
public void componentKeyUp(ComponentEvent ce) {
|
280 |
// on teste si la touche entrée a été pressée
|
281 |
// on teste si la touche entrée a été pressée
|
281 |
if (ce.getKeyCode() == KeyCodes.KEY_ENTER) {
|
282 |
if (ce.getKeyCode() == KeyCodes.KEY_ENTER) {
|
282 |
int nouvellePage = pageCourante;
|
- |
|
283 |
// on teste avec parseInt si la valeur entrée est un entier
|
- |
|
284 |
try {
|
- |
|
285 |
nouvellePage = Integer.parseInt(champPage.getRawValue());
|
- |
|
286 |
} catch (NumberFormatException nfe) {
|
- |
|
287 |
// si ce n'est pas le cas alors on remet le numéro de page correct
|
- |
|
288 |
rafraichirNumeroPage();
|
- |
|
289 |
champPage.focus();
|
- |
|
290 |
return;
|
- |
|
Line 291... |
Line 283... |
291 |
}
|
283 |
int nouvellePage = champPage.getValue().intValue();
|
292 |
|
- |
|
293 |
// si la conversion reussit on verifie s'il est nécessaire
|
284 |
|
294 |
// de changer de page
|
285 |
// on verifie s'il est nécessaire de changer de page
|
295 |
// et si la nouvelle est comprise dans l'intervalle des
|
286 |
// et si la nouvelle est comprise dans l'intervalle des
|
296 |
// pages existantes (0..pageTotale)
|
287 |
// pages existantes (0..pageTotale)
|
297 |
if (nouvellePage != pageCourante + 1 && nouvellePage > 0
|
288 |
if (nouvellePage != pageCourante + 1 && nouvellePage > 0
|
Line 305... |
Line 296... |
305 |
rafraichirNumeroPage();
|
296 |
rafraichirNumeroPage();
|
306 |
champPage.focus();
|
297 |
champPage.focus();
|
307 |
}
|
298 |
}
|
308 |
}
|
299 |
}
|
309 |
}
|
300 |
}
|
310 |
|
- |
|
311 |
public void componentKeyDown(ComponentEvent ce) {
|
- |
|
312 |
|
- |
|
313 |
int caractereSaisi = ce.getKeyCode();
|
- |
|
314 |
boolean isInteger = (caractereSaisi >= 96 && caractereSaisi <= 105);
|
- |
|
315 |
|
- |
|
316 |
// si le caractère n'est ni un chiffre ni 'entrée' ni 'backspace'
|
- |
|
317 |
if (!( isInteger
|
- |
|
318 |
|| ce.getKeyCode() == KeyCodes.KEY_ENTER
|
- |
|
319 |
|| ce.getKeyCode() == KeyCodes.KEY_BACKSPACE
|
- |
|
320 |
)) {
|
- |
|
321 |
// on remet le numero de page correct et on annule l'évenement
|
- |
|
322 |
rafraichirNumeroPage();
|
- |
|
323 |
ce.stopEvent();
|
- |
|
324 |
}
|
- |
|
325 |
}
|
- |
|
326 |
});
|
301 |
});
|
Line 327... |
Line 302... |
327 |
|
302 |
|
328 |
// listener pour la selection dans la combobox
|
303 |
// listener pour la selection dans la combobox
|
329 |
selecteurTaillePage.addSelectionChangedListener(new SelectionChangedListener() {
|
304 |
selecteurTaillePage.addSelectionChangedListener(new SelectionChangedListener() {
|
Line 342... |
Line 317... |
342 |
* d'éléments à partir des variables de classes
|
317 |
* d'éléments à partir des variables de classes
|
343 |
*/
|
318 |
*/
|
344 |
public void rafraichirNumeroPage() {
|
319 |
public void rafraichirNumeroPage() {
|
345 |
surTotalPage.setText(" sur " + pageTotale);
|
320 |
surTotalPage.setText(" sur " + pageTotale);
|
346 |
if (nbElement == 0) {
|
321 |
if (nbElement == 0) {
|
347 |
champPage.setValue("" + (0));
|
322 |
champPage.setValue(0);
|
348 |
// on met simplement à jour l'intervalle qui contient toujours le
|
323 |
// on met simplement à jour l'intervalle qui contient toujours le
|
349 |
// même nombre d'éléments
|
324 |
// même nombre d'éléments
|
350 |
intervalleElements.setText(i18nM.elementsAffiches(UtilString.ucFirst(labelElement), 0,0,0));
|
325 |
intervalleElements.setText(i18nM.elementsAffiches(UtilString.ucFirst(labelElement), 0,0,0));
|
351 |
} else {
|
326 |
} else {
|
352 |
champPage.setValue("" + (pageCourante + 1));
|
327 |
champPage.setValue(pageCourante + 1);
|
353 |
// si la page n'est pas la dernière
|
328 |
// si la page n'est pas la dernière
|
354 |
if (pageCourante + 1 != pageTotale) {
|
329 |
if (pageCourante + 1 != pageTotale) {
|
355 |
// sauf pour la dernière page qui contient souvent moins
|
330 |
// sauf pour la dernière page qui contient souvent moins
|
356 |
// d'élements que le nombre d'élements par page
|
331 |
// d'élements que le nombre d'élements par page
|
357 |
intervalleElements.setText(i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage,
|
332 |
intervalleElements.setText(i18nM.elementsAffiches(UtilString.ucFirst(labelElement), pageCourante * taillePage,
|