:: Iterando o UIData em componentes JSF customizados

Pessoal,

Estou com uma duvida e não estou conseguindo resolver… estou desde semana passada tentando encontrar uma solução para este problema, que parece ser simples, mas que esta me deixando de cabelo em pé.

Estou construindo um componente JSF do formato de tabela. Não pude estender nenhuma implementação por exigencia de meu cliente.

A dificuldade esta sendo a seguinte.

Tenho os componentes:

<app:scroll value="#{bean.lista}" var="contato">
	<app:column>
		<f:facet name="header">
			<h:outputText value="Nome" />
		</f:facet>
		<h:outputText value="#{contato.nome}" />
	</app:column>
	<app:column>
		<f:facet name="header">
			<h:outputText value="E-mail" />
		</f:facet>
		<h:outputText value="#{contato.email}" />
	</app:column>
	<app:column>
		<f:facet name="header">
			<h:outputText value="Telefone" />
		</f:facet>
		<h:outputText value="#{contato.telefone}" />
	</app:column>
</app:scroll>

Notem que os componentes que eu estou implementando são os da tag scroll e column.

A dificuldade esta sendo em conseguir que o componente h:outputText que é filho do app:column entenda a referencia “contato” do binding, para que consiga fazer a chamada dos métodos.

Em outras palavras, não estou conseguindo fazer com que os valores sejam impressos nas colunas.

Meu componente principal, Scroll estende UIData.

Alguém pode me dar uma luz ou passar algum link que me ajude?

[]'s

Pessoal,

Eu consigo recuperar no método encodeChildren do componente Column o objeto do UIData:

UIScrollableDataTable parent = (UIScrollableDataTable)component.getParent();
Object obj = parent.getRowData();

O problema agora esta sendo no seguinte:

A renderização das informações contidas no objeto iterado é feita pelo componente h:outputText.

no meu encodeChildren eu chamo:

RendererUtils.renderChildren(context, component);

Para que os filhos sejam renderizados, mas não esta renderizando as informações…

Como eu faço para deixar que o objeto da iteração fique acessível para o componente filho???

Eu tentei setá-lo no map de atributos, mas mesmo assim não funciona.