[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-2854) Provide a way to nest pageflows

Eddie Lewis (JIRA) jira-events at lists.jboss.org
Mon Jun 15 19:59:56 EDT 2009


    [ https://jira.jboss.org/jira/browse/JBSEAM-2854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12472236#action_12472236 ] 

Eddie Lewis commented on JBSEAM-2854:
-------------------------------------

Quick update

I tried propagating the pageflow from the parent to the nested conversation

ConversationInterceptor.java

private void beginConversation(boolean nested, String pageflowName) {
		if (!Manager.instance().isLongRunningOrNestedConversation()) {
			Manager.instance().beginConversation();
			beginNavigation(pageflowName);
		} else if (nested) {
			// get pageflow from the current conversation
			Pageflow ppf = (Pageflow) Component.getInstance(Pageflow.class, ScopeType.CONVERSATION);
			// create the nested conversation
			Manager.instance().beginNestedConversation();
			// if starting a new conversation and a pageflow attribute was specified then use it
			if (!pageflowName.equals("")) {
				beginNavigation(pageflowName);
			} else {
				// set the pageflow from the parent into the current context - will remove on end conversation
				if (ppf != null) {
					Contexts.getConversationContext().set(Component.getComponentName(Pageflow.class), ppf);
				}
			}
		}
	}

This worked and the pageflow continued successfully within the context of the nested conversation
Just could not get the pageflow to continue from the parent when the nested conversation was destroyed

in the method endConversation - added

                Pageflow ppf = (Pageflow) Component.getInstance(Pageflow.class, ScopeType.CONVERSATION);
		Contexts.getConversationContext().set(Component.getComponentName(Pageflow.class), null);
		Manager.instance().endConversation(beforeRedirect);
		if(ppf!=null) {
		    Contexts.getConversationContext().set(Component.getComponentName(Pageflow.class), ppf);
		}

also tried getting the parent conversation from the ConversationEntries instance and then calling a redirect() or select() but still no luck.

> Provide a way to nest pageflows
> -------------------------------
>
>                 Key: JBSEAM-2854
>                 URL: https://jira.jboss.org/jira/browse/JBSEAM-2854
>             Project: Seam
>          Issue Type: Feature Request
>          Components: BPM, Core, JSF Controls
>    Affects Versions: 2.0.1.GA
>         Environment: All
>            Reporter: Marcell Barbacena
>
> The current behaviour of pageflow subprocess tag is to include the pageflow definition in the the current flow, meaning that the parent pageflow is paused until the included pageflow ends.
> However, sometimes it is desired that the parent pageflow do not "pause" and that the included gain its own flow.
> The semantics of this nested pageflow is:
> - when starts: provided a nested conversation from the parent pageflow.
> - when ends: go back do the state before the nesting. If the parent pageflow is not associated in any way to the nested, its flow goes without interfering with the nested.
> E.g.:
> Parent directed graph: startpage1->page1; page1->page2; page1->nested; nested->page2; page2->page3; page3->endpage1; 
> Nested graph: startpage2->page5; page5->page6; page6->endpage2
> Then we can have:
> parent: startpage1->page1;
> parent: page1->nested;
> nested: startpage2->page5;
> nested: page5->page6;
> parent: page1->page2;
> parent: page2>page3;
> nested: page6->endpage2
> nested:endpage2->page2;
> parent: page3->endpage1;
> nested: page2>page3;
> nested: page3->endpage1;
> See that the nested pageflow gains his own flow, i.e. independent of the parent.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list