Paginação sob demanda

Fala galera.

To com um probleminha.

Implementei uma paginação sob demanda criando uma classe que extende de dataModel que está funcionando normalmente, porém não consigo atribuir valor a minha entidade da lista.

Minha entidade tem um transient booleano que será setado por um checkbox dentro do meu dataTable.

Depois de escolher o checkbox e clicar no botao faço um for na lista pra ver quem foi selecionado, porem nenhum objeto ta com o valor true. Se eu colocar um ListDataModel normal, ele funciona tranquilo mas sem a paginação sobDemanda.

Minha lista:


private PagedDataModel listagem;

Minha classe PagedDataModel que utilizo para ser inserido no dataTable:


public class PagedDataModel extends DataModel {

	private int rowIndex = -1;

	private int totalNumRows;

	private int pageSize;

	private List list;

	public PagedDataModel() {
		super();
	}

	public PagedDataModel(final List list, final int totalNumRows) {
		super();
		setWrappedData(list);
		this.totalNumRows = totalNumRows;
		this.pageSize = list.size();
	}
	
	public PagedDataModel(final List list) {
		super();
		setWrappedData(list);
		this.pageSize = list.size();
	}

	@Override
	public boolean isRowAvailable() {
		if(list == null)
			return false;

		final int rowIndex = getRowIndex();
		if(rowIndex >=0 && rowIndex < list.size())
			return true;
		else
			return false;
	}

	@Override
	public int getRowCount() {
		return totalNumRows;
	}

	@Override
	public Object getRowData() {
		
		if(list == null)
			return null;
		else if(!isRowAvailable())
			throw new IllegalArgumentException();
		else {
			final int dataIndex = getRowIndex();
			return list.get(dataIndex);
		}
	}

	@Override
	public int getRowIndex() {
		return (rowIndex % pageSize);
	}

	@Override
	public void setRowIndex(final int rowIndex) {
		this.rowIndex = rowIndex;
	}

	@Override
	public Object getWrappedData() {
		return list;
	}

	@Override
	public void setWrappedData(final Object list) {
		System.out.println("");
		this.list = (List) list;
	}

Meu dataTable:

<t:dataTable border="0" id="dataSistema" value="#{mbean.listagem}" var="item" >											
	<t:column id="clnSeleciona">
		<f:facet name="header">													
			<h:selectBooleanCheckbox id="slcSelecionaTodos" onclick="javascript: return marcarTodos('_form:dataSistema:slcSelecionaTodos');" />							
		</f:facet>
		<h:selectBooleanCheckbox id="slcSelecionado" value="#{item.selecionado}" />						
	</t:column>
.
.
.

For na lista pra pegar os selecionados:

for (int i = 0; i < getListagem().getRowCount(); i ++) {
	getListagem().setRowIndex(i);
	final Empreendimento empreendimento = (Empreendimento) getListagem().getRowData();

	if (empreendimento.getSelecionado()) {
		//action
	}
}

Alguem tem uma luz???

creio que sei qual pode ser o problema!

pelo que percebi tem uma lista onde seleciona um ou vários em um checkbox (linha 6 do Meu dataTable).

O problema pode estar no envio da jsp para a action os valores selecionado. Tenta colocar a propriedade name na tab do check, pois sem essa propriedade não será enviado para action o valor!

Fala viniciuspadua.

[quote=viniciuspadua]

O problema pode estar no envio da jsp para a action os valores selecionado. Tenta colocar a propriedade name na tab do check, pois sem essa propriedade não será enviado para action o valor![/quote]

Não entendi onde colocar a propriedade name.
Procurei e so possui essa propriedade no f:facet e que ja esta definida.

 <h:selectBooleanCheckbox name="slcSelecionado" id="slcSelecionado" value="#{item.selecionado}" />

Meu eclipse nao reconhece essa propriedade name, mas coloquei assim mesmo.

Rodei e nao funcionou da mesma maneira.

Alguém?