2 Replies Latest reply on Oct 13, 2007 3:44 PM by Jacob Orshalick

    Filtering the ConversationStack based on view-id for breadcr

    Jacob Orshalick Apprentice

      The application I am currently developing follows the following Form scenario:

      1. User selects a DataModel element for editing which takes them to view editDataModelSelection.xhtml.
      2. User makes changes to the DataModelSelection.
      3. User selects an associated Object for editing which takes the user to sub-view editAggregateObject.xhtml
      4. User makes changes to associated object and submits those changes.
      5. This takes the user back to editDataModelSelection.xhtml view where the changes to the associated object are shown updated to the DataModelSelection.
      5. User submits the changes to the DataModelSelection which persists both DataModelSelection changes and associated object changes as well.

      A conversation is nested when the user accesses view editAggregateObject.xhtml. This allows a user to back-button to the editDataModelSelection.xhtml prior to editing the aggregate object without causing state inconsistencies between what the user sees and what actually persists on submit.

      The trouble is the display of breadcrumbs through the ConversationStack. When the user traverses the following path:

      view editDataModelSelection.xhtml -> action(editAssociatedObject) conversation nested here
      -> view editAggregateObject.xhtml -> action(submitChanges)
      -> view editDataModelSelection.xhtml

      In this scenario, the breadcrumbs by default are displayed as:

      Edit Data Model Selection | Edit Data Model Selection

      This makes sense due to the fact that the nested conversation has the same view-id as the outer conversation. This continues the more times the user edits an associated object. The implementation I am using filters ConversationEntries from the ConversationStack based on the view-id so that the breadcrumbs are simply displayed as:

      Edit Data Model Selection

      regardless of the nested ConversationEntries in this scenario. Is there a better way to do this?

      I know this is a long explanation so if any clarification is needed, please let me know. Thanks for any help you may be able to provide.