[Resolvido] JSF - SelectManyCheckbox com campos extras

Preciso de uma lista de checkbox com inputText’s do lado. Esses campos ‘extras’ guardarão valores de atributos do objeto usado para formar o SelectManyCheckbox.

Para ilustrar:

  • A lista:
class MBean {
...
	private List<Objeto> lista;
	//Get & Set
...
}
  • O objeto:
class Objeto {
	private int id;
	private String desc;
	private double preco;
	//Getters & Setters
}
  • O componente:
<p:selectManyCheckbox>
	<f:selectItems value="#{mBean.lista}" var="objeto" itemValue="#{objeto.id}" itemLabel="#{objeto.desc}" />
</p:selectManyCheckbox>

O layout do que eu quero ficaria assim:
Selecione um e informe o respectivo valor:
[ ]desc1 valor: []
[x]desc2 valor: [30,00]
[ ]desc3 valor: [
]
etc.

Consegui resolver. Fiz o seguinte: ao invés de usar <p:selectManyCheckbox /> tive que optar por uma alternativa mais “bruta”.
Usei a tag <c:forEach /> do JSTL para listar meus campos e criei um atributo booleano no Objeto para guardar a marcação do checkbox. Ficou assim:

<c:forEach items="#{mBean.lista}" var="objeto" >
	<p:row>
		<p:column>
			<h:selectBooleanCheckbox value="#{objeto.marcado}" />
		</p:column>
		<p:column>
			<h:outputLabel value="#{objeto.desc}" />
		</p:column>
		<p:column>
			<h:outputLabel value="Valor:" />
		</p:column>
		<p:column>
			<p:inputText value="#{objeto.valor}" />
		</p:column>
	</p:row>
</c:forEach>

Para pegar os valores no ManagedBean, fiz o seguinte:

public void adicionar() { for (Objeto objeto : lista) { if(objeto.getMarcado()) { //Processamento } } }
Espero que ajude alguém.
Abraços.