Pessoal… estou com o seguinte problema :
Devo fazer com que 5 selectOneMenu estejam interligados em cascata. Ex: tenho um com o país… ao ser selecionado um país, no segundo combo mostro os estados disponíveis para aquele país… no terceiro, dependendo do filtro do estado, mostro as cidades… e assim sucessivamente.
Eis que o meu managed-bean está com escopo de requisição e os selectOneMenu estão todos configurados para acessarem o um valueChangeListener que eu configurei no meu bean… ex:
<h:selectOneMenu id="selectCategoriaEmpresa" value="#{dialogoBean.pojo.empresa.categoria.id}" style="width: 305px" onchange="submit()" valueChangeListener="#{dialogoBean.selecionarCategoriaEmpresa}" >
<f:selectItems value="#{dialogoBean.categoriaItemHelper.itens}" />
</h:selectOneMenu>
<h:selectOneMenu id="selectEmpresa" value="#{dialogoBean.pojo.empresa.id}" style="width: 305px" rendered="#{dialogoBean.mostraListaEmpresa}" onchange="submit()" valueChangeListener="#{dialogoBean.selecionarEmpresa}" >
<f:selectItems value="#{dialogoBean.empresaItemHelper.itens}" />
</h:selectOneMenu>
<h:selectOneMenu id="selectUnidade" value="#{dialogoBean.pojo.unidade.id}" style="width:305px;" rendered="#{dialogoBean.mostraListaUnidade}" onchange="submit()" valueChangeListener="#{dialogoBean.selecionarUnidade}" >
<f:selectItems value="#{dialogoBean.unidadeItemHelper.itens}" />
</h:selectOneMenu>
e no meu bean tenho os métodos listeners todos bonitinhos com a assinatura correta, como em
public void selecionarCategoriaEmpresa(ValueChangeEvent event);
No lançamento do primeiro evento(do primeiro combo que é o único visível na primeira atualização), tudo corre às mil maravilhas e o evento apropriado é realente chamado. Nele eu seto as flags de renderização dos componentes e os filtros(que também estão funcionando corretamente).
Acontece que no segundo passo, quando eu deveria ter o primeiro e o segundo combo habilitados e setados para os seus respectivos valueChangeListeners, ao executar uma mudança no segundo combo, para o meu desespero, o evento do primeiro é que é disparado e executado com sucesso, mas o segundo que é bom, nada…
Já tentei de inúmeras formas fazer da forma esperada este esquema funcionar, todas sem sucesso… já estou fazendo uma gambiarra, mas gostaria muito de fazer de um jeito mais elegante.
Alguém pode me dar uma luz?!?!?
p.s. -> Não há erros de validação no processo e eu já utilizei o immediate