Modification du mode du portlet et de l'état de la fenêtre côté client

Le modèle de programmation côté client permet de gérer les modifications du mode du portlet et de l'état de la fenêtre mode sur le client, au lieu d'un aller-retour complet entre serveur et client.

Pourquoi et quand exécuter cette tâche

L'agrégation côté client propose un gestionnaire d'événements pour les changements de mode du portlet et les changements d'état de fenêtre du portlet. Ce gestionnaire est appelé lorsqu'une modification du mode ou une modification de l'état d'une fenêtre est déclenchée.
Remarque : Cette fonction est uniquement prise en charge dans le thème CSA du portail et l'habillage CSA. Vous pouvez adapter le thème et l'habillage CSA afin d'écrire vos propres thèmes et habillages personnalisés pour prendre en charge cette fonction.
La valeur renvoyée par votre gestionnaire détermine si l'action par défaut est exécutée :
  • Une valeur de retour true permet l'exécution de l'action par défaut, dans ce cas, le changement de mode du portlet ou de l'état de la fenêtre.
  • Une valeur de retour false annule l'action par défaut.
Cette action permet au portlet de gérer ces modifications uniquement sur le client, sans interaction du serveur.
Vous définissez les gestionnaires de changements comme suit :
  • Pour définir un gestionnaire de changement de mode de portlet, définissez une fonction JavaScript appelée <portlet:namespace/>doPortletMode dans votre portlet.
  • Pour définir un gestionnaire de changement d'état de fenêtre de portlet, définissez une fonction appelée <portlet:namespace/>doWindowState.
L'habillage CSA vérifie si une fonction de ce type est définie avant de traiter les changements de mode de portlet ou d'état de fenêtre. Deux arguments sont fournis par le gestionnaire :
  • Le premier argument correspond au mode de portlet ou à l'état de fenêtre requis sous forme de chaîne.
  • Le deuxième argument correspond à l'élément de marquage qui doit être utilisé pour insérer un marquage spécifique au mode. Cet argument permet de prendre en charge les modes en ligne disponibles dans la version CSA de l'habillage du portail IBM.
Voir l'exemple suivant :
<portlet:namespace/>doPortletMode( portletMode, div ){ 
   var retVal = true;
   if ( portletMode == ibm.portal.portlet.PortletMode.VIEW ) {
      //do view mode here
      div.innerHTML = "...some view mode markup...";
      retVal = false;
   }
   return retVal;
   }