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]