Examinez les scénarios suivants : une page JSP unique contient deux composants ItemsGrid et un composant Path. Le composant Path, nommé path, et un des composants ItemsGrid nommé foldersGrid, sont tous deux liés au même bean EnterpriseItems nommé folders. Ce bean EnterpriseItems représente une hiérarchie de dossiers dans le système Crystal Enterprise que l'utilisateur peut parcourir en utilisant path et foldersGrid. Les deux composants étant liés au même bean EnterpriseItems, ils sont synchronisés automatiquement de sorte que lorsque l'utilisateur navigue avec un composant, l'autre composant reflète les modifications.
Toutefois, le second composant ItemsGrid, nommé reportsList, est lié à un second bean EnterpriseItems nommé reports qui représente un ensemble d'états Crystal dans un dossier donné. Comment faire en sorte que reportsList fonctionne avec les autres composants de la page ? La solution consiste à synchroniser les composants dans l'ordre approprié.
Pour que le second composant ItemsGrid, reportsList, fonctionne avec les autres composants de manière transparente dans la page, les composants doivent être synchronisés de sorte que, lorsque l'utilisateur navigue vers un certain niveau dans la hiérarchie des dossiers dans foldersList ou path, reportsList affiche les états présents à ce même niveau. Par exemple, la propriété parentItemID du bean reports de EnterpriseItems doit avoir pour valeur la valeur actuelle de la propriété parentItemID du bean folders chaque fois que l'utilisateur clique sur un dossier dans la grille des dossiers ou sur le composant Path. Le résultat étant que la grille des états affiche toujours le même niveau d'information. Pour permettre cette coordination entre composants, vous devez définir la synchronisation pour le composant foldersList et pour le composant path.
path.
reportsList afin de le synchroniser avec le composant actuel.
Remarque : Si vous tentez de synchroniser avec un composant lié au même bean EnterpriseItems que d'autres composants, un message vous indique que plusieurs composants ont la même valeur de propriété itemSource (le bean EnterpriseItems), et que si vous ajoutez la synchronisation pour le composant sélectionné, elle sera également ajoutée pour tous les composants liés à ce bean. Cliquez sur OK pour confirmer la synchronisation.
foldersList et répétez les étapes 2 à 5 pour synchroniser avec le composant reportsList.
L'action de synchronisation ajoute deux éléments de code importants à l'application. Premièrement, une écoute d'actions est ajoutée aux composants foldersList et path :
actionListener="#{pc_<nameofpage>.doAction}"
En outre, dans la classe java code
reports.setParentItemID(folders.getParentItemID());
Comme vous pouvez le constater, l'ordre de synchronisation est important. Dans notre exemple, nous avons synchronisé foldersList sur reportsList et path sur reportsList. Ainsi, lorsque l'utilisateur clique sur foldersList ou sur path, reportsList est synchronisé. Toutefois, l'inverse n'est pas vrai. reportsList n'a pas été synchronisé sur foldersList, par conséquent, les actions effectuées dans reportsList n'affectent pas foldersList. Lorsque vous décidez des composants à sélectionner et sur lesquels effectuer la synchronisation, gardez à l'esprit le comportement que vous souhaitez obtenir de votre application.
| Business Objects http://www.france.businessobjects.com/ Support technique http://www.businessobjects.com/services/support/ |