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;