You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shale.apache.org by gv...@apache.org on 2007/04/21 23:54:51 UTC

svn commit: r531116 - /shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/component/chain/AssignViewRootCommand.java

Author: gvanmatre
Date: Sat Apr 21 14:54:51 2007
New Revision: 531116

URL: http://svn.apache.org/viewvc?view=rev&rev=531116
Log:
Applying patch provided by Torsten Krah.  Clay view component was not setting the Locale using a value binding expression (SHALE-437).

Modified:
    shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/component/chain/AssignViewRootCommand.java

Modified: shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/component/chain/AssignViewRootCommand.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/component/chain/AssignViewRootCommand.java?view=diff&rev=531116&r1=531115&r2=531116
==============================================================================
--- shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/component/chain/AssignViewRootCommand.java (original)
+++ shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/component/chain/AssignViewRootCommand.java Sat Apr 21 14:54:51 2007
@@ -22,11 +22,13 @@
 import java.util.StringTokenizer;
 
 import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
 
 import org.apache.commons.chain.Context;
 import org.apache.shale.clay.config.beans.AttributeBean;
 import org.apache.shale.clay.config.beans.Attributes;
 import org.apache.shale.clay.config.beans.ComponentBean;
+import org.apache.shale.util.Tags;
 
 /**
  * <p>This Command assigns properties to an existing UIViewRoot.
@@ -104,6 +106,14 @@
             if (expr != null) {
                 if (isValueReference(expr)) {
                     getTagUtils().setValueBinding(facesContext.getViewRoot(), "locale", expr);
+                    Object locale = getTagUtils().eval(expr);
+                    if(locale != null && locale instanceof Locale) {
+                      facesContext.getViewRoot().setLocale((Locale) locale);
+                    } else {
+                      // expr does not return something useful yet
+                      Locale calcLocale = facesContext.getApplication().getViewHandler().calculateLocale(facesContext);
+                      facesContext.getViewRoot().setLocale(calcLocale);
+                    }
                 } else {
                     final int language = 0;
                     final int country = 1;