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()