Subversion Repositories eFlore/Applications.coel

Rev

Rev 1683 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1683 Rev 1687
Line 11... Line 11...
11
import org.tela_botanica.client.images.Images;
11
import org.tela_botanica.client.images.Images;
12
import org.tela_botanica.client.interfaces.ListePaginable;
12
import org.tela_botanica.client.interfaces.ListePaginable;
13
import org.tela_botanica.client.interfaces.Rafraichissable;
13
import org.tela_botanica.client.interfaces.Rafraichissable;
14
import org.tela_botanica.client.util.Debug;
14
import org.tela_botanica.client.util.Debug;
15
import org.tela_botanica.client.util.UtilString;
15
import org.tela_botanica.client.util.UtilString;
-
 
16
import org.tela_botanica.client.composants.ChampFiltreRecherche;
Line 16... Line 17...
16
 
17
 
17
import com.extjs.gxt.ui.client.event.ButtonEvent;
18
import com.extjs.gxt.ui.client.event.ButtonEvent;
18
import com.extjs.gxt.ui.client.event.ComponentEvent;
19
import com.extjs.gxt.ui.client.event.ComponentEvent;
19
import com.extjs.gxt.ui.client.event.KeyListener;
20
import com.extjs.gxt.ui.client.event.KeyListener;
Line 58... Line 59...
58
		private ListStore storeIntervalle = new ListStore() ;
59
	private ListStore storeIntervalle = new ListStore() ;
Line 59... Line 60...
59
		
60
		
60
		private String labelElement;
61
	private String labelElement;
Line -... Line 62...
-
 
62
	private int taillePageDefaut = 50;
-
 
63
 
61
		private int taillePageDefaut = 50;
64
	private ChampFiltreRecherche champFiltreRecherche = null;
62
	
65
 
63
		public ListePaginable getlistePaginable() {
66
	public ListePaginable getlistePaginable() {
Line 64... Line 67...
64
				return listePaginable;
67
		return listePaginable;
Line 169... Line 172...
169
		
172
		
170
				// on ajoute les différents listeners
173
		// on ajoute les différents listeners
171
				ajouterListeners();	
174
		ajouterListeners();	
Line -... Line 175...
-
 
175
	}
-
 
176
 
-
 
177
	public BarrePaginationVue(ListePaginable listePaginableCourante, Mediateur mediateurCourant, ChampFiltreRecherche champFiltreRechercheCourant) {
-
 
178
		this(listePaginableCourante, mediateurCourant);
-
 
179
		champFiltreRecherche = champFiltreRechercheCourant;
172
		}
180
	}
173
	
181
	
174
		/**
182
	/**
175
		 *  Texte nommant les elements pagines (Images, Observation, truc, machin etc...).
183
	 *  Texte nommant les elements pagines (Images, Observation, truc, machin etc...).
176
		 * 	@param label
184
	 * 	@param label
Line 226... Line 234...
226
		private void ajouterListeners() {
234
	private void ajouterListeners() {
227
				premierePage.addSelectionListener(new SelectionListener<ButtonEvent>() {
235
		premierePage.addSelectionListener(new SelectionListener<ButtonEvent>() {
228
								public void componentSelected(ButtonEvent ce)	{
236
				public void componentSelected(ButtonEvent ce)	{
229
										pageCourante = 0;
237
					pageCourante = 0;
230
										rafraichirNumeroPage();
238
					rafraichirNumeroPage();
231
										listePaginable.changerNumeroPage(pageCourante);
239
					changePage();
232
								}
240
				}
233
						});
241
			});
Line 234... Line 242...
234
		
242
		
235
				// boutons suivants et précédents
243
		// boutons suivants et précédents
Line 239... Line 247...
239
										if (pageCourante > 0) {
247
					if (pageCourante > 0) {
240
												// on décrémente la page courante de 1
248
						// on décrémente la page courante de 1
241
												pageCourante--;
249
						pageCourante--;
242
												// on rafraichit l'affichage
250
						// on rafraichit l'affichage
243
												rafraichirNumeroPage();
251
						rafraichirNumeroPage();
244
												// et on notifie le médiateur de l'évenement
-
 
245
												listePaginable.changerNumeroPage(pageCourante);
252
						changePage();
246
 
-
 
247
										}
253
					}
248
								}
254
				}
249
						});
255
			});
Line 250... Line 256...
250
 
256
 
Line 254... Line 260...
254
										if (pageCourante < pageTotale - 1) {
260
					if (pageCourante < pageTotale - 1) {
255
												// on incrémente la page courante de 1
261
						// on incrémente la page courante de 1
256
												pageCourante++;
262
						pageCourante++;
257
												// on rafraichit l'affichage
263
						// on rafraichit l'affichage
258
												rafraichirNumeroPage();
264
						rafraichirNumeroPage();
259
												// et on notifie le médiateur de l'évenement
-
 
260
												listePaginable.changerNumeroPage(pageCourante);
265
						changePage();
261
										}
266
					}
262
								}
267
				}
263
						});
268
			});
Line 264... Line 269...
264
		
269
		
265
				dernierePage.addSelectionListener(new SelectionListener<ButtonEvent>() {
270
		dernierePage.addSelectionListener(new SelectionListener<ButtonEvent>() {
266
								public void componentSelected(ButtonEvent ce)	{
271
				public void componentSelected(ButtonEvent ce)	{
267
										pageCourante = pageTotale;
272
					pageCourante = pageTotale;
268
										rafraichirNumeroPage();
273
					rafraichirNumeroPage();
269
										listePaginable.changerNumeroPage(pageCourante);
274
					changePage();
270
								}
275
				}
Line 271... Line 276...
271
						});
276
			});
272
		
277
		
273
				rafraichir.addSelectionListener(new SelectionListener<ButtonEvent>() {
278
		rafraichir.addSelectionListener(new SelectionListener<ButtonEvent>() {
274
								public void componentSelected(ButtonEvent ce)	{
279
				public void componentSelected(ButtonEvent ce)	{
275
										listePaginable.changerNumeroPage(pageCourante);
280
					changePage();
Line 276... Line 281...
276
								}
281
				}
277
						});
282
			});
Line 288... Line 293...
288
												if (nouvellePage != pageCourante + 1 && nouvellePage > 0
293
						if (nouvellePage != pageCourante + 1 && nouvellePage > 0
289
													&& nouvellePage <= pageTotale) {
294
						    && nouvellePage <= pageTotale) {
290
														// le cas échéant, on charge la nouvelle page et on
295
							// le cas échéant, on charge la nouvelle page et on
291
														// notifie le médiateur
296
							// notifie le médiateur
292
														changerPageCourante(nouvellePage - 1);
297
							changerPageCourante(nouvellePage - 1);
293
														listePaginable.changerNumeroPage(pageCourante);
298
							changePage();
294
												} else {
299
						} else {
295
														// sinon on reaffiche l'ancien numero de page sans rien changer
300
							// sinon on reaffiche l'ancien numero de page sans rien changer
296
														rafraichirNumeroPage();
301
							rafraichirNumeroPage();
297
														champPage.focus();
302
							champPage.focus();
298
												}
303
						}
Line 310... Line 315...
310
										rafraichirNumeroPage();			
315
					rafraichirNumeroPage();			
311
								}
316
				}
312
						});
317
			});
313
		}
318
	}
Line -... Line 319...
-
 
319
 
-
 
320
	public void changePage() {
-
 
321
		// si notre barre de pagination n'a pas été initialisée
-
 
322
		// avec un filtre de recherche, contentons-nous de changer de page
-
 
323
		// Attention, car tous les webservice ne supporte pas un segment d'URI "null" (500)
-
 
324
		if(champFiltreRecherche == null || champFiltreRecherche.getFiltreValue() == null) {
-
 
325
			// et on notifie le médiateur de l'évenement
-
 
326
			listePaginable.changerNumeroPage(pageCourante);
-
 
327
		} else {
-
 
328
			// autrement nous pouvons changer de page *tout en conservant* le filtre de recherche,
-
 
329
			// charge au modèle de cette liste d'avoir implémenté correctement filtrerParNomEtPage()
-
 
330
			listePaginable.filtrerParNomEtPage(champFiltreRecherche.getFiltreValue(), pageCourante);
-
 
331
		}
-
 
332
	}
-
 
333
 
314
	
334
	
315
		/**
335
	/**
316
		 * Met à jour les affichage sur les numéros de pages et d'intervalle
336
	 * Met à jour les affichage sur les numéros de pages et d'intervalle
317
		 * d'éléments à partir des variables de classes
337
	 * d'éléments à partir des variables de classes
318
		 */
338
	 */
Line 395... Line 415...
395
						// courante est comptée à partir
415
			// courante est comptée à partir
396
						// de zéro)
416
			// de zéro)
397
						if (pageCourante >= pageTotale && pageCourante != 0) {
417
			if (pageCourante >= pageTotale && pageCourante != 0) {
398
								pageCourante = pageTotale - 1;
418
				pageCourante = pageTotale - 1;
399
								// le cas échéant on en notifie le médiateur
419
				// le cas échéant on en notifie le médiateur
400
								listePaginable.changerNumeroPage(pageCourante);
420
				changePage();
401
						}
421
			}
402
				}
422
		}
Line 403... Line 423...
403
 
423
 
404
				// enfin on rafraichit les informations affichées à partir des nouvelles
424
		// enfin on rafraichit les informations affichées à partir des nouvelles