public void filtrar(String valor, String filtro) {
    am = new AtletaModel();
    List<Atleta> lista = new ArrayList<Atleta>();

    lista = am.filtrar(filtro, valor);

    atm = (AtletaTableModel) AtletaView.atletaTabela.getModel();

    atm.removeAll();

    if (lista.size() > 0) {

      for (int i = 0; i < lista.size(); i++) {
        atm.addRow(
            lista.get(i).getMatricula(),
            lista.get(i).getNome(),
            lista.get(i).getRg(),
            lista.get(i).getAtivo(),
            i);
        atm.fireTableDataChanged();
      }
    } else {
      JOptionPane.showMessageDialog(
          null, "Nenhum registro encontrado.", "Alerta.", JOptionPane.INFORMATION_MESSAGE);
    }
  }
  public Boolean salvaEdicao(Atleta a, int matricula) {
    am = new AtletaModel();

    if (am.checarAtleta(matricula, a.getMatricula()) == true) {

      if (am.chegarAtletaRg(a.getRg(), rgAntigo) == true) {

        if (arquivoImagem == "" || arquivoImagem == null) {
          arquivoImagem = a.getFoto();
        }

        if (!"".equals(arquivoImagem)) {
            /*checa se tem imagem.*/

          arquivoImagemCaminho = am.savarImagem(a.getMatricula(), arquivoImagem);
          a.setFoto(arquivoImagemCaminho);
        }

        if (am.editar(a, matricula) == true) {
          JOptionPane.showMessageDialog(
              null, "Registro alterado.", "Alerta", JOptionPane.INFORMATION_MESSAGE);

          atm = (AtletaTableModel) AtletaView.atletaTabela.getModel();
          atm.setValueAt(a.getMatricula(), linhaSelecionadaTabelela, 0);
          atm.setValueAt(a.getNome(), linhaSelecionadaTabelela, 1);
          atm.setValueAt(a.getRg(), linhaSelecionadaTabelela, 2);
          atm.setValueAt(a.getAtivo(), linhaSelecionadaTabelela, 3);
          atm.fireTableDataChanged();
          return true;
        }
      } else {
        JOptionPane.showMessageDialog(null, "Rg em uso.", "Alerta", JOptionPane.ERROR_MESSAGE);
        return false;
      }
    } else {
      JOptionPane.showMessageDialog(null, "Matricula em uso.", "Alerta", JOptionPane.ERROR_MESSAGE);
      return false;
    }
    return false;
  }
  /** @param operacao C = Cadastra , E = Editar, isso irá escolher qual label da view pegar. */
  public void escolherImagem(String operacao) {
    am = new AtletaModel();
    arquivoImagem = am.escolherImagem();

    if (null != arquivoImagem) {

      if ("1".equals(arquivoImagem)) {

        if ("C".equals(operacao)) {
          AtletaCadastro.imageLb.setIcon(null);
        } else {
          AtletaEditar.imageLb.setIcon(null);
        }

        JOptionPane.showMessageDialog(
            null, "Nenhuma imagem foi selecionada.", "Alerta", JOptionPane.ERROR_MESSAGE);
      } else {

        if (Validador.validaFormato(arquivoImagem) == true) {

          if ("C".equals(operacao)) {
            AtletaCadastro.imageLb.setIcon(new ImageIcon(arquivoImagem));
            AtletaCadastro.imageLb.setIcon(am.setaImagem(arquivoImagem));
          }
          if ("E".equals(operacao)) {
            AtletaEditar.imageLb.setIcon(new ImageIcon(arquivoImagem));
            AtletaEditar.imageLb.setIcon(am.setaImagem(arquivoImagem));
          }

        } else {
          JOptionPane.showMessageDialog(
              null,
              "Formato de imagem não permitido. Formatos permitidos: jpg, jpeg, png",
              "Alerta",
              JOptionPane.ERROR_MESSAGE);
        }
      }
    }
  }
  public void editar(int matricula) {

    ae = new AtletaEditar(null, true);
    am = new AtletaModel();

    a = am.retorna_atleta(matricula);

    ae.matriculaTxt.setText(String.valueOf(a.getMatricula()));
    ae.nomeTxt.setText(a.getNome());
    ae.rgTxt.setText(a.getRg());

    rgAntigo = a.getRg(); // seta o rg antigo. caso for trocado.

    String data = Validador.dataFormatada(a.getData_nascimento());
    ae.dataNascTxt.setText(data);

    ae.enderecoTxt.setText(a.getEndereco());
    ae.cidadeTxt.setText(a.getCidade());
    ae.bairroTxt.setText(a.getBairro());
    ae.cepTxt.setText(a.getCep());
    ae.telefoneTxt.setText(a.getTelefone());
    ae.observacaoTxt.setText(a.getObservacao());

    if ("S".equals(a.getAtivo())) {
      ae.ativoCheck.setSelected(true);
    } else {
      ae.ativoCheck.setSelected(false);
    }

    if ("M".equals(a.getSexo())) {
      ae.sexoCombo.setSelectedIndex(0);
    } else {
      ae.sexoCombo.setSelectedIndex(1);
    }
    AtletaEditar.file = a.getFoto();
    am.mostrarImagem(a.getFoto());

    ae.setVisible(true);
  }
  public boolean cadastrar(Atleta a) {
    am = new AtletaModel();

    if (am.checarMatriculaExistente(a.getMatricula()) == true) {

      if (am.checarRgExistente(a.getRg())) {

        if (!"".equals(arquivoImagem)) {
            /*checa se tem imagem.*/

          arquivoImagemCaminho = am.savarImagem(a.getMatricula(), arquivoImagem);
          a.setFoto(arquivoImagemCaminho);
        }

        if (am.cadastrar(a) == false) {
          JOptionPane.showMessageDialog(
              null, "Falha ao gravar.", "Alerta", JOptionPane.ERROR_MESSAGE);
        } else {

          JOptionPane.showMessageDialog(
              null, "Cadastro realizado.", "Alerta", JOptionPane.INFORMATION_MESSAGE);
          atm = (AtletaTableModel) AtletaView.atletaTabela.getModel();
          int count = atm.getRowCount();
          atm.addRow(a.getMatricula(), a.getNome(), a.getRg(), a.getAtivo(), count);
          return true;
        }

      } else {
        JOptionPane.showMessageDialog(null, "RG em uso.", "Alerta", JOptionPane.ERROR_MESSAGE);
        return false;
      }
    } else {
      JOptionPane.showMessageDialog(null, "Matricula em uso.", "Alerta", JOptionPane.ERROR_MESSAGE);
      return false;
    }
    return false;
  }
  public boolean deletar(int matricula, int linhaSelecionada) {
    am = new AtletaModel();

    if (am.deletar(matricula) == true) {
      JOptionPane.showMessageDialog(
          null, "Registro deletado.", "Alerta", JOptionPane.INFORMATION_MESSAGE);
      atm = new AtletaTableModel();
      atm = (AtletaTableModel) AtletaView.atletaTabela.getModel();
      atm.removeRow(linhaSelecionada);

      return true;
    }

    return false;
  }
 /*ROTINAS*/
 public void carregarRotina() {
   am = new AtletaModel();
   am.rotinaSelecionaAtleta();
 }
  /* Atleta atividade*/
  public Atleta retornaAtleta(int matricula) {
    am = new AtletaModel();

    return a = am.retorna_atleta(matricula);
  }
 /** FIM Cadastro * */
 public AtletaTableModel listar() {
   am = new AtletaModel();
   return am.listar();
 }
 public String gerarMatricula() {
   am = new AtletaModel();
   return am.gerarMatricula();
 }