private void salvar() {
    try {
      controlador.capturar(funcionario);

      if (!validarCampos()) {
        return;
      }

      TipoAcesso tipo = null;
      if (funcionario.getId() == 0) {
        tipo = tipo.INSERCAO;
      } else {
        tipo = tipo.EDICAO;
      }

      DAO dao = new DAO(false);
      dao.salvar(funcionario);
      dao.concluirTransacao();
      TelaPrincipal.getInstancia().notificarClasse(funcionario);
      String descricao = "Cadastro do Funcionário " + funcionario.getNome() + ".";
      FuncionarioUtil.registrar(tipo, descricao);

      if (funcionario.equals(Main.getFuncionario())) {
        TelaPrincipal.getInstancia().recarregarFuncionario();
      }
      fechar();
    } catch (Throwable t) {
      new TratadorExcecao(t, this, true);
    }
  }
 private void preencher() {
   controlador.preencher(funcionario);
 }