Dúvida Genesis com 2 Combos

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.

:wink:

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);
    }