├── .gitignore ├── README.md ├── pom.xml └── src └── main ├── java └── com │ └── algaworks │ └── financeiro │ ├── controller │ └── ConsultaLancamentosBean.java │ ├── model │ ├── Lancamento.java │ ├── Pessoa.java │ └── TipoLancamento.java │ ├── repository │ ├── FiltroLancamento.java │ └── Lancamentos.java │ └── util │ └── EntityManagerProducer.java ├── resources └── META-INF │ ├── beans.xml │ ├── persistence.xml │ └── sql │ └── dados-iniciais.sql └── webapp ├── ConsultaLancamentos.xhtml ├── META-INF └── context.xml ├── WEB-INF ├── templates │ └── Layout.xhtml └── web.xml └── resources └── algaworks ├── estilo.css └── logo.png /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | .DS_Store 3 | .metadata 4 | .settings 5 | .classpath 6 | .project 7 | target/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Paginação de DataTable do PrimeFaces com Lazy Loading 2 | 3 | Este projeto foi usado em vídeo aula gratuita para exemplificar 4 | o uso de lazy loading com o componente DataTable do PrimeFaces. 5 | 6 | Assista a vídeo aula no YouTube: [https://www.youtube.com/watch?v=JRKhcjjS26Y](https://www.youtube.com/watch?v=JRKhcjjS26Y) -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | com.algaworks 6 | DataTableLazyLoading 7 | 0.0.1-SNAPSHOT 8 | war 9 | 10 | 11 | UTF-8 12 | 13 | 14 | 15 | 16 | org.primefaces 17 | primefaces 18 | 5.0 19 | compile 20 | 21 | 22 | 23 | org.omnifaces 24 | omnifaces 25 | 1.8.1 26 | compile 27 | 28 | 29 | 30 | org.jboss.weld.servlet 31 | weld-servlet 32 | 2.2.1.Final 33 | compile 34 | 35 | 36 | 37 | org.hibernate 38 | hibernate-validator 39 | 5.1.1.Final 40 | compile 41 | 42 | 43 | 44 | org.glassfish 45 | javax.faces 46 | 2.2.7 47 | compile 48 | 49 | 50 | 51 | javax.servlet 52 | javax.servlet-api 53 | 3.1.0 54 | provided 55 | 56 | 57 | 58 | org.hibernate 59 | hibernate-core 60 | 4.3.5.Final 61 | compile 62 | 63 | 64 | 65 | org.hibernate 66 | hibernate-entitymanager 67 | 4.3.5.Final 68 | compile 69 | 70 | 71 | 72 | mysql 73 | mysql-connector-java 74 | 5.1.31 75 | compile 76 | 77 | 78 | 79 | org.apache.commons 80 | commons-lang3 81 | 3.3.2 82 | 83 | 84 | 85 | 86 | 87 | 88 | maven-compiler-plugin 89 | 3.0 90 | 91 | 1.8 92 | 1.8 93 | 94 | 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /src/main/java/com/algaworks/financeiro/controller/ConsultaLancamentosBean.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.financeiro.controller; 2 | 3 | import java.io.Serializable; 4 | import java.util.List; 5 | import java.util.Map; 6 | 7 | import javax.faces.view.ViewScoped; 8 | import javax.inject.Inject; 9 | import javax.inject.Named; 10 | 11 | import org.primefaces.model.LazyDataModel; 12 | import org.primefaces.model.SortOrder; 13 | 14 | import com.algaworks.financeiro.model.Lancamento; 15 | import com.algaworks.financeiro.repository.FiltroLancamento; 16 | import com.algaworks.financeiro.repository.Lancamentos; 17 | 18 | @Named 19 | @ViewScoped 20 | public class ConsultaLancamentosBean implements Serializable { 21 | 22 | private static final long serialVersionUID = 1L; 23 | 24 | @Inject 25 | private Lancamentos lancamentos; 26 | 27 | private FiltroLancamento filtro = new FiltroLancamento(); 28 | private LazyDataModel model; 29 | 30 | public ConsultaLancamentosBean() { 31 | model = new LazyDataModel() { 32 | 33 | private static final long serialVersionUID = 1L; 34 | 35 | @Override 36 | public List load(int first, int pageSize, 37 | String sortField, SortOrder sortOrder, 38 | Map filters) { 39 | 40 | filtro.setPrimeiroRegistro(first); 41 | filtro.setQuantidadeRegistros(pageSize); 42 | filtro.setAscendente(SortOrder.ASCENDING.equals(sortOrder)); 43 | filtro.setPropriedadeOrdenacao(sortField); 44 | 45 | setRowCount(lancamentos.quantidadeFiltrados(filtro)); 46 | 47 | return lancamentos.filtrados(filtro); 48 | } 49 | 50 | }; 51 | } 52 | 53 | public FiltroLancamento getFiltro() { 54 | return filtro; 55 | } 56 | 57 | public LazyDataModel getModel() { 58 | return model; 59 | } 60 | 61 | } -------------------------------------------------------------------------------- /src/main/java/com/algaworks/financeiro/model/Lancamento.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.financeiro.model; 2 | 3 | import java.io.Serializable; 4 | import java.math.BigDecimal; 5 | import java.util.Date; 6 | 7 | import javax.persistence.Column; 8 | import javax.persistence.Entity; 9 | import javax.persistence.EnumType; 10 | import javax.persistence.Enumerated; 11 | import javax.persistence.GeneratedValue; 12 | import javax.persistence.Id; 13 | import javax.persistence.ManyToOne; 14 | import javax.persistence.Temporal; 15 | import javax.persistence.TemporalType; 16 | import javax.validation.constraints.DecimalMin; 17 | import javax.validation.constraints.NotNull; 18 | 19 | import org.hibernate.validator.constraints.NotEmpty; 20 | 21 | @Entity 22 | public class Lancamento implements Serializable { 23 | 24 | private static final long serialVersionUID = 1L; 25 | 26 | private Long id; 27 | private Pessoa pessoa; 28 | private String descricao; 29 | private BigDecimal valor; 30 | private TipoLancamento tipo; 31 | private Date dataVencimento; 32 | private Date dataPagamento; 33 | 34 | @Id 35 | @GeneratedValue 36 | public Long getId() { 37 | return id; 38 | } 39 | 40 | public void setId(Long id) { 41 | this.id = id; 42 | } 43 | 44 | @NotNull 45 | @ManyToOne(optional = false) 46 | public Pessoa getPessoa() { 47 | return pessoa; 48 | } 49 | 50 | public void setPessoa(Pessoa pessoa) { 51 | this.pessoa = pessoa; 52 | } 53 | 54 | @NotEmpty 55 | @Column(length = 80, nullable = false) 56 | public String getDescricao() { 57 | return descricao; 58 | } 59 | 60 | public void setDescricao(String descricao) { 61 | this.descricao = descricao; 62 | } 63 | 64 | @NotNull 65 | @DecimalMin("0") 66 | @Column(precision = 10, scale = 2, nullable = false) 67 | public BigDecimal getValor() { 68 | return valor; 69 | } 70 | 71 | public void setValor(BigDecimal valor) { 72 | this.valor = valor; 73 | } 74 | 75 | @NotNull 76 | @Enumerated(EnumType.STRING) 77 | @Column(nullable = false, length = 10) 78 | public TipoLancamento getTipo() { 79 | return tipo; 80 | } 81 | 82 | public void setTipo(TipoLancamento tipo) { 83 | this.tipo = tipo; 84 | } 85 | 86 | @NotNull 87 | @Temporal(TemporalType.DATE) 88 | @Column(name = "data_vencimento", nullable = false) 89 | public Date getDataVencimento() { 90 | return dataVencimento; 91 | } 92 | 93 | public void setDataVencimento(Date dataVencimento) { 94 | this.dataVencimento = dataVencimento; 95 | } 96 | 97 | @Temporal(TemporalType.DATE) 98 | @Column(name = "data_pagto") 99 | public Date getDataPagamento() { 100 | return dataPagamento; 101 | } 102 | 103 | public void setDataPagamento(Date dataPagamento) { 104 | this.dataPagamento = dataPagamento; 105 | } 106 | 107 | @Override 108 | public int hashCode() { 109 | final int prime = 31; 110 | int result = 1; 111 | result = prime * result + ((id == null) ? 0 : id.hashCode()); 112 | return result; 113 | } 114 | 115 | @Override 116 | public boolean equals(Object obj) { 117 | if (this == obj) 118 | return true; 119 | if (obj == null) 120 | return false; 121 | if (getClass() != obj.getClass()) 122 | return false; 123 | Lancamento other = (Lancamento) obj; 124 | if (id == null) { 125 | if (other.id != null) 126 | return false; 127 | } else if (!id.equals(other.id)) 128 | return false; 129 | return true; 130 | } 131 | 132 | } -------------------------------------------------------------------------------- /src/main/java/com/algaworks/financeiro/model/Pessoa.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.financeiro.model; 2 | 3 | import java.io.Serializable; 4 | 5 | import javax.persistence.Column; 6 | import javax.persistence.Entity; 7 | import javax.persistence.GeneratedValue; 8 | import javax.persistence.Id; 9 | 10 | @Entity 11 | public class Pessoa implements Serializable { 12 | 13 | private static final long serialVersionUID = 1L; 14 | 15 | private Long id; 16 | private String nome; 17 | 18 | @Id 19 | @GeneratedValue 20 | public Long getId() { 21 | return id; 22 | } 23 | 24 | public void setId(Long id) { 25 | this.id = id; 26 | } 27 | 28 | @Column(length = 60, nullable = false) 29 | public String getNome() { 30 | return nome; 31 | } 32 | 33 | public void setNome(String nome) { 34 | this.nome = nome; 35 | } 36 | 37 | @Override 38 | public int hashCode() { 39 | final int prime = 31; 40 | int result = 1; 41 | result = prime * result + ((id == null) ? 0 : id.hashCode()); 42 | return result; 43 | } 44 | 45 | @Override 46 | public boolean equals(Object obj) { 47 | if (this == obj) 48 | return true; 49 | if (obj == null) 50 | return false; 51 | if (getClass() != obj.getClass()) 52 | return false; 53 | Pessoa other = (Pessoa) obj; 54 | if (id == null) { 55 | if (other.id != null) 56 | return false; 57 | } else if (!id.equals(other.id)) 58 | return false; 59 | 60 | return true; 61 | } 62 | 63 | } -------------------------------------------------------------------------------- /src/main/java/com/algaworks/financeiro/model/TipoLancamento.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.financeiro.model; 2 | 3 | public enum TipoLancamento { 4 | 5 | RECEITA("Receita"), 6 | DESPESA("Despesa"); 7 | 8 | private String descricao; 9 | 10 | TipoLancamento(String descricao) { 11 | this.descricao = descricao; 12 | } 13 | 14 | public String getDescricao() { 15 | return descricao; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /src/main/java/com/algaworks/financeiro/repository/FiltroLancamento.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.financeiro.repository; 2 | 3 | import java.io.Serializable; 4 | 5 | public class FiltroLancamento implements Serializable { 6 | 7 | private static final long serialVersionUID = 1L; 8 | 9 | private String descricao; 10 | 11 | private int primeiroRegistro; 12 | private int quantidadeRegistros; 13 | private String propriedadeOrdenacao; 14 | private boolean ascendente; 15 | 16 | public String getDescricao() { 17 | return descricao; 18 | } 19 | 20 | public void setDescricao(String descricao) { 21 | this.descricao = descricao; 22 | } 23 | 24 | public int getPrimeiroRegistro() { 25 | return primeiroRegistro; 26 | } 27 | 28 | public void setPrimeiroRegistro(int primeiroRegistro) { 29 | this.primeiroRegistro = primeiroRegistro; 30 | } 31 | 32 | public int getQuantidadeRegistros() { 33 | return quantidadeRegistros; 34 | } 35 | 36 | public void setQuantidadeRegistros(int quantidadeRegistros) { 37 | this.quantidadeRegistros = quantidadeRegistros; 38 | } 39 | 40 | public String getPropriedadeOrdenacao() { 41 | return propriedadeOrdenacao; 42 | } 43 | 44 | public void setPropriedadeOrdenacao(String propriedadeOrdenacao) { 45 | this.propriedadeOrdenacao = propriedadeOrdenacao; 46 | } 47 | 48 | public boolean isAscendente() { 49 | return ascendente; 50 | } 51 | 52 | public void setAscendente(boolean ascendente) { 53 | this.ascendente = ascendente; 54 | } 55 | 56 | } -------------------------------------------------------------------------------- /src/main/java/com/algaworks/financeiro/repository/Lancamentos.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.financeiro.repository; 2 | 3 | import java.io.Serializable; 4 | import java.util.List; 5 | 6 | import javax.inject.Inject; 7 | import javax.persistence.EntityManager; 8 | 9 | import org.apache.commons.lang3.StringUtils; 10 | import org.hibernate.Criteria; 11 | import org.hibernate.Session; 12 | import org.hibernate.criterion.MatchMode; 13 | import org.hibernate.criterion.Order; 14 | import org.hibernate.criterion.Projections; 15 | import org.hibernate.criterion.Restrictions; 16 | 17 | import com.algaworks.financeiro.model.Lancamento; 18 | 19 | public class Lancamentos implements Serializable { 20 | 21 | private static final long serialVersionUID = 1L; 22 | 23 | @Inject 24 | private EntityManager manager; 25 | 26 | @SuppressWarnings("unchecked") 27 | public List filtrados(FiltroLancamento filtro) { 28 | Criteria criteria = criarCriteriaParaFiltro(filtro); 29 | 30 | criteria.setFirstResult(filtro.getPrimeiroRegistro()); 31 | criteria.setMaxResults(filtro.getQuantidadeRegistros()); 32 | 33 | if (filtro.isAscendente() && filtro.getPropriedadeOrdenacao() != null) { 34 | criteria.addOrder(Order.asc(filtro.getPropriedadeOrdenacao())); 35 | } else if (filtro.getPropriedadeOrdenacao() != null) { 36 | criteria.addOrder(Order.desc(filtro.getPropriedadeOrdenacao())); 37 | } 38 | 39 | return criteria.list(); 40 | } 41 | 42 | public int quantidadeFiltrados(FiltroLancamento filtro) { 43 | Criteria criteria = criarCriteriaParaFiltro(filtro); 44 | 45 | criteria.setProjection(Projections.rowCount()); 46 | 47 | return ((Number) criteria.uniqueResult()).intValue(); 48 | } 49 | 50 | private Criteria criarCriteriaParaFiltro(FiltroLancamento filtro) { 51 | Session session = manager.unwrap(Session.class); 52 | Criteria criteria = session.createCriteria(Lancamento.class); 53 | 54 | if (StringUtils.isNotEmpty(filtro.getDescricao())) { 55 | criteria.add(Restrictions.ilike("descricao", filtro.getDescricao(), MatchMode.ANYWHERE)); 56 | } 57 | 58 | return criteria; 59 | } 60 | 61 | } -------------------------------------------------------------------------------- /src/main/java/com/algaworks/financeiro/util/EntityManagerProducer.java: -------------------------------------------------------------------------------- 1 | package com.algaworks.financeiro.util; 2 | 3 | import javax.enterprise.context.ApplicationScoped; 4 | import javax.enterprise.context.RequestScoped; 5 | import javax.enterprise.inject.Disposes; 6 | import javax.enterprise.inject.Produces; 7 | import javax.persistence.EntityManager; 8 | import javax.persistence.EntityManagerFactory; 9 | import javax.persistence.Persistence; 10 | 11 | @ApplicationScoped 12 | public class EntityManagerProducer { 13 | 14 | private EntityManagerFactory factory; 15 | 16 | public EntityManagerProducer() { 17 | this.factory = Persistence.createEntityManagerFactory("FinanceiroPU"); 18 | } 19 | 20 | @Produces 21 | @RequestScoped 22 | public EntityManager createEntityManager() { 23 | return this.factory.createEntityManager(); 24 | } 25 | 26 | public void closeEntityManager(@Disposes EntityManager manager) { 27 | manager.close(); 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /src/main/resources/META-INF/beans.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/aula-datatable-lazy-loading-primefaces/953b6dc6e1e6d52d851e3996e78badb870e6b913/src/main/resources/META-INF/beans.xml -------------------------------------------------------------------------------- /src/main/resources/META-INF/persistence.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | org.hibernate.ejb.HibernatePersistence 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/main/resources/META-INF/sql/dados-iniciais.sql: -------------------------------------------------------------------------------- 1 | insert into Pessoa (id, nome) values (1, 'João das Couves'); 2 | insert into Pessoa (id, nome) values (2, 'Mercado Pague e Leve'); 3 | insert into Pessoa (id, nome) values (3, 'Açougue Vaca Morta'); 4 | insert into Pessoa (id, nome) values (4, 'Escola Estudou Aprendeu'); 5 | insert into Pessoa (id, nome) values (5, 'Banco Rendimento Azul'); 6 | 7 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (1, 2, 'Compra de pães', 'DESPESA', 8.98, '2014-08-07', '2014-08-07'); 8 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (2, 2, 'Compra leite e cerveja', 'DESPESA', 28.35, '2014-08-07', null); 9 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (3, 1, 'Empréstimo recebido', 'RECEITA', 2500, '2014-04-10', null); 10 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (4, 1, 'Quitação de empréstimo', 'DESPESA', 2750, '2014-06-20', '2014-06-20'); 11 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (5, 5, 'Resgate de investimentos', 'RECEITA', 22543.22, '2014-07-28', '2014-07-28'); 12 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (6, 5, 'Salário', 'RECEITA', 8400, '2014-07-07', '2014-07-10'); 13 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (7, 5, 'Salário', 'RECEITA', 8400, '2014-08-07', null); 14 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (8, 5, 'Salário', 'RECEITA', 8400, '2014-06-07', '2014-06-07'); 15 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (9, 5, 'Salário', 'RECEITA', 8400, '2014-05-07', '2014-05-07'); 16 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (10, 5, 'Salário', 'RECEITA', 8400, '2014-04-07', '2014-04-07'); 17 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (11, 5, 'Mensalidade escolar', 'DESPESA', 652.5, '2014-04-10', '2014-04-11'); 18 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (12, 5, 'Mensalidade escolar', 'DESPESA', 650, '2014-05-10', '2014-05-10'); 19 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (13, 5, 'Mensalidade escolar', 'DESPESA', 650, '2014-06-10', '2014-06-10'); 20 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (14, 5, 'Mensalidade escolar', 'DESPESA', 650, '2014-07-10', '2014-07-10'); 21 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (15, 3, 'Compra de 1,2kg de picanha', 'DESPESA', 48, '2014-07-08', '2014-07-08'); 22 | insert into Lancamento (id, pessoa_id, descricao, tipo, valor, data_vencimento, data_pagto) values (16, 3, 'Compra de carvão', 'DESPESA', 12, '2014-07-06', '2014-07-06'); 23 | -------------------------------------------------------------------------------- /src/main/webapp/ConsultaLancamentos.xhtml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | Consuta de lançamentos 10 | 11 | 12 |

Consulta de lançamentos

13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 |
55 | 56 |
-------------------------------------------------------------------------------- /src/main/webapp/META-INF/context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/templates/Layout.xhtml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | <ui:insert name="titulo">Sistema Financeiro</ui:insert> 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
36 | 37 |
38 | 39 |
40 | Sistema Financeiro - AlgaWorks 41 |
42 | 43 |
44 | -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | javax.faces.PROJECT_STAGE 9 | Development 10 | 11 | 12 | 13 | javax.faces.FACELETS_REFRESH_PERIOD 14 | 0 15 | 16 | 17 | 18 | org.jboss.weld.environment.servlet.Listener 19 | 20 | 21 | 22 | BeanManager 23 | javax.enterprise.inject.spi.BeanManager 24 | 25 | 26 | 27 | Faces Servlet 28 | javax.faces.webapp.FacesServlet 29 | 30 | 31 | 32 | Faces Servlet 33 | *.xhtml 34 | 35 | 36 | -------------------------------------------------------------------------------- /src/main/webapp/resources/algaworks/estilo.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | 3 | body { 4 | font-size: 12px; 5 | font-family: Arial, Helvetica, sans-serif; 6 | margin: 0px; 7 | font-weight: normal 8 | } 9 | 10 | header { 11 | padding: 5px; 12 | margin-bottom: 20px; 13 | height: 30px; 14 | background-color: #545454; 15 | color: #fff; 16 | box-shadow: 0px 2px 2px #ccc 17 | } 18 | 19 | #conteudo { 20 | padding: 0px 8px 21 | } 22 | 23 | footer { 24 | border-top: 1px solid #ccc; 25 | padding: 5px 8px; 26 | margin-top: 20px; 27 | margin-bottom: 10px 28 | } 29 | 30 | h1 { 31 | font-size: 24px; 32 | font-weight: 500; 33 | padding: 0px; 34 | margin: 0px; 35 | margin-bottom: 10px 36 | } 37 | 38 | .ajax-status { 39 | position: fixed; 40 | top: 85px; 41 | right: 10px; 42 | width: 35px; 43 | height: 35px 44 | } 45 | 46 | #login-dialog { 47 | width: 260px; 48 | margin: auto; 49 | margin-top: 150px; 50 | } 51 | 52 | .grid-login { 53 | background-color: #f2f2f2; 54 | border-radius: 8px; 55 | border: 1px solid #ccc; 56 | margin-top: 8px; 57 | padding: 10px; 58 | width: 100% 59 | } 60 | 61 | 62 | .sem-linha .ui-panelgrid-cell, .sem-linha .ui-widget-content { 63 | border: none !important; 64 | } 65 | -------------------------------------------------------------------------------- /src/main/webapp/resources/algaworks/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algaworks/aula-datatable-lazy-loading-primefaces/953b6dc6e1e6d52d851e3996e78badb870e6b913/src/main/webapp/resources/algaworks/logo.png --------------------------------------------------------------------------------