[jsr-314-open] Providing the ability to instantiate EzCompcomponents in Java code

Norbert Truchsess norbert.truchsess at t-online.de
Sun Aug 2 06:04:16 EDT 2009


What do you mean by 'multiple class implementations'?

If the type is specified in component:interface, there's exactly one
type for this template. And I think it's reasonable to allow multiple
templates for the same component-type, so one can switch the look' feel
without altering the functionality (and so to say the 'interface').

Being able to back a composite-component-template with a custom
component-class would be very beneficial for those building
component-libraries to be used by third parties, because the choice of
implementing a real renderer or just use a template wouldn't influence
the way a component is being used in java. And such component might
completely mask the fact that it's just the root of a whole bunch of
other components.

Picture a form that allows to enter an address - it might provide the
address being entered as an Object of type Address, instead of having
just an attribute-map where you find attributes 'name', 'city' and
'street'. This way you can bind the complex-typed value of a
composite-component directly to your backing bean.

And the user doesn't like the look'n feel he just might override the
template of a given component by specifying the type of this component
in his own template.

- Norbert

Am Samstag, den 01.08.2009, 15:00 +0000 schrieb lincolnbaxter at gmail.com:
> Agreed, I don't see much value in multiple class implementations.
> 
> Sent from my Verizon Wireless BlackBerry
> 
> 
> ______________________________________________________________________
> From: Kito Mann 
> Date: Sat, 1 Aug 2009 10:47:36 -0400
> To: <jsr-314-open at jcp.org>
> Subject: Re: Providing the ability to instantiate
> EzComp components in Java code
> 
> 
> +1
> 
> We should, however, leave the type mechanism in tact (i.e. the current
> association between a composite component template and a class file
> should remain the same). I think supporting multiple classes for the
> same template overly complicates things, and I don't see a common use
> case.
> ---
> Kito D. Mann -- Author, JavaServer Faces in Action
> http://twitter.com/kito99  http://twitter.com/jsfcentral
> http://www.virtua.com - JSF/Java EE consulting, training, and
> mentoring
> http://www.JSFCentral.com - JavaServer Faces FAQ, news, and info
> +1 203-404-4848 x3
> 
> 
> On Fri, Jul 31, 2009 at 5:27 PM, Norbert Truchsess
> <norbert.truchsess at t-online.de> wrote:
>         +1 from my side.
>         
>         I wander whether we even might go a step further and allow to
>         optionally
>         assign a 'real' UIComponent-class to an EzComp-Component (one
>         that has
>         JavaBean getter/setter methods instead of the untyped
>         attribute-map
>         only).
>         
>         Then one could do the following in java:
>         
>         MyFancyUIComponent comp =
>         (MyFancyUIComponent)Application.createComponent("http://java.sun.com/jsf/composite/myfancynamespace:component");
>         
>         comp.setMyAttribute(myAttributeTypedObject);
>         
>         ...
>         
>         Of course when just using the EzComp-component in xhtml the
>         UIComponent
>         being created by the Facelet would by of the same type.
>         
>         That would make EzComp-components look indistinguishable from
>         a 'real'
>         UIComponent in java ;-)
>         
>         - Norbert
>         
>         
>         Am Freitag, den 31.07.2009, 11:20 -0400 schrieb Dan Allen:
>         
>         > This is a somewhat old request from Lincoln Baxter that I
>         don't think
>         > ever made it to the list. After reviewing the message, I too
>         feel it
>         > is worth discussing for JSF 2.1.
>         >
>         > ---------- Forwarded message ----------
>         > From: Lincoln Baxter, III <lincolnbaxter at gmail.com>
>         > Date: Thu, Mar 5, 2009 at 10:25 PM
>         > Subject: Providing the ability to instantiate EzComp
>         components in
>         > Java code
>         > To: jsr-314-comments at jcp.org
>         >
>         > I feel there is value in the ability to instantiate an
>         EzComp object
>         > in Java so that a component tree can be built in a backing
>         bean (or
>         > other Class). JSF must be doing this in the background
>         through
>         > Facelets, so providing this ability in Java should not be
>         too
>         > difficult.
>         >
>         > Referencing an object by its namespace should be sufficient:
>         >
>         > UIComponent comp = Application.createComponent(FacesContext,
>         > "http://java.sun.com/jsf/composite/mynamespace:component").
>         >
>         > Attributes would be assigned via the normal method:
>         >
>         > comp.getAttributes().put("rendered", false);
>         >
>         > This would greatly extend the reach of EzComp objects.
>         >
>         > Thanks,
>         > Lincoln
>         >
>         >
>         > PS... re-posted here on suggestion of Ryan Lubke
>         
>         
> 





More information about the jsr-314-open-mirror mailing list