Projets

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Sommaire :

Sommaire
maxLevel3

...

Le tag paginator

Contrairement à ce que l'on peut trouver dans esup-commons V1 les tags <e: développés spécifiquement pour esup-commons ont été supprimé au profit de l'utilisation de librairies standard.
Seul le tag paginator a été conservé.

La pagination des données (e:paginator)




Exemple d'utilisation de la balise e:paginator.

Bloc de code
<h:panelGroup>
  <e:paginator id="thingPaginator"
    paginator="#{thingsController.paginator}"
    itemsName="#{msgs['THINGS']}"
    onchange="javascript:{simulateLinkClick('thingsForm:submitPageSize');}" />
 <e<h:commandButton id="submitPageSize"
	action="#{thingsController.paginator.forceReload}" />
</h:panelGroup>

...

La balise e:paginator ne gère pas l'affichage des données. Elle s'occupe de la gestion des pages (voir la page 04 Pagination pour l'utilisation d'un paginateur dans une page JSF).

Configuration dynamique des balises

Le fichier /properties/tags/tags.xml doit déclarer un bean nommé tagsConfigurator, qui doit implémenter l'interface TagsConfigurator.

Les valeurs par défaut de ce bean suivent les recommandations de http://www.ja-sig.org/wiki/display/UPC/JSR-168+PLT.C+CSS+Style+Definitions+section. On se réfèrera au fichier d'exemple /properties/tags/tags-example.xml pour plus de détails.

Écriture d'un paginateur simple

Nous supposons qu'une page de l'application doit afficher les choses (Thing) du service (Department) courant de la page.

...


exercice
Écrire un paginateur simple
Écrire un paginateur simple

Écrire un paginateur simple pour récupérer tous les objets de type Entry de la base de données.

solution

Ecriture de la classe EntryPaginator :

Bloc de code
public class EntryPaginator extends ListPaginator<Entry> {


private static final long serialVersionUID = 1L;

/**
 * The domain service.
 */
private DomainService domainService;

/**
 * Constructor.
 */
public EntryPaginator(){
 	super();
}

/**
 * Constructor.
 */
public EntryPaginator(final DomainService domainService){
 	super();
 	this.domainService = domainService;
}

/**
 * @see org.esupportail.commons.web.beans.ListPaginator#getData()
 */
@Override
protected List<Entry> getData(){
   return getDomainService().getEntries();
}

/**
 * @return the domainService
 */
public DomainService getDomainService(){
 	return domainService;
}

/**
 * @param domainService the domainService to set
 */
public void setDomainService(final DomainService domainService){
 	this.domainService = domainService;
}

}
 



Utilisation d'un paginateur

Dans le code Java

Un paginateur sera typiquement un attribut d'un contrôleur. Nous prenons ici pour exemple le contrôleur des « choses », qui les affiche de manière paginée :

...

Bloc de code
paginator.setDepartment(department).reloadData();

Dans une page JSF

Nous montrons dans cette partie comment présenter un paginateur, pour obtenir un affichage de ce genre :
On commence par englober le tout d'un formulaire, nécessaire pour faire fonctionner les boutons de navigation :

...