>From: Richard Wallace <[EMAIL PROTECTED]> 
>
> Hello, 
> 
> I'd like to extend the inputSecret component and give the new component 
> an added attribute. Basically, what I want to do is create a component 
> that has the tomahawk equal validator attached to it. So, what I've got 
> now is: 
> 
>
><view>
>  <component jsfid="t:validateEqual" 
>componentType="org.apache.myfaces.validator.Equal">
>    <attributes>
>      <set name="for" bindingType="Early" />
>    </attributes>
>  </component>
> 
>  <component jsfid="inputPasswordVerification" extends="inputSecret">
>    <validator jsfid="t:validateEqual">
>      <attributes>
>          <set name="for" value="password"/>
>      </attributes>
>    </validator>
>  </component>
></view>
>
> 
> What I'd like to be able to do is replace the attribute for "for" with 
> something more like "@for" or something so that I can use the component 
> like: 
> 
><input type="password" jsfid="inputSecret" id="password" />
><input type="password" jsfid="inputPasswordVerification" for="password" />
>
> Can I add an attribute like that in clay? That would be very cool. 
> 


You should totally be able to do this using Clay.  There is a very similar 
example in the symbols (symbols/page3.html) usecases.  There's one more layer 
than you need in your example.

Includes an html template from the class path passing symbols label, property, 
size, maxlenght, required and immediate.
    <tr 
jsfid="classpath*:org/apache/shale/usecases/symbols/inputTextWidget.html" 
label="First Name:" 
        property="firstName" size="20" maxlength="30" 
        required="true" immediate="false"/>

The "org/apache/shale/usecases/symbols/inputTextWidget.html" template is used 
for layout.  It's bound to some base XML config data.
<tr>
   <td><label jsfid="widgetsLabel">Mock Label:</label></td>
   <td><input jsfid="widgetsText" type="text"/></td>
   <td><span jsfid="widgetsMessage">Mock Message</span><td>
</tr>

The base config definitions are defined in "WEB-INF/clay-symbols-config.xml"
        <component jsfid="widgetsLabel" extends="baseLabel"> 
     <attributes>
     <set name="value" value="@label" />  
     <set name="for"   value="@property" />
     </attributes>
 </component>    
 <component jsfid="widgetsText" extends="inputText" id="@property"> 
     <attributes>
        <set name="value" value="[EMAIL PROTECTED]@property}"/>  
     <set name="size" value="@size" />
     <set name="maxlength" value="@maxlength" />
     <set name="required" value="@required" />
     <set name="immediate" value="@immediate"/>
     </attributes>
 </component>
 <component jsfid="widgetsMessage" extends="baseMessage" > 
     <attributes>
        <set name="for" value="@property" />  
     </attributes>
 </component>


> Thanks, 
> Rich 

Gary

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

Reply via email to