Organisation
Pour certains beans, en particulier les beans Content et Layout, l'ordre des noeuds est important. Dans les beans d'arborescence, c'est la relation parentale des noeuds qui définit la hiérarchie. Seuls les noeuds possédant le même noeud parent sont placés dans un ordre particulier dans les arbres.
Séquence
La commande move permet de réorganiser les nœuds. L'ordre des nœuds est suivi à l'aide de nombres entiers non négatifs, un nombre étant affecté à chaque nœud et le premier nœud se situant à la position 0. Pour les beans d'arborescence, les positions sont comparées uniquement entre les enfants d'un noeud parent commun. Vous pouvez interroger la position en tant qu'attribut simple accessible en lecture seule.L'ordre des nœuds est modifié par la commande move. Celle-ci est utilisée sur un seul noeud en vue d'affecter une position absolue ou de procéder à un déplacement sur une distance donnée. Les positions des autres noeuds affectés sont automatiquement mises à jour. Dans les deux cas, la nouvelle position du noeud ne dépasse jamais les limites. La position ou l'argument de déplacement est ajusté(e) par le bean.
La commande move attend le déplacement de l'ID de nœud, un mot clé qui indique si la modification est absolue ou relative et la nouvelle position ou distance. Si le bean prend en charge une sélection en cours, l'ID est omis afin de déplacer l'objet sélectionné.
Layout.move(ID, "to", position)
Layout.move(ID, "by", distance)
# only for beans with a current selection
Layout.move("to", position)
Layout.move("by", distance)
# example: move selected node to the first position
Layout.move("to", 0)
# example: move given node one down in the list
# if it already is the last node, do nothing
Layout.move(node_ID, "by", 1)
# example: move selected node 4 up in the list
# if it is at position 0 to 4, it becomes the new head
Layout.move("by", -4)
# example: move given node to the last position
# negative absolute positions are interpreted as max int
Layout.move(node_ID, "to", -1)$Layout move ID to position
$Layout move ID by distance
# only for beans with a current selection
$Layout move to position
$Layout move by distance
# example: move selected node to the first position
$Layout move to 0
# example: move given node one down in the list
# if it already is the last node, do nothing
$Layout move node_ID by 1
# example: move selected node 4 up in the list
# if it is at position 0 to 4, it becomes the new head
$Layout move by -4
# example: move given node to the last position
# negative absolute positions are interpreted as max int
$Layout move node_ID to -1Hiérarchie
Dans certains beans d'arborescence, vous pouvez modifier le parent d'un noeud dans l'arborescence et déplacer l'intégralité de la sous-arborescence sous ce noeud vers une autre partie de l'arborescence.Cette modification apportée au parent d'un nœud de l'arborescence est réalisée à l'aide de la commande transfer ou adopt. Avec transfer, l'ID du nœud et le nouveau parent sont spécifiés de manière explicite, alors que adopt utilise le mode de présentation sélectionné comme nouveau parent. Pour améliorer la lisibilité et éviter toute méprise au sujet de l'interprétation des deux ID, les arguments de la commande de transfert sont séparés par le mot clé "to".
Content.transfer(child_ID, "to", parent_ID)
Layout.transfer(child_ID, "to", parent_ID)
Layout.adopt(child_ID)
# example: move a layout node under the root component of the page
Layout.select("the", "root")
Layout.adopt(node_id)$Content transfer child_ID to parent_ID
$Layout transfer child_ID to parent_ID
$Layout adopt child_ID
# example: move a layout node under the root component of the page
$Layout select the root
$Layout adopt node_ID