>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 ---

