We used the component family because we need to conditionally choose
what kind of event is needed to determine the submit condition.
That's not possible from the base interfaces. input fields require
keypress, select menus require change, and so on.
Worse case, the end-user can override it. We can specifically add in
the trinidad component family string values without creating a
dependency on Trinidad however, if someone provides them.
On 6/1/07, Matthias Wessendorf <[EMAIL PROTECTED]> wrote:
> >> @martin: I rely on the ComponentFamily, do you know if input fields in
> >> Trinidad use UIInput.COMPONENT_FAMILY and commands
> >> UICommand.COMPONENT_FAMILY?
> >> Alternatively I check the class using instanceof UIInput|UICommand, but
> >> this I know can not work with Trinidad.
> >
> > EditableValueHolder / ActionSource ?
> Still, what about ComponentFamily?
Ok, a brief overview of the class hierarchy (only of the command/input):
UIComponent (javax.faces.***)
-UIXComponent (org.apache.myfaces.**)
-UIXComponentBase
-UIXValue
-UIXEditableValue
-UIXInput
-CoreInputText
...
-UIXSelectMany
-CoreSelectManyCheckbox
...
-UIXCommand
-CoreCommandButton
...
and, the COMPONENT_FAMILY and COMPONENT_TYPE are:
UIXEditableValue: "org.apache.myfaces.trinidad.EditableValue" (FAMILY and TYPE)
UIXCommand: "org.apache.myfaces.trinidad.Command" (FAMILY and TYPE)
But, the problem is, that Family/Type are strings. Why not going
against the "base" interfaces, provided by JSF ?
-javax.faces.component.EditableValueHolder
-javax.faces.component.ActionSource
> Ciao,
> Mario
>
>
--
Matthias Wessendorf
further stuff:
blog: http://matthiaswessendorf.wordpress.com/
mail: matzew-at-apache-dot-org