Transitions sortantes multiples
Lorsque la boîte de dialogue appelante comporte des transitions sortantes multiples à partir desquelles la boîte de dialogue appelée peut être démarrée, vous devez définir la façon dont la transition se poursuit. Lorsque vous revenez de la boîte de dialogue appelée, vous devez définir que la poursuite des transitions au sein de la boîte de dialogue appelante varie. Elle diffère selon que vous avez ou non quitté la boîte de dialogue appelante.
Pour contrôler la façon de continuer de telles transitions, un attribut resume-point est affecté à l'élément de noeud final de transition qui référence la boîte de dialogue à partir de laquelle la transition est renvoyée. L'attribut resume-point doit référencer un noeud final de transition de la boîte de dialogue appelante qui était activer lorsqu'une autre boîte de dialogue a été démarrée.
Dans l'exemple de code suivant, dialog1 comporte deux transitions à partir desquelles dialog2 peut être démarrée. Une transition fait référence au noeud final de portlet1 comme sa source, l'autre fait référence au noeud final de . portlet2. En outre, dialog2 comporte deux transitions entrantes distinctes. Une transition véhicule l'attribut resume-point avec la valeur portlet1, l'autre avec la valeur portlet2.
Quand vous quittez dialog1 via la première transition, laquelle fait référence au noeud final portlet1, dialog1 continue avec portlet3 après la fin de dialog2. La raison en est que la transition qui référence le point de reprise avec la valeur portlet1 est déclenchée puisque portlet1 était actif quand vous avez quitté dialog1.
Quand vous quittez dialog1 via la seconde transition, laquelle fait référence au noeud final portlet2, dialog1 continue avec portlet4 après la fin de dialog2. La raison en est que la transition qui référence le point de reprise avec la valeur portlet2 est déclenchée puisque portlet2 était actif quand vous avez quitté dialog1.
<dialog name="dialog1">
...
<transition>
<source>
<transition-endpoint nameref="portlet1">
<event qname="eX"/>
</transition-endpoint>
</source>
<target>
<transition-endpoint nameref="dialog2">
<event qname="eX"/>
</transition-endpoint>
</target>
</transition>
<transition>
<source>
<transition-endpoint nameref="portlet2">
<event qname="eX"/>
</transition-endpoint>
</source>
<target>
<transition-endpoint nameref="dialog2">
<event qname="eX"/>
</transition-endpoint>
</target>
</transition>
...
<transition>
<source>
<transition-endpoint nameref="dialog2" resumepoint="portlet1">>
<event qname="eZ"/>
</transition-endpoint>
</source>
<target>
<transition-endpoint nameref="portlet3">
<event qname="eZ"/>
</transition-endpoint>
</target>
</transition>
<transition>
<source>
<transition-endpoint nameref="dialog2" resumepoint>
<event qname="eZ"/>
</transition-endpoint>
</source>
<target>
<transition-endpoint nameref="portlet4">
<event qname="eZ"/>
</transition-endpoint>
</target>
</transition>
...
</dialog>
...