- User viewing a contact page
This view.xhtml page needs a page action, e.g. #{myViewer.rememberThis}. In the
rememberThis() method you can get the "redirect" component from Seam and call
captureCurrentRequest()/captureCurrentView().
- User clicks "Add Note"
This needs to be a call to the "view.xhtml" page, e.g. <s:link
action="addNote"/>. In your pages.xml you can then have a navigation rule like
this:
| <page view-id="/view.xhtml" action="#{myViewer.rememberThis}">
|
| <navigation>
| <rule if-outcome="addNote">
| <begin-conversation flush-mode="MANUAL"/>
| <redirect view-id="/noteEditor.xhtml"/>
| </rule>
|
The rememberThis() runs again and remembers the "entry point" for your long
running conversation. Which is what <begin-conversation> does, it promotes the
temporary conversation to a long-running conversation. The "redirect" component
is carried on in that same conversation.
- New page and user enters a note
This is a conversational flow, so you stay inside the long running conversation
on the /noteEditor.xhtml screen (during validation errors, etc.)
- User clicks save, note saved and contact page reshown
You can get out of your long running conversation by first ending it, and then
redirecting to the last remembered location in the "redirect" component. This
code could be in your NoteEditor.java bean as the exit code after save (or
mapped to the Cancel button in the UI):
|
| public void exitConversation() {
| Conversation currentConversation = Conversation.instance();
| Redirect redirect = (Redirect)Component.getInstance("redirect");
| currentConversation.end();
| // Have a chance here to modify the redirect.setParameters() for
the following GET, e.g.
| // strip off the action=(addNote) parameter which would lead me
into a circle
| redirect.returnToCapturedView();
| }
|
|
Yes, this is not ideal and we are currently working on a better concept that
involves "entry points". Not sure yet how that will exactly look like in code
and pages.xml. You also have the case of nested conversations, where you want
to exit to the last view shown in the parent conversation. Or a root
conversation that was started from another root conversation.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4035386#4035386
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4035386
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user