Hi,

if UIXComponent.processFlattenedChildren() is to be used, I cannot do this,
because it seems to complecated at the first look; I would have to get into
that, which would take me to much time.

I tried another solution, but I'm not sure, whether this is correct, because
it ommits calling component.encodeBegin(), component.encodeEnd() etc. for
the FlattenedComponent (which normally super.encodeChild() does).
This solution looks like that (just adding the following to
RowLayoutRendered.encodeChild(FacesContext, UIComponent)):

else if (child instanceof FlattenedComponent)
{
  encodeAllChildren(context, child);
}

Maybe someone of the developers can do this fix/improvement/enhancement,
because I think having the possibility to use UIXGroup inside HtmlRowLayout
without getting the ugly "illegal HTML"-message would be a nice feature.

Regard,
Marco


Matt Cooper-2 wrote:
> 
> I also forgot tr:switcher--tr:swicher, tr:group, and tr:terator implement
> FlattenedComponent which is what would be accommodated by such a change.
> 
> http://myfaces.apache.org/trinidad/trinidad-1_2/trinidad-api/apidocs/org/apache/myfaces/trinidad/component/FlattenedComponent.html
> 
> Regards,
> Matt
> 
> 
> On Fri, Mar 6, 2009 at 8:34 AM, Matt Cooper <mcoo...@apache.org> wrote:
> 
>> Hi Marco,
>>
>> Actually I think RowLayoutRenderer just needs to perform the
>> UIXComponent.processFlattenedChildren() just like is done in
>> PanelFormLayoutRenderer to supports component flattening.  This would
>> give
>> you that effect that you desire but also will flatten a tr:iterator
>> wrappers.
>>
>> Regards,
>> Matt
>>
>>
>> On Fri, Feb 20, 2009 at 4:20 AM, Marco Grimm <
>> marco.gr...@rz-service-mannheim.de> wrote:
>>
>>> Hi,
>>>
>>> it would be nice/helpful if RowLayoutRenderer would overwrite
>>> "encodeAllChildren(...)" in that way, that for UIXGroup it should not
>>> pass
>>> the UIXGroup itself to "encodeChild(...)", but the children of the
>>> UIXGroup.
>>> This would have the result, that one could put several columns into one
>>> UIXGroup and set them all to rendered = false by just setting the group
>>> to
>>> rendered = false. This is not possible at the moment, because the
>>> overwrite
>>> of "encodeChild(...)" in RowLayoutRenderer renders "td" for all
>>> components
>>> ecxept HtmlCellFormat, which leeds to "INVALID HTML:" if you put columns
>>> into a UIXGroup inside HtmlRowLayout.
>>> Please tell me if you would except this change if I would submit such a
>>> patch.
>>>
>>> Best regards
>>> Marco Grimm
>>>
>>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/-Trinidad--UIXGroup-inside-HtmlRowLayout-is-leading-to-%22INVALID-HTML%22-if-it-contains-HtmlCellFormat%28s%29-tp22119660p22413302.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.

Reply via email to