>From: "Nebinger, David" <[EMAIL PROTECTED]> 
>
> > Speaking of options, it is also my opinion that inheritance is 
> > one of the core properties of object oriented programming and 
> > has its place within interface design. 
> 
> Inheritance no, but templating yes. Just because the guy said 
> inheritance, I think he really meant templating. 
>


No, I actually mean visual inheritance as it relates to templating.  What I'm 
talking about is meta-data inheritance in addition to composition.  This is 
taken in the context that templates are a meta-data layer that can come from 
various sources (annotations in the future).  Being able to create a 
composition of components, an address panel for instance, and then extend it 
adding or overriding widgets.   The ability to create a dictionary of reusable 
visual compositions and have the ability to extend or override.

Consider a couple more simple examples:

Reusable metadata:
 <component jsfid="baseCommand" extends="commandButton">
  <attributes>
   <set name="styleClass" value="button" />
   <set name="value" value="#{messages['@label']}" />
   <set name="action" value="[EMAIL PROTECTED]@actionEvent}" />
  </attributes>
 </component>

 <component jsfid="saveCommand" extends="baseCommand">
  <symbols>
   <set name="@label" value="Save" />
   <set name="@actionEvent" value="save" />
                        <set name="@backingBean" value="mybean" />
  </symbols>
 </component>


Clay HTML template:

<h:commandButton extends="saveCommand" />
or  
<input jsfid=saveCommand type=submit/>
or 
<input jsfid=baseCommand type=submit value=Save label=Save actionEvent=save 
backingBean=mybean  />

Within JSP:

<clay:clay jsfid="saveCommand" />

or 
<clay:clay id="saveCommand" jsfid="saveCommand" />

or 
<clay:clay id="saveCommand" jsfid="baseCommand" />
    <symbol name="@label"       value="Save"/>
    <symbol name="@actionEvent" value="save"/>
    <symbol name="@backingBean" value="myberan" /> 
</clay:clay>



Gary

> 
--- Begin Message ---

<<winmail.dat>>


--- End Message ---

Reply via email to