Grid JSF com Lazy + Order + Filter que realmente funciona :-)

Olá amigos, estou feliz em dizer que até que enfim saiu um Framework para JSF 2.0 com Grid que Funciona.

É a versão 2.2 do Primefaces, no exemplo do site não tem mas se voces pegarem os fontes verão como é simples e facil criar um Grid com Ordenação + Filtro e buscando os dados no Banco via JPA.

Segue o link para baixar via svn: http://primefaces.googlecode.com/svn

Só para efeito de demostração segue o trecho do codigo que faz a magica ok:

lazyModel = new LazyDataModel<CepEndereco>() {

            /**
             * Dummy implementation of loading a certain segment of data.
             * In a real application, this method should load data from a datasource
             */
            @Override
            public List<CepEndereco> load(int first, int pageSize, String sortField, boolean sortOrder, Map<String, String> filters) {
                logger.log(Level.INFO, "Loading the lazy cependereco data between {0} and {1}", new Object[]{first, (first + pageSize)});

                List<CepEndereco> lazyCepEnderecos = new ArrayList<CepEndereco>();
                //Sorting and Filtering information are not used for demo purposes just random dummy data is returned

                if (sortOrder) {
                    cDirect = " asc";
                } else {
                    cDirect = " desc";
                }
                if (filters.size() > 0) {
                    if (sortField == null) {
                        sortField = "a.num_cep";
                    } else if (sortField.equals("numCep")) {
                        sortField = "a.num_cep";
                    } else if (sortField.equals("dscLogradouro")) {
                        sortField = "a.dsc_logradouro";
                    } else if (sortField.equals("cepBairro.dscBairro")) {
                        sortField = "b.dsc_bairro";
                    } else if (sortField.equals("cepBairro.cepCidade.dscCidade")) {
                        sortField = "c.dsc_cidade";
                    } else if (sortField.equals("cepBairro.cepCidade.cepUf.codUf")) {
                        sortField = "d.cod_uf";
                    }

                    lazyCepEnderecos = cepEnderecoJPA.findCepEnderecoNative(pageSize, first, sortField, cDirect, filters);
                } else {
                    if (sortField != null) {
                        sortField = "o." + sortField;
                    } else {
                        sortField = "o.numCep";
                    }
                    lazyCepEnderecos = cepEnderecoJPA.findCepEnderecoEntities(pageSize, first, sortField, cDirect);
                }
                return lazyCepEnderecos;
            }
        };

OBS: Somente funciona na versão 2.2 que ainda esta em fase de desenvolvimento ok

O Primefaces para mim já é o framework ou suite de componentes principal para JSF.
Muito simples e fácil de usar.
Mais do que recomendo usar ele…
Irei testar esse grid o mais rápido possível…:slight_smile: