O arquivo de ações contém ações de script a serem executadas nos tópicos e infoviews. Atualmente há somente um tipo de ação, a ação inserir, utilizada para inserir tópicos nas infoviews em localizações específicas chamadas pontos de inserção. As infoviews e os tópicos podem ser ambos utilizados como pontos de inserção. Somente os tópicos que definem um id opcional podem ser utilizados como pontos de inserção. (As Infoviews devem sempre ter ids.)
Ao definir uma ação de inserção, o atributo to especifica o ponto de inserção de destino. O tópico especificado no atributo from é o tópico que está sendo inserido.
A seguir estão algumas maneiras possíveis para inserir um tópico:
Como um filho do ponto de inserção (o mais comum)
Como o primeiro filho do ponto de inserção
Como o último filho do ponto de inserção
Como o irmão anterior do ponto de inserção (imediatamente antes do ponto de inserção no mesmo nível na árvore de navegação)
Como o próximo irmão do ponto de inserção (imediatamente depois do ponto de inserção no mesmo nível na árvore de navegação)
As ações de inserção podem ser aninhadas para definir as ações de inserção "alternativas" que devem ser executadas se a ação de inserção pai falhar. Isso pode ser útil quando os pontos de inserção estiverem localizados em outros plug-ins que podem estar instalados ou não. É possível inserir seu tópico em outro tópico de plug-in, e se a ação de inserção falhar (porque o outro plug-in não está instalado), é possível instalar o tópico em qualquer outro lugar. Assim que um ponto de inserção for satisfatório, as ações de inserção aninhadas são ignoradas.
Os arquivos de ações sempre aplicam suas ações a uma única infoview. Se desejar conectar os tópicos em infoviews diferentes, você precisará de um arquivo de ações para cada. Um tópico pode ser utilizado apenas uma vez dentro de uma determinada infoview. Se for necessário referir-se a um tópico duas vezes dentro de uma infoview, você precisará criar outro elemento de tópico (id diferente) que utilize a mesma etiqueta e href.
É o momento de, finalmente, integrar nossos tópicos nós tópicos de nível superior da infoview "Conteúdos". Para fazer isso, precisamos de outro arquivo de funções que chamaremos de actions_All.xml (já que ele integra todos os nossos tópicos).
<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>
Lembre-se que tínhamos vários arquivos html de tarefas relacionadas e a estrutura/navegação destes arquivos foram definidas por topics_tasks.xml da seguinte maneira:
<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>
No arquivo de ações acima, usamos a inserção como ação filho para obter o tópico com id com.example.helpexample.plainTasks e inseri-lo e seus subtópicos no tópico com id com.example.helpexample..tasksRoot
<insert
from="com.example.helpexample.plainTasks"
to="com.example.helpexample.tasksRoot"
as="child"/>
O arquivo de ações também obtém algumas das nossas tarefas de maior entretenimento e as insere na área "Fun Things" da Web utilizando a seguinte ação.
<insert
from="com.example.helpexample.funTasks"
to="com.example.helpexample.funRoot"
as="child"/>