You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2013/12/14 04:16:04 UTC

svn commit: r1550873 - /myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/util/OutcomeTargetUtils.java

Author: lu4242
Date: Sat Dec 14 03:16:03 2013
New Revision: 1550873

URL: http://svn.apache.org/r1550873
Log:
MYFACES-3832 disableClientWindow is not fully implemented

Modified:
    myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/util/OutcomeTargetUtils.java

Modified: myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/util/OutcomeTargetUtils.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/util/OutcomeTargetUtils.java?rev=1550873&r1=1550872&r2=1550873&view=diff
==============================================================================
--- myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/util/OutcomeTargetUtils.java (original)
+++ myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/util/OutcomeTargetUtils.java Sat Dec 14 03:16:03 2013
@@ -37,6 +37,7 @@ import javax.faces.component.UIOutcomeTa
 import javax.faces.component.UIParameter;
 import javax.faces.context.FacesContext;
 import javax.faces.flow.FlowHandler;
+import javax.faces.lifecycle.ClientWindow;
 import org.apache.myfaces.shared.application.NavigationUtils;
 import org.apache.myfaces.shared.renderkit.JSFAttr;
 import org.apache.myfaces.shared.renderkit.RendererUtils;
@@ -169,13 +170,30 @@ public class OutcomeTargetUtils
         {
             parameters = Collections.emptyMap();
         }
-        // In theory the precedence order to deal with params is this:
-        // component parameters, navigation-case parameters, view parameters
-        // getBookmarkableURL deal with this details.
-        ViewHandler viewHandler = facesContext.getApplication().getViewHandler();
-        String href = viewHandler.getBookmarkableURL(facesContext,
-                navigationCase.getToViewId(facesContext),
-                parameters, navigationCase.isIncludeViewParams() || component.isIncludeViewParams());
+        boolean disableClientWindow = component.isDisableClientWindow();
+        ClientWindow clientWindow = facesContext.getExternalContext().getClientWindow();
+        String href;
+        try
+        {
+            if (clientWindow != null && disableClientWindow)
+            {
+                clientWindow.disableClientWindowRenderMode(facesContext);
+            }
+            // In theory the precedence order to deal with params is this:
+            // component parameters, navigation-case parameters, view parameters
+            // getBookmarkableURL deal with this details.
+            ViewHandler viewHandler = facesContext.getApplication().getViewHandler();
+            href = viewHandler.getBookmarkableURL(facesContext,
+                    navigationCase.getToViewId(facesContext),
+                    parameters, navigationCase.isIncludeViewParams() || component.isIncludeViewParams());
+        }
+        finally
+        {
+            if (clientWindow != null && disableClientWindow)
+            {
+                clientWindow.enableClientWindowRenderMode(facesContext);
+            }
+        }
         // handle fragment (viewId#fragment)
         String fragment = (String) component.getAttributes().get("fragment");
         if (fragment != null)