Alguem já fez ou teve este “problema” utilizando o genesis:
Tenho uma tela que tem 2 combos:
1 - Lista de Categorias
2 - Lista de Subcategorias
Quando selecionar a primeira categoria preenche o segundo combo com a lista de subcategorias.
@DataProvider(objectField = "categoria", callOnInit = true)
public List populaCategoria() {
List<EstCategoria> categoriaList = new ArrayList<EstCategoria>();
.....
return categoriaList;
}
até aqui tudo bem mas quando houver a mudança de categoria o que faço para preencher o segundo de arcodo com o primeiro?
No seu DataProvider de subcategorias coloque
@DataProvider(objectField = "subCategoria", callOnInit = false)
@CallWhen("genesis.hasChanged('form:categoria')")
Para duvidas, também pode utilizar a lista do genesis.
Ixi tava na minha cara e não vi.
Tinha visto a anotação CallWhen mas não entendi direito o que ela fazia e esqueci de testar.
Deu certo obrigado pela ajuda.

Cara agora to com outro problema quando vou editar tenho que preecher o form com os dados vindos do hibernate,
e somente o campo de subcategoria fica vazio, mas ele não esta vazio quando ele faz o setSuCagetoria.
Ou seja ele não seleciona e ainda remove a lista que ele tinha.
//TRECHO QUE PREENCHE O OBJETO FORM
EstProduto produto = produtoDAO.getProduto(EstProdutoGui.id);
setCodigo(produto.getCodigo());
setNomeProduto(produto.getNome());
setFornecedor(produto.getFornecedor());
setCategoria(produto.getCategoria());
setSubCategoria(produto.getSubcategoria()); //<--
setQtdEstoque(produto.getQtdEstoque());
setQtdMinimo(produto.getQtdMinimo());
setDescontoVista(produto.getDescontoVista());
setDescontoPrazo(produto.getDescontoPrazo());
setPreco(produto.getPreco());
setObservacao(produto.getObservacao());
//CODIGO DOS COMBOS
@DataProvider(objectField = "categoria", callOnInit = true)
public List populaCategoria() {
List<EstCategoria> categoriaList = new ArrayList<EstCategoria>();
EstCategoriaDAO categoriaDAO = new EstCategoriaDAO();
categoriaList = categoriaDAO.getCategoria();
return categoriaList;
}
@DataProvider(objectField = "subCategoria", callOnInit = false)
@CallWhen("genesis.hasChanged('form:categoria')")
public List populaSubCategoria() {
EstSubCategoriaDAO subCategoriaDAO = new EstSubCategoriaDAO();
return subCategoriaDAO.getSubCategorias(categoria);
}