Lorsque l'objet Menu est une barre d'onglets (cas du menu accordéon par exemple), il est possible de gérer l'item sélectionné par l'utilisateur (l'item qui est cliqué) et lui associer une apparence particulière.

Lorsqu'un clic sur un item déclenche un événement Adélia qui boucle sur la même page, alors l'objet Menu gère automatiquement l'item sélectionné : Au réaffichage de la page, l'item cliqué est affiché comme étant celui sélectionné. Dans le cas d'un menu accordéon, les items parent sont automatiquement expansés pour rendre visible l'item sélectionné.

Cependant, lorsque l'événement Adélia déclenché sur le clic d'un item provoque l'affichage d'une nouvelle page, alors il est nécessaire de gérer l'item sélectionné manuellement. Typiquement, ce cas peut se produire lorsqu'un objet Menu (accordéon par exemple) est en partie gauche d'un canevas et que l'événement Adélia associé au clic d'un item déclenche un TRAITER_PGM.
La gestion manuelle de l'item sélectionné se fait en deux étapes :

Etape 1 : Sur le ONCLICK de chaque item de menu, il faut stocker dans le contexte d'exécution de l'application le nom de l'item sélectionné. Voici un exemple de code L4G :

nomItem = mnu_1:nom_item_select
sauver_ctx 'cleItem' 'REQUEST' nomItem

Remarque : Il est possible de stocker le nom de l'item soit au niveau 'REQUEST' soit au niveau 'SESSION'. Ce code doit être exécuté avant un TRAITER_PGM.


Etape 2 : Dans le pavé INITIALISATION de la page contenant l'objet Menu, il faut récupérer le nom de l'item précédemment stocké. Voici un exemple de code L4G :

recuperer_ctx 'cleItem' 'REQUEST' nomItem
si *code_retour = *normal
* un nom d'item a été précédemment stocké
mnu_1:nom_item_select = nomItem
sinon
* aucun item stocké : cela peut se produire au premier appel du programme partie centrale du canevas
* laisser le menu réduit.
fin

Remarque : L'affectation d'un nom d'item à la propriété NOM_ITEM_SELECT provoque l'expansion des items parent pour rendre visible cet item.

Articles connexes