├── .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 | Sistema Financeiro
10 |
11 |
12 |
13 |
14 |
15 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
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
--------------------------------------------------------------------------------