Le fichier d'actions contient des actions de script à effectuer sur les rubriques et les vues d'informations. En fait, il n'y a qu'une seule sorte d'action, l'action insert, qui est utilisée pour insérer les rubriques dans les vues d'informations à des endroits spécifiques appelés points d'insertion. Les vues d'informations et les rubriques peuvent être utilisées comme point d'insertion. Seules les rubriques qui définissent un ID optionnel peuvent être utilisées comme point d'insertion. (Les vues d'informations doivent toujours avoir un ID.)
Lors de la définition d'une action d'insertion, l'attribut to spécifie le point d'insertion cible. La rubrique spécifiée dans l'attribut from correspond à la rubrique insérée.
Ci-dessous figurent quelques moyens possibles d'insertion d'une rubrique :
comme enfant du point d'insertion (cas le plus courant),
comme premier enfant du point d'insertion,
comme dernier enfant du point d'insertion,
comme soeur précédente du point d'insertion (juste avant le point d'insertion au même niveau que l'arborescence de navigation),
comme soeur suivante du point d'insertion (juste après le point d'insertion au même niveau que l'arborescence de navigation).
Les actions d'insertion peuvent être imbriquées pour définir des actions d'insertions "alternées" devant être effectuées si l'action d'insertion parente échoue. Ceci peut être utile lorsque les points d'insertion sont situés dans d'autres plug-ins qui peuvent ou non être installés. Vous pouvez insérer votre rubrique dans la rubrique d'un autre plug-in et si l'action d'insertion échoue (du fait que l'autre plug-in n'est pas installé) vous pouvez installer la rubrique ailleurs. Une fois le point d'insertion satisfait, les actions d'insertion imbriquées sont ignorées.
Les fichiers d'actions appliquent toujours leurs actions à une seule vue d'informations. Si vous souhaitez lier vos rubriques à des vues d'informations différentes, vous devez disposer d'un fichier d'actions pour chacune. Une rubrique ne peut être utilisée qu'une seule fois dans une vue d'informations spécifique. Si vous devez faire référence à une rubrique deux fois dans une vue d'informations, vous devez créer un autre élément de rubrique (avec un id différent) qui utilise les mêmes libellé et href.
Nous devons à présent intégrer nos rubriques aux rubriques de niveau supérieur de la vue d'informations "Contents". Pour ce faire, nous avons besoin d'un autre fichier d'actions, appelé actions_All.xml, (du fait qu'il intègre la totalité de nos rubriques).
<actions infoview="com.example.helpexample.view_Contents">
<insert
from="com.example.helpexample.conceptsAll"
to="com.example.helpexample.conceptsRoot"
as="child"/>
<insert
from="com.example.helpexample.refAll"
to="com.example.helpexample.refRoot"
as="child"/>
<insert
from="com.example.helpexample.plainTasks"
to="com.example.helpexample.tasksRoot"
as="child"/>
<insert
from="com.example.helpexample.funTasks"
to="com.example.helpexample.funRoot"
as="child"/> </actions>
N'oubliez pas que nous avions un certain nombre de fichiers HTML liés à cette tâche et que la structure/navigation de ces fichiers a été définie par topics_tasks.xml comme suit :
<topics id="tasksAll">
<topic id="plainTasks" label="Plain Stuff">
<topic label="Task1" href="doc/tasks/task1.html"/>
<topic label="Task2" href="doc/tasks/task2.html"/>
</topic>
<topic id="funTasks" label="Fun Stuff" >
<topic label="Task3_1" href="doc/tasks/task3_1.html"/>
<topic label="Task3_2" href="doc/tasks/task3_2.html"/>
</topic>
</topics>
Dans le fichier d'actions ci-dessus, nous utilisons l'insertion comme action enfant pour prendre la rubrique dont l'ID est com.example.helpexample.plainTasks et l'insérer, ainsi que ses sous-rubriques, sous la rubrique dont l'ID est com.example.helpexample..tasksRoot.
<insert
from="com.example.helpexample.plainTasks"
to="com.example.helpexample.tasksRoot"
as="child"/>
Le fichier d'actions prend également certaines de nos tâches les plus divertissantes et les insère dans la zone "Fun Things" à l'aide de l'action suivante :
<insert
from="com.example.helpexample.funTasks"
to="com.example.helpexample.funRoot"
as="child"/>