Consider the following scenario: on a single JSP page, there are two ItemsGrid components and a Path component. The Path component, named path, and one of the ItemsGrid components, named foldersGrid, are both bound to the same EnterpriseItems bean, named folders. This EnterpriseItems bean represents a folder hierarchy within the BusinessObjects Enterprise system that the user can navigate through using path and foldersGrid. Because the two components are both bound to the same EnterpriseItems bean, they are automatically synchronized so that when the user navigates with one component, the other component reflects these changes.
However, the second ItemsGrid component, named reportsList, is bound to a second EnterpriseItems bean called reports, which represents a set of Crystal reports in any given folder. How can reportsList be made to work with the other components on the page? The solution is to synchronize the components in the correct order.
To have the second ItemsGrid component, reportsList, work together with the other components in a meaningful way within the page, the components must be synchronized so that when the user navigates to a certain folder level within foldersList or path, the reportsList displays reports that are present at that same folder level. That is, the parentItemID property of the reports EnterpriseItems bean must be set to the current value of the parentItemID property of the folders bean each time the user clicks a folder in the folders grid or Path component. The result is that the reports grid always shows the same level of information. To enable that cofoldersList component and the path component.
path component.reportsList component to synchronize with the current component.Note: If you try to synchronize with a component that binds to the same EnterpriseItems bean as other components, a message is displayed that indicates that multiple components share the same itemSource property value (the EnterpriseItems bean), and that, if you add synchronization to the selected component, synchronization will be added to all components that are bound to this bean. Click OK to confirm the synchronization.
foldersList component and repeat steps 2 to 5 to synchronize with the reportsList component.The act of synchronization adds two important pieces of code to the application. First, an action listener is added to the foldersList and path components:
actionListener="#{pc_<nameofpage>.doAction}"
In addition, in the code
public void doAction() {
reports.setParentItemID(folders.getParentItemID());
}
As you can see, the order of synchronization matters. In our example, we synchronized foldersList to reportsList and path to reportsList. So when foldersList or path is clicked, reportsList is synchronized. However, the opposite is not true. You did not synchronize reportsList to foldersList, therefore actions in reportsList do not affect foldersList. When you decide which component to select and set synchronization settings on, always keep in mind the behavior you wish to accomplish in your application.
| Business Objects http://www.businessobjects.com/ Support services http://www.businessobjects.com/services/support/ |