You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by so...@apache.org on 2009/01/22 22:46:21 UTC

svn commit: r736808 - in /myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal: context/DialogServiceImpl.java webapp/TrinidadFilterImpl.java

Author: sobryan
Date: Thu Jan 22 13:46:21 2009
New Revision: 736808

URL: http://svn.apache.org/viewvc?rev=736808&view=rev
Log:
TRINIDAD-1373: New Dialog Return code does not work if there are no launchParameters returned

* Fixed the dialog return logic to work even if launchParameters are not returned.

Modified:
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/DialogServiceImpl.java
    myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/DialogServiceImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/DialogServiceImpl.java?rev=736808&r1=736807&r2=736808&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/DialogServiceImpl.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/DialogServiceImpl.java Thu Jan 22 13:46:21 2009
@@ -45,6 +45,8 @@
 
 public class DialogServiceImpl extends DialogService
 {
+  public static final String DIALOG_RETURN = "org.apache.myfaces.trinidad.DialogReturn";
+    
   public DialogServiceImpl(RequestContextImpl context)
   {
     _context = context;
@@ -188,13 +190,13 @@
     Map<Object, Object> launchParameters = (Map<Object, Object>)
       poppedView.getAttributes().get(RequestContextImpl.LAUNCH_PARAMETERS);
 
+    Map<String, Object> requestMap = context.getExternalContext().getRequestMap();
     if (launchParameters != null)
     {
       // Store the parameters and the UIViewRoot for (respectively)
       // AdfFacesFilterImpl and ViewHandlerImpl
       poppedView.getAttributes().remove(RequestContextImpl.LAUNCH_PARAMETERS);
 
-      Map<String, Object> requestMap = context.getExternalContext().getRequestMap();
       requestMap.put(RequestContextImpl.LAUNCH_PARAMETERS, launchParameters);
       requestMap.put(RequestContextImpl.LAUNCH_VIEW, poppedView);
 
@@ -202,6 +204,8 @@
       _LOG.fine("Returned from dialog and re-executing lifecycle for {0}",
                 poppedView.getViewId());
     }
+    
+    requestMap.put(DIALOG_RETURN, Boolean.TRUE);
 
     return false;
 

Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java?rev=736808&r1=736807&r2=736808&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java Thu Jan 22 13:46:21 2009
@@ -21,9 +21,9 @@
 import java.io.IOException;
 import java.io.Serializable;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-
 import java.util.UUID;
 
 import javax.faces.component.UIViewRoot;
@@ -48,6 +48,7 @@
 import org.apache.myfaces.trinidadinternal.config.upload.FileUploadConfiguratorImpl;
 import org.apache.myfaces.trinidadinternal.config.upload.UploadRequestWrapper;
 import org.apache.myfaces.trinidadinternal.config.xmlHttp.XmlHttpConfigurator;
+import org.apache.myfaces.trinidadinternal.context.DialogServiceImpl;
 import org.apache.myfaces.trinidadinternal.context.RequestContextImpl;
 import org.apache.myfaces.trinidadinternal.context.external.ServletExternalContext;
 import org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderKit;
@@ -283,8 +284,12 @@
       if(data != null)
       {
         Map<String, Object> requestMap = ec.getRequestMap();
-        requestMap.put(_IS_RETURNING_KEY, Boolean.TRUE);
-        requestMap.put(RequestContextImpl.LAUNCH_VIEW, data.getLaunchView());
+        
+        UIViewRoot launchView = data.getLaunchView();
+        if(launchView != null)
+        { 
+          requestMap.put(RequestContextImpl.LAUNCH_VIEW, data.getLaunchView());
+        }
         
         return new ReplaceParametersRequestWrapper(
              (HttpServletRequest) ec.getRequest(), 
@@ -299,8 +304,8 @@
     throws IOException
   {
     Map<String, Object> reqMap = ec.getRequestMap();
-    Map<String, String[]> launchParameters = (Map<String, String[]>)reqMap.get(RequestContextImpl.LAUNCH_PARAMETERS);
-    if(launchParameters != null && !Boolean.TRUE.equals(reqMap.get(_IS_RETURNING_KEY)))
+    
+    if(Boolean.TRUE.equals(reqMap.get(DialogServiceImpl.DIALOG_RETURN)))
     {
       /**
        * We use pageflow scope so that if something fails on the redirect, we
@@ -309,7 +314,7 @@
        */
       Map<String, Object> sessionMap = ec.getSessionMap();
       String uid = UUID.randomUUID().toString();
-      LaunchData data = new LaunchData((UIViewRoot)reqMap.get(RequestContextImpl.LAUNCH_VIEW), launchParameters);
+      LaunchData data = new LaunchData((UIViewRoot)reqMap.get(RequestContextImpl.LAUNCH_VIEW), (Map<String, String[]>) reqMap.get(RequestContextImpl.LAUNCH_PARAMETERS));
       sessionMap.put(_getKey(uid), data);
       
       //Construct URL
@@ -341,7 +346,14 @@
     public LaunchData(UIViewRoot launchView, Map<String, String[]> launchParam)
     {
       _launchView = launchView;
-      _launchParam = launchParam;
+      if(launchParam != null)
+      {
+        _launchParam = launchParam;
+      }
+      else
+      {
+        _launchParam = Collections.emptyMap();
+      }
     }
 
     private UIViewRoot getLaunchView()