Treebolic

menus contextuels


Les menus contextuels sont disponibles à partir de la version 1.7. La description du menu se trouve dans les données XML.
L'utilisation de macros qui se réfèrent au noeud sélectionné rendent le menu sensible au contexte.

Chaque élément de menu se compose de
actions opération paramètres
focus centre le noeud sélectionné aucun
search rechercher le noeud (la cible est comparée au champ du noeud examiné indique par scope (champ) suivant le mode d'appariement cible, champ, mode
goto suivre l'hyperlien vers ... url formattée comme <a href="url">
les urls valides sont les URL ainsi que #bookmark où bookmark=<node id>

Rechercher
champ le champ du noeud examiné est/commence/inclut la cible
id id
label étiquette
content contenu
link lien

mode opérations
equals le champ du noeud est égal   la cible
startswith le début le champ du noeud est égal   la cible
includes le champ du noeud inclut la cible

Macros
macros valeur à l'exécution
%i id du noeud sélectionné
%p id du parent du noeud sélectionné
%l étiquette du noeud sélectionné
%c contenu du noeud sélectionné
%e valeur éditée = texte (vérouillé) de la barre d'état
Les macros peuvent être utilisées dans l'attribut match-target, et les noeuds enfants <a> et <label>.
On peut aussi les utiliser dans des paramètres tels que http://someserver/search.php?id=%i&label=%l&content=%c&edit=%e

Exemple de menu
  <menu> Notez que les URL sont codées en UTF-8, comm l'exige le Web Consortium, donc "%23mammals" est décodé en "#mammals" et est un signet vers le noeud dont l'id est "#mammal".

La barre d'état est vérouillée et contient "x", de telle sorte que la macro %e est évaluée en "x".

La description XML produit le menu contextuel suivant (dans le contexte montré plus bas):

image

    <menuitem action="focus">
      <label>Focus</label>
    </menuitem>
centrer le noeud sélectionné
    <menuitem action="search"  match-target="label" match-mode="includes">
      <label>Search (name includes %e)</label>
    </menuitem>
rechercher un noeud dont l'étiquette inclut 'x'
    <menuitem action="search"  match-="id" match-mode="equals">
      <label>Search (id equals %e)</label>
    </menuitem>
rechercher un noeud dont l'id est égal   'x'
    <menuitem action="search" match-target="%e" match-scope="content" match-mode="includes">
      <label>Search (content includes %e)</label>
    </menuitem>
rechercher un noeud dont le contnu inclut 'x'
    <menuitem action="goto">
      <label>Go to mammals</label>
      <a href="%23mammal"/>
    </menuitem>
aller vers le noeud dont l'id est #mammal
    <menuitem action="goto">
      <label>Go to birds</label>
      <a href="%23bird"/>
    </menuitem>
aller vers le noeud dont l'id est #bird
    <menuitem action="goto">
      <label>Go to fish</label>
      <a href="%23fish"/>
    </menuitem>
aller vers le noeud dont l'id est #fish
    <menuitem action="goto">
      <label>Go to French</label>
      <a href="animal2-fr.html"/>
    </menuitem>
aller vers la page animal2-fr.html
    <menuitem action="goto">
      <label>Go to French (mammifƒÂères)</label>
      <a href="animal2-fr.html%23mammif%C3%A8re"/>
    </menuitem>
aller vers la page animal2-fr.html et aller vers le noeud dont l'id est #mammifère
  </menu>
</tools>


image