I am also hedging towards the older syntax because I have found it
very flexible and I am worried that the new syntax may be limiting.
For example, I am using the following component for labels

<component jsfid="label" extends="clayOut" allowBody="false">
<attributes>
       <set name="value" value="&lt;label
for=&quot;@labelFor&quot;&gt;@labelName:&lt;/label&gt;" />
       <set name="excapeXml" value="false" />
</attributes>
</component>

I am not sure this could be done with the new syntax.


On 11/16/05, Gary VanMatre <[EMAIL PROTECTED]> wrote:
> We had some discussion on changing the Clay symbols to make them more JSF 
> like.  I wanted to regroup on this to make sure that this is something that 
> we want to change.
>
> The symbols allow customizing a subtree under the JSF component tree without 
> using inheritance.  We described the differences as being horizontal 
> customization versus vertical.
>
> I'll give a refresher example from the ConfigTestCase.
>
> http://svn.apache.org/viewcvs.cgi/struts/shale/trunk/clay-plugin/src/test/org/apache/shale/clay/config/ConfigTestCase.java?view=markup
> public void testSymbolInheritance()
>
> Base XML config defines a style attribute where the value is a symbol.  The 
> default value is also established.
>
> <component jsfid="baseSymbolLabel" extends="outputLabel" allowBody="false">
>   <attributes>
>       <set name="style" value="@mystyle"/>
>   </attributes>
>   <symbols>
>       <set name="mystyle" value="color:blue"/>
>   </symbols>
> </component>
>
>
> There are three ways to use symbols.
>
> 1) HTML:
>
> <label jsfid="baseSymbolLabel" allowBody="true" mystyle="color:yellow">Label 
> Text:</label>
>
> 2) JSP:
>
> <clay:clay jsfid="baseSymbolLabel" id="mySymbol">
>    <clay:sybmol name="mystyle" value="blue"/>
> </clay:clay>
>
> 3) XML:
> <component jsfid="symbol2Label" extends="symbol1Label" allowBody="false">
>   <symbols>
>       <set name="mystyle" value="color:red"/>
>   </symbols>
> </component>
>
> <component jsfid="symbolPanel" extends="panelGrid">
>   <element renderId="1" jsfid="symbol1Label" />
>   <element renderId="2" jsfid="symbol1Label">
>               <symbols >
>                    <set name="mystyle" value="color:red"/>
>               </symbols>
>   </element>
> </component>
>
>
>
> The current syntax allow for partial replacement.  The symbol is replaced 
> prior to creating a binding expression.
>
> <set name="action" value="managed-bean-name.saveAction }"/>
> <set name="action" value="@class"/>
> <set name="action" value="[EMAIL PROTECTED]"/>
>
> We proposed that we make the syntax more JSF oriented.
>
> <set name="action" value="#{shale:managed-bean.saveAction }"/>
> <set name="action" value="#{shale:attribute.class }"/>
> <set name="action" value="#{shale:managed-bean.attribute.class}"/>
>
>
> The new syntax would be more EL like but would require a custom property 
> resolver.
> The new syntax would not allow for partial replacement.
> The new syntax would require creating a wrapper Method and Value binding to 
> hold the symbols overrides.
>
> The old syntax is foreign but allows for partial replacement.
> The old syntax resolves the expression before EL binding so exceptions report 
> the expression post symbol merger.
>
>
> Well, I'm kind of hedging toward the older syntax.  Any thought?
>
> Gary
>

Reply via email to