Transitions et événements spéciaux de lancement
Vous pouvez définir une boîte de dialogue pour qu'elle démarre si un événement de lancement est émis depuis une source particulière ou une source arbitraire.
QName:{http://www.ibm.com/xmlns/prod/websphere/portal/v6.1.0/portal-pcm}StartDialog
Son contenu doit implémenter l'interface com.ibm.portal.pcm.events.DialogStartPayload.
Cet événement de lancement spécial fournit des moyens supplémentaires pour démarrer des boîtes de dialogue ou des flux d'écran. Par exemple, l'implémentation des méthodes de cette interface permet de contrôler à partir d'un programme le nom de la boîte de dialogue à démarrer.
getDialogDefinitionName() est démarrée.
<transition type="start">
<source>
<transition-endpoint nameref="*">
<event qname="{http://www.ibm.com/xmlns/prod/websphere/portal/v6.1.0/portal-pcm}StartDialog"/>
</transition-endpoint>
</source>
<target>
...
</target>
</transition>
Il peut arriver qu'un événement JSR-286 soit émis par un portlet inclus dans une boîte de dialogue, mais ne soit pas défini comme faisant partie d'une transition. Les événements qui se produisent en dehors du flux d'écran de transition ne sont pas affectés par HCL UX Screen Flow Manager. Ils sont fournis comme si HCL UX Screen Flow Manager n'était pas présent. Exemple de code précédent : Si portlet4 émet un événement eX, une transition correspondante est trouvée et s'exécute. Si portlet4 émet un événement eY, aucune transition de correspondance n'est trouvée et par conséquent, aucune transition n'est exécutée. Cependant, l'émission de l'événement eY affecte le flux d'écran. Par exemple, le portlet4 peut figurer dans la page page4 avec un autre portlet portlet5. Par conséquent, si le portlet portlet5 peut recevoir l'événement eY, L'événement eY est distribué depuis portlet4 vers portlet5, comme si le gestionnaire IBM UX Screen Flow Manager n'était pas présent. HCL UX Screen Flow Manager a pour vocation première de contrôler les transitions basées sur le modèle déclaratif. Vous devez par conséquent utiliser cette approche de contrôle par programme avec précaution et uniquement si vous ne pouvez pas faire autrement.
Comme vous pouvez démarrer des boîtes de dialogue en indiquant des noeuds finaux de transition dédiés, des noeuds finaux de transition indéterminés, des événements dédiés ou des événements de lancement spéciaux, plusieurs combinaisons sont possibles. L'exemple de code montre le comportement et l'interaction de ces combinaisons.
<dialog name="dialog1">
<transition type="start">
<source>
<transition-endpoint nameref="*">
<event qname="{http://www.ibm.com/xmlns/prod/websphere/portal/v6.1.0/portal-pcm}StartDialog"/>
</transition-endpoint>
</source>
...
</transition>
</dialog>
<dialog name="dialog2">
<transition type="start">
<source>
<transition-endpoint nameref="*">
<event qname="eX"/>
</transition-endpoint>
</source>
...
</transition>
</dialog>
<dialog name="dialog3">
<transition type="start">
<source>
<transition-endpoint nameref="portlet3">
<event qname="{http://www.ibm.com/xmlns/prod/websphere/portal/v6.1.0/portal-pcm}StartDialog"/>
</transition-endpoint>
</source>
...
</transition>
</dialog>
<dialog name="dialog4">
<transition type="start">
<source>
<transition-endpoint nameref="portlet4">
<event qname="eX"/>
</transition-endpoint>
</source>
...
</transition>
</dialog>