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)