Author: gvanmatre
Date: Tue Nov  1 20:07:26 2005
New Revision: 330187

URL: http://svn.apache.org/viewcvs?rev=330187&view=rev
Log:
Rearranged the processing of the new symbol replacement so that a symbol value 
containing EL will be evaluated.

Modified:
    
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueCommand.java
    
struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/ConfigTestCase.java

Modified: 
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueCommand.java
URL: 
http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueCommand.java?rev=330187&r1=330186&r2=330187&view=diff
==============================================================================
--- 
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueCommand.java
 (original)
+++ 
struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/component/chain/PropertyValueCommand.java
 Tue Nov  1 20:07:26 2005
@@ -83,17 +83,18 @@
         if (tagUtils == null)
             throw new 
NullPointerException(messages.getMessage("clay.null.tagUtils"));
 
+        // replace all symbols returning the target attribute value       
+        String expr = replaceMnemonic(clayContext);
+
         //when using the html templating, javascript and css will have 
matching curly braces {}.
         //and pound sign # too.  
         int pound = -1;
         int leftCurly = -1;
         int rightCurly = -1;
         
-        if (attributeBean.getValue() != null) {
-            pound = attributeBean.getValue().indexOf('#');
-            leftCurly = attributeBean.getValue().indexOf('{');
-            rightCurly = attributeBean.getValue().indexOf('}');            
-        }
+        pound = expr.indexOf('#');
+        leftCurly = expr.indexOf('{');
+        rightCurly = expr.indexOf('}');            
         
         String bindingType = attributeBean.getBindingType();
         if (bindingType == null)
@@ -107,9 +108,6 @@
                         && (child instanceof UIComponentBase));
         //use early binding
         boolean isEarly = 
bindingType.equals(AttributeBean.BINDING_TYPE_EARLY); 
-        
-        
-        String expr = replaceMnemonic(clayContext);
         
         if (isEL && isVB)
            tagUtils.setValueBinding((UIComponentBase) child, 
attributeBean.getName(), expr);

Modified: 
struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/ConfigTestCase.java
URL: 
http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/ConfigTestCase.java?rev=330187&r1=330186&r2=330187&view=diff
==============================================================================
--- 
struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/ConfigTestCase.java
 (original)
+++ 
struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/ConfigTestCase.java
 Tue Nov  1 20:07:26 2005
@@ -639,6 +639,27 @@
            assertEquals("command finished", isFinal, true);       
            assertEquals("value = 10", child.getValue(), "10");
 
+           
+           // test a symbol value of an el value
+           child = (javax.faces.component.html.HtmlOutputText) 
facesContext.getApplication().createComponent("javax.faces.HtmlOutputText"); 
+           assertNotNull("javax.faces.HtmlOutputText", child);
+
+           displayElement.addSymbol("@value", "#{value}");
+           attr.setBindingType(AttributeBean.BINDING_TYPE_EARLY);
+           servletContext.setAttribute("value", "10");
+          
+           clayContext.setFacesContext(facesContext);
+           clayContext.setChild(child);
+           clayContext.setAttribute(attr);
+           clayContext.setDisplayElement(displayElement);
+           // normally done in the AssignChildrenCommand
+           clayContext.setSymbols(displayElement.getSymbols());
+           
+           isFinal = command.execute(clayContext);
+           assertEquals("command finished", isFinal, true);       
+           assertEquals("value = 10", child.getValue(), "10");
+           
+           
     }
     
     



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to