Advertisement
tadeuespindola

PessoaBean.java

Feb 21st, 2021
829
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.70 KB | None | 0 0
  1. package br.com.cursojsf;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.InputStream;
  5. import java.io.InputStreamReader;
  6. import java.net.URL;
  7. import java.net.URLConnection;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10.  
  11. import javax.annotation.PostConstruct;
  12. import javax.faces.application.FacesMessage;
  13. import javax.faces.bean.ManagedBean;
  14. import javax.faces.bean.ViewScoped;
  15. import javax.faces.component.html.HtmlSelectOneMenu;
  16. import javax.faces.context.ExternalContext;
  17. import javax.faces.context.FacesContext;
  18. import javax.faces.event.AjaxBehaviorEvent;
  19. import javax.faces.model.SelectItem;
  20. import javax.persistence.TypedQuery;
  21. import javax.servlet.http.HttpServletRequest;
  22.  
  23. import com.google.gson.Gson;
  24.  
  25. import br.com.dao.DaoGeneric;
  26. import br.com.entidades.Cidades;
  27. import br.com.entidades.Estados;
  28. import br.com.entidades.Pessoa;
  29. import br.com.jpautil.JPAUtil;
  30. import br.com.repository.IDaoPessoa;
  31. import br.com.repository.IDaoPessoaImpl;
  32.  
  33. @ViewScoped
  34. @ManagedBean(name = "pessoaBean")
  35. public class PessoaBean {
  36.  
  37.     private Pessoa pessoa = new Pessoa();
  38.  
  39.     private DaoGeneric<Pessoa> daoGeneric = new DaoGeneric<>();
  40.  
  41.     private List<Pessoa> pessoas = new ArrayList<>();
  42.  
  43.     private IDaoPessoa iDaoPessoa = new IDaoPessoaImpl();
  44.  
  45.     private List<SelectItem> estados;
  46.  
  47.     private List<SelectItem> cidades;
  48.  
  49.     public String salvar() {
  50.         pessoa = daoGeneric.merge(pessoa);
  51.         carregarPessoas();
  52.         mostrarMsg("Cadastro Realizado com Sucesso!");
  53.         return "";
  54.     }
  55.  
  56.     private void mostrarMsg(String msg) {
  57.         FacesContext context = FacesContext.getCurrentInstance();
  58.         FacesMessage message = new FacesMessage(msg);
  59.         context.addMessage(null, message);
  60.     }
  61.  
  62.     public String novo() {
  63.         /* Executa algum processo antes de novo */
  64.         pessoa = new Pessoa();
  65.         return "";
  66.     }
  67.  
  68.     public String limpar() {
  69.         return novo();
  70.     }
  71.  
  72.     public String remove() {
  73.         daoGeneric.deletePorId(pessoa);
  74.         pessoa = new Pessoa();
  75.         carregarPessoas();
  76.         mostrarMsg("Removido com Sucesso!");
  77.         return "";
  78.     }
  79.  
  80.     @PostConstruct
  81.     public void carregarPessoas() {
  82.         pessoas = daoGeneric.getListEntity(Pessoa.class);
  83.     }
  84.  
  85.     public Pessoa getPessoa() {
  86.         return pessoa;
  87.     }
  88.  
  89.     public void pesquisaCep(AjaxBehaviorEvent event) {
  90.         try {
  91.             URL url = new URL("https://viacep.com.br/ws/" + pessoa.getCep() + "/json/");
  92.             URLConnection connection = url.openConnection();
  93.             InputStream is = connection.getInputStream();
  94.             BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
  95.  
  96.             String cep = "";
  97.             StringBuilder jsonCep = new StringBuilder();
  98.  
  99.             while ((cep = br.readLine()) != null) {
  100.                 jsonCep.append(cep);
  101.             }
  102.  
  103.             Pessoa gsonAux = new Gson().fromJson(jsonCep.toString(), Pessoa.class);
  104.  
  105.             pessoa.setCep(gsonAux.getCep());
  106.             pessoa.setLogradouro(gsonAux.getLogradouro());
  107.             pessoa.setComplemento(gsonAux.getComplemento());
  108.             pessoa.setBairro(gsonAux.getBairro());
  109.             pessoa.setLocalidade(gsonAux.getLocalidade());
  110.             pessoa.setBairro(gsonAux.getBairro());
  111.             pessoa.setUf(gsonAux.getUf());
  112.             pessoa.setUnidade(gsonAux.getUnidade());
  113.             pessoa.setIbge(gsonAux.getIbge());
  114.             pessoa.setGia(gsonAux.getGia());
  115.         } catch (Exception ex) {
  116.             ex.printStackTrace();
  117.             mostrarMsg("Erro ao consultar o cep");
  118.         }
  119.     }
  120.  
  121.     public void setPessoa(Pessoa pessoa) {
  122.         this.pessoa = pessoa;
  123.     }
  124.  
  125.     public DaoGeneric<Pessoa> getDaoGeneric() {
  126.         return daoGeneric;
  127.     }
  128.  
  129.     public void setDaoGeneric(DaoGeneric<Pessoa> daoGeneric) {
  130.         this.daoGeneric = daoGeneric;
  131.     }
  132.  
  133.     public List<Pessoa> getPessoas() {
  134.         return pessoas;
  135.     }
  136.  
  137.     public String deslogar() {
  138.         FacesContext context = FacesContext.getCurrentInstance();
  139.         ExternalContext externalContext = context.getExternalContext();
  140.         externalContext.getSessionMap().remove("usuarioLogado");
  141.         HttpServletRequest httpServletRequest = (HttpServletRequest) FacesContext.getCurrentInstance()
  142.                 .getExternalContext().getRequest();
  143.         httpServletRequest.getSession().invalidate();
  144.         return "index.jsf";
  145.     }
  146.  
  147.     public String logar() {
  148.         Pessoa pessoaUser = iDaoPessoa.consultarUsuario(pessoa.getLogin(), pessoa.getSenha());
  149.         if (pessoaUser != null) {// achou o usuário
  150.             // adicionar o usuário na sessão
  151.             FacesContext context = FacesContext.getCurrentInstance();
  152.             ExternalContext externalContext = context.getExternalContext();
  153.             externalContext.getSessionMap().put("usuarioLogado", pessoaUser);
  154.             return "primeirapagina.jsf";
  155.         }
  156.         return "index.jsf";
  157.     }
  158.  
  159.     public boolean permiteAcesso(String acesso) {
  160.         FacesContext context = FacesContext.getCurrentInstance();
  161.         ExternalContext externalContext = context.getExternalContext();
  162.         Pessoa pessoaUser = (Pessoa) externalContext.getSessionMap().get("usuarioLogado");
  163.         return pessoaUser.getPerfilUser().equals(acesso);
  164.     }
  165.  
  166.     public void carregarCidades(AjaxBehaviorEvent event) {
  167.  
  168.         Estados estado = (Estados) ((HtmlSelectOneMenu) event.getSource()).getValue();
  169.  
  170.         if (estado != null) {
  171.             pessoa.setEstados(estado);
  172.  
  173.             TypedQuery<Cidades> cidadesQuery = JPAUtil.getEntityManager()
  174.                     .createQuery("from Cidades where estados.id = " + estado.getId(), Cidades.class);
  175.  
  176.             List<Cidades> cidadesCombo = cidadesQuery.getResultList();
  177.  
  178.             List<SelectItem> selectItemsCidade = new ArrayList<>();
  179.             for (Cidades cidade : cidadesCombo) {
  180.                 selectItemsCidade.add(new SelectItem(cidade, cidade.getNome()));
  181.             }
  182.            
  183.             setCidades(selectItemsCidade);
  184.         }
  185.     }
  186.  
  187.     private void setCidades(List<SelectItem> cidades) {
  188.         this.cidades = cidades;
  189.     }
  190.  
  191.     public List<SelectItem> getCidades() {
  192.         return cidades;
  193.     }
  194.    
  195.     public List<SelectItem> getEstados() {
  196.         estados = iDaoPessoa.listaEStados();
  197.         return estados;
  198.     }
  199.    
  200.     public void setEstados(List<SelectItem> estados) {
  201.         this.estados = estados;
  202.     }
  203.  
  204. }
  205.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement