[RESOLVIDO]checkBox para selecionar todos os registros de uma datatable

Boa tarde,

estou em um projeto que usa Jboss Seam e Icefaces.

Em uma das minhas telas eu tenho no header de uma datatable um selectBooleanCheckbox que quando selecionado deveria selecionar todos os checkboxes que existe para cada registro da datatable.
Uma especie de “select all”.

Pois bem, esse checkBox está com partialSubmit=“true”, e ele seta os valores no backbean que corresponde ao valor booleano(checkbox) do registro na tabela como true. Entretanto como não há um submit(é apenas um checkbox, não um botão), a datatable não é re-renderizada.

Muito grato por qualquer ajuda.

Importação.xhtml

<ice:column>
    <f:facet name="header">
	<ice:panelGroup>
 		<center>
               <ice:selectBooleanCheckbox valueChangeListener="#{importacaoNaturezaBean.selecionaTodos}"  partialSubmit="true"/>
               </center>
	</ice:panelGroup>
    </f:facet>
    <center>
    <ice:selectBooleanCheckbox valueChangeListener="#{importacaoNaturezaBean.doThings}" value="#{_obj.marcado}" partialSubmit="true"/>
    </center>
</ice:column>

ImportaçãoNaturezaBean

public void selecionaTodos(ValueChangeEvent e){
		if(e.getNewValue().equals(true)){
			for(ContratoNatureza contratoNatureza: listObj)
				contratoNatureza.setMarcado(true);
		}
		else for(ContratoNatureza contratoNatureza: listObj)
			contratoNatureza.setMarcado(false);
			
		
	}

Consegui resolver meu problema.

A solução encontrada foi fazer uma verificação na fase do ciclo de vida JSF no meu bean:

public void selecionaTodos(ValueChangeEvent event){
	
    /*Verificação adicionada*/	
        if(!event.getPhaseId().equals(PhaseId.INVOKE_APPLICATION)){
            event.setPhaseId(PhaseId.INVOKE_APPLICATION);
            event.queue();
            return;
        }
		
		if(event.getNewValue().equals(true)){
			for(ContratoNatureza contratoNatureza: listObj)
				contratoNatureza.setMarcado(true);
		}
		else for(ContratoNatureza contratoNatureza: listObj)
			contratoNatureza.setMarcado(false);
			
		
	}

Auf Wiedersehen!!!