Développement d'artefacts d'interface utilisateur

Chaque flux d'écran a besoin d'un point de départ pour son déclenchement. Les composants d'interface utilisateur que vous développez ainsi que leurs fonctions permettent de déclencher et de traiter le flux d'écran. Indépendamment du type de l'artefact d'interface utilisateur que vous développez, il doit envoyer et recevoir des événements JSR-286 pour activer un flux d'écran. Par conséquent, vous devez implémenter ou réutiliser des portlets compatibles avec JSR-286 qui envoient et reçoivent de tels événements.

Prenons l'exemple d'un site de voyage sur lequel, pour une page de réservation de vol, le portlet d'informations passager portlet1 et le portlet de calendrier portlet2 sont deux portlets que vous avez développés.
  • Le portlet d'informations passager portlet1 doit pouvoir recevoir un événement avec le nom qualifié e0 et envoyer un événement avec le nom qualifié e1.
  • Le portlet de calendrier portlet2 doit pouvoir recevoir un événement avec le nom qualifié e1 et envoyer un événement avec le nom qualifié e2.
Lorsque le portlet d'informations passager portlet1 envoie l'événement e1, l'utilisateur est acheminé depuis le portlet portlet1 vers le portlet de calendrier portlet2. Pour plus d'informations, voir Transitions.

Pour permettre au portlet d'informations passager portlet1 de recevoir et d'envoyer les événements mentionnés, vous devez effectuer les deux opérations suivantes :

  • Indiquez les événements dans le fichier portlet.xml du portlet.
<portlet id="portlet1">
 ...
  <supported-processing-event>
      <qname>e0</qname>
  </supported-processing-event>
  <supported-publishing-event>
      <qname>e1</qname>
  </supported-publishing-event>
 </portlet>
 
 <event-definition>
  <qname>e0</qname>
  <value-type>java.lang.String</value-type>
 </event-definition>
 <event-definition>
  <qname>e1</qname>
  <value-type>java.lang.String</value-type>
 </event-definition>
  • Incluez le code dans le portlet capable de gérer un événement entrant et un autre code capable d'envoyer un événement.
 @Override
 public void processAction(ActionRequest request, ActionResponse response)
      throws PortletException, IOException {
  // ...
  
  response.setEvent(new QName("e1", "xyz"), new String());
 }

 @Override
 public void processEvent(EventRequest request, EventResponse response)
      throws PortletException, IOException {
 
  final Event event = request.getEvent();
  // ...

Effectuez des modifications similaires dans le portlet de calendrier portlet 2.

 <portlet id="portlet2">
  ...
  <supported-processing-event>
      <qname>e1</qname>
  </supported-processing-event>
  <supported-publishing-event>
      <qname>e2</qname>
  </supported-publishing-event>
 </portlet>
 
 <event-definition>
  <qname>e1</qname>
  <value-type>java.lang.String</value-type>
</event-definition>
 <event-definition>
  <qname>e2</qname>
  <value-type>java.lang.String</value-type>
 </event-definition>
 @Override
 public void processAction(ActionRequest request, ActionResponse response)
      throws PortletException, IOException {
  // ...
 
  response.setEvent(new QName("e2", "xyz"), new String());
 }
 
 @Override
 public void processEvent(EventRequest request, EventResponse response)
      throws PortletException, IOException {

  final Event event = request.getEvent();
  // ...

Si vous souhaitez intégrer des formulaires tels que le formulaire d'informations passager, ou des widgets tels que le calendrier, vous pouvez utiliser une tel portlet comme encapsuleur pour ces artefacts. Pour plus d'informations sur le développement de portlets, reportez-vous à la documentation produit traitant du développement de portlets dans WebSphere® Portal version 8.0.

Les portlets qui peuvent démarrer des flux d'écran sont référencés en tant que portlets d'instanciation et d'initialisation de boîte de dialogue. Il existe généralement deux types de portlets d'instanciation et d'initialisation :
  • Le premier type déclenche une nouvelle instance de boîte de dialogue en envoyant un événement de lancement précis.
  • Le deuxième type déclenche une nouvelle boîte de dialogue basée sur le fait qu'un portlet particulier émet un événement personnalisé spécifique.
Dans l'un ou l'autre cas, l'émission d'événement provoque le lancement d'un nouveau flux d'écran et son initialisation avec des données initiales transmises par la charge d'événement.

Avec Screen Flow Manager, différentes équipes et même des fournisseurs tiers peuvent développer différents types d'artefacts d'interface utilisateur (UI). Ces artefacts sont généralement des portlets, mais il peut également s'agir de widgets ou de formulaires. Pour plus de détails, reportez-vous à la documentation sur le développement de iWidgets dans IBM® Rational® Application Developer.