myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Kurz (JIRA)" <...@myfaces.apache.org>
Subject [jira] Created: (TRINIDAD-1903) Window manager and per window page flow scope
Date Thu, 02 Sep 2010 17:06:57 GMT
Window manager and per window page flow scope
---------------------------------------------

                 Key: TRINIDAD-1903
                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1903
             Project: MyFaces Trinidad
          Issue Type: New Feature
    Affects Versions: 1.2.14-core 
            Reporter: Michael Kurz
            Priority: Minor


Some time ago Mark Badorrek posted a development request for a PageFlowScopeProvider that
supports having one page flow scope and one view cache for every window /tab of the browser.
The original request explaining the problem can be found at [1]. Mark has a working solution
for this problem that supports five hardcoded page flow scopes and view caches (details below).


What he wants to have is a generic solution that comes as part of Trinidad. Blake suggested
that this should be done with a window manager implementation. 

I started working on this and provide some very basic code to discuss the problems involved.

Details for the existing solution:
-------------------------------------------

Mark's existing solution mainly consists of a custom page flow scope provider implementation.
This implementation supports a default page flow scope map and five additional scope maps
with predefined names. The names are supplied via request parameters. 

Additionally, they have a custom state manager that also checked the request parameters and
store a separate view cache for each of the five named windows (including a default view cache).

The following scenario demonstrates how this solution is used. If the user clicks on a link,
a new window using a new page flow scope and view cache is opened. The JSP fragment looks
like this:

<tr:goLink textAndAccessKey="..." destination="#"
    onclick="window.open( '#{myBackingBean.getURL}', '...'"/>

public class MyBackingBean{
  public void getURL(){
    Map<String, Object> pageFlowScope = ThePageFlowProviderImpl.
        getEmptyPageFlowScopeForRelatedWorkItems();
    // Initialize some stuff and put it in the new page flow scope
    pageFlowScope.put("key", value);
    return "../my/new/frame.jsp?" +  ThePageFlowProviderImpl.
        RELATED_WORK_ITEMS_PAGE_FLOW_SCOPE + "=true";
  }
}

Effectively the URL assigned to the goLink tag becomes : 

../my/new/frame.jsp?relatedworkitems_pageflowscope=true

Once trinidad opens the new window and begins to create the view, it eventually starts using
the new page flow scope defined by the magic key in the URL ("relatedworkitems_pageflowscope")
to determine which pageflowscope to use.

---

[1]: http://markmail.org/message/ijyve7oj2ik5l57k

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message