AutoComplete + listener + primefaces-3.1.1 [Resolvido]

Fala galera …

pessoal tô com um problema aqui …
E nao podia estar enrroscado nisso :expressionless:

Seguinte : tenho o código no XHTML:

<p:autoComplete  maxlength="60" size="60"  id="cep" minQueryLength="3" value="#{formClienteBean.enderecoSelecionado}" effect="fade"
			    				 	completeMethod="#{formClienteBean.autoCompleteEndereco}" var="endereco" itemLabel="#{endereco.cep}" itemValue="#{endereco.id}" >			    				 	 			    				 
			    				 	<p:column style="width:30%" >  
							             #{endereco.cep}   
							        </p:column>  							  
									<p:column style="width:70%" >  
							        	#{endereco.logradouro}
							    	</p:column>  
							    	<p:ajax event="itemSelect" listener="#{formClienteBean.carregaEndereco}"  />
			    				</p:autoComplete> *
			    				<p:message  for="cep" />

no Bean:

public void carregaEndereco(SelectEvent event){
		// nao ta entrando aqui :(
		System.out.println("FormClienteBean.carregaEndereco()");
		Object item = event.getObject();
		FacesMessage msg = new FacesMessage("Selected", "Item:" + item);
	}

Só que o metodo acima não é chamado .
Também ja tentei usar o

valueChangeListener="#{formClienteBean.carregaEndereco}" 

e nada :roll:

O autocomplete tá funcionando certinho. Mas ao selecionar o ítem o Listener não é chamado .

Obrigado a todos que responderem !

Vc tem que apontar o Object item = event.getObject(); para o atributo value do seu autocomplete.

no caso seu endereço.

Opa …

jakefrog você diz fazer um casting ?
assim :

EnderecoBean item = (EnderecoBean) event.getObject();

se for isso beleza. Mas o problema é que o método : carregaEndereco
não está sendo chamado .

coloca um p:ajax com o evento itemselect se não me engano, e manda dar um update no form.

Isso já tava feito.
Só nao tava fazendo um update no form.
Fiz como falou :

<p:ajax event="itemSelect" listener="#{formClienteBean.carregaEndereco}" update="form_cad_cliente"  />

e nada ! :roll:

Tenta fazer igual ao mano aqui: http://www.guj.com.br/java/268266-primefaces-autocomplete-nao-atualiza-xhtml

Eu sei que no final funcionou. =D

heheh
É dei uma olhada lá …
O problema dele era diferente; ele estava setando um atributo no lugar do outro .

Já o meu problema é que o método que deveria ser chamado no evento : itemSelect não é chamado .

coloquei um breakPoint na linha : System.out.println("FormClienteBean.carregaEndereco()");
E ele nunca é alcançado .

Após algumas tentativas; coloquei meu submit com immediate=“true”
E fui testar para ver o que estava chegando como selected no auto complete.
E pra minha surpresa: NULL

Aí olhei o exemplo do site do prime faces e percebi que a única coisa diferente é que lá havia sido implementado um converter.
Implementei um converter para o meu objeto : Endereço e agora tudo funcinou.
Peisei que o converter era apenas para os casos que eu queria retornar o objeto. Como eu precisava só do id do endereço. Achei que nao precisava dele.

então é isso.

Coloquei um converter e tudo funcionou .

<p:autoComplete  maxlength="60" size="60"  id="cep" minQueryLength="3" value="#{formClienteBean.enderecoSelecionado}" effect="fade" converter="CepConverter" completeMethod="#{formClienteBean.autoCompleteEndereco}" var="endereco" itemLabel="#{endereco.cep}" itemValue="#endereco.id}" >

jakefrog, obrigado pela atenção !