Pessoal, estou desenvolvendo uma aplicação web com JSF + ICEFaces.
Em uma tela, tenho 4 combo box, sendo os 3 últimos funcionam em cascata (é preciso modificar o primeiro, para o valor aparecer “filtrado” nos outros).
3 desses combos estão associados a eventos para ocorrer a troca dos valores.
Eu tenho essa classe no meu manager bean para fazer essa troca de valores:
public class ListenerComboOnChange implements ValueChangeListener {
public void processValueChange(ValueChangeEvent pEvent) throws AbortProcessingException {
if (Util.isNotNullOrEmpty(pEvent.getNewValue())) {
//Verificar se o combo alterado é o de Entrância ou de Comarca
if (pEvent.getComponent().getId().equals("comboUnidadePai")) {
mudarUnidadePai(pEvent);
}
else {
if (pEvent.getComponent().getId().equals("comboEntrancia")) {
mudarEntrancia(pEvent);
}
else {
if (pEvent.getComponent().getId().equals("comboComarca")) {
mudarComarca(pEvent);
}
else {
return;
O que acontece de errado é o seguinte:
Quando eu seleciono o primeiro combo (unidade pai), ele entra em todos os if´s, ou seja, ele primeiro o id correto, mas depois adquire tb os outros, e vai entrando um por um.
Quando eu seleciono o segundo combo (entrancia), ele adquire o primeiro id (comboUnidadePai). entra no primeiro if, depois adquire os outros id´s tb.
Já li alguns tópicos sobre o assunto, mas não consegui implementar nenhuma solução que fizesso isso funcionar corretamente.
Se alguém tiver alguma ideia do que está acontecendo, por favor poste ai.