public void teclaEsquerda03Digitada() {
   opcao = 3;
   this.estado = DIGITANDO_SENHA;
   MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
   evento.setNovaTela(" - Digite a senha ou digite CONFIRMA\n");
   notificaMudanca(evento);
 }
 private void processaValorDigitado(int i) {
   this.valorDigitado *= 10;
   this.valorDigitado += i;
   MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
   evento.setNovaTela(
       " - Continue a digitar a conta ou digite CONFIRMA\n - Valor atual: " + this.valorDigitado);
   notificaMudanca(evento);
 }
 private void processaConta(int i) {
   this.contaDigitada *= 10;
   this.contaDigitada += i;
   MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
   evento.setNovaTela(
       " - Continue a digitar a conta ou digite CONFIRMA\n - Conta atual : " + this.contaDigitada);
   notificaMudanca(evento);
 }
 public void teclaEsquerda01Digitada() {
   opcao = 1;
   this.estado = DIGITANDO_SENHA;
   MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
   evento.setNovaTela(
       "Digite 1 para q w e\n"
           + "Digite 2 para r t y\n"
           + "Digite 3 para u i o\n"
           + "Digite 4 para p a s\n"
           + "Digite 5 para d f g\n"
           + "Digite 6 para h j k\n"
           + "Digite 7 para k l z\n"
           + "Digite 8 para x c v\n"
           + "digite 9 para b n m\n"
           + " - Continue a digitar a senha ou digite CONFIRMA\n");
   notificaMudanca(evento);
 }
  public void teclaCancelarDigitada() {
    if (this.estado == VENDO_SALDO) {
      this.estado = DIGITANDO_OPCAO;
      MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
      evento.setNovaTela(" - Escolha uma OPCAO\n" + "A) Saldo\nB) Saque\nC) Transferência");
      this.senhaDigitada = 0;
      this.asteriscos = "";
      notificaMudanca(evento);
    } else if (this.estado == DIGITANDO_OPCAO) {
      this.estado = DIGITANDO_OPCAO;
      MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
      evento.setNovaTela(" - Escolha uma OPCAO\n" + "A) Saldo\nB) Saque\nC) Transferência");
      this.senhaDigitada = 0;
      this.asteriscos = "";
      notificaMudanca(evento);
    } else if (this.estado == DIGITANDO_SENHA) {
      this.estado = DIGITANDO_OPCAO;
      MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
      evento.setNovaTela(" - Escolha uma OPCAO\n" + "A) Saldo\nB) Saque\nC) Transferência");
      this.senhaDigitada = 0;
      this.asteriscos = "";
      notificaMudanca(evento);
    } else if (this.estado == DIGITANDO_CONTA) {
      this.estado = DIGITANDO_OPCAO;
      MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
      evento.setNovaTela(" - Escolha uma OPCAO\n" + "A) Saldo\nB) Saque\nC) Transferência");
      this.senhaDigitada = 0;
      this.asteriscos = "";
      notificaMudanca(evento);
    }
    /*
    if(this.estado == DIGITANDO_CONTA){
    	MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
    	evento.setTrocaMaquinaDeEstados("Caixa Padrao");
    	notificaMudanca(evento);
    }else if(this.estado == DIGITANDO_SENHA){
    	MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
    	evento.setTrocaMaquinaDeEstados("Caixa Padrao");
    	notificaMudanca(evento);
    }else if(this.estado == VENDO_SALDO){
    	MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
    	evento.setTrocaMaquinaDeEstados("Caixa Padrao");
    	notificaMudanca(evento);
    }else if(this.estado == SACANDO){
    	MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
    	evento.setTrocaMaquinaDeEstados("Caixa Padrao");
    	notificaMudanca(evento);
    }else if(this.estado == DIGITANDO_VALOR){
    	MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
    	evento.setTrocaMaquinaDeEstados("Caixa Padrao");
    	notificaMudanca(evento);
    }
    */

  }
 private void processaSenha(int i) {
   this.senhaDigitada *= 10;
   this.senhaDigitada += i;
   this.asteriscos += "*";
   MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
   evento.setNovaTela(
       "Digite 1 para q w e"
           + "Digite 2 para r t y"
           + "Digite 3 para u i o"
           + "Digite 4 para p a s"
           + "Digite 5 para d f g"
           + "Digite 6 para h j k"
           + "Digite 7 para k l z"
           + "Digite 8 para x c v"
           + "digite 9 para b n m"
           + " - Continue a digitar a senha ou digite CONFIRMA\n - Senha atual: "
           + asteriscos);
   notificaMudanca(evento);
 }
 public void teclaCorrigeDigitada() {
   if (this.estado == DIGITANDO_CONTA) {
     MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
     evento.setNovaTela(" - Digite conta");
     this.contaDigitada = 0;
     notificaMudanca(evento);
   }
   if (this.estado == DIGITANDO_SENHA) {
     MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
     evento.setNovaTela(" - Digite a senha");
     this.senhaDigitada = 0;
     notificaMudanca(evento);
   } else if (this.estado == SACANDO) {
     MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
     evento.setNovaTela(" - Digite o valor");
     this.valorDigitado = 0;
     notificaMudanca(evento);
   } else if (this.estado == TRANSFERENCIA) {
     MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
     evento.setNovaTela(" - Digite o valor");
     this.valorDigitado = 0;
     notificaMudanca(evento);
   }
 }
 public void inicia() {
   this.estado = DIGITANDO_CONTA;
   MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
   evento.setNovaTela("BEM-VINDO AO BANCO DO BRASIL\n" + " - Informe a sua conta:");
   notificaMudanca(evento);
 }
  public void teclaConfirmaDigitada() {
    if (this.estado == DIGITANDO_CONTA) {
      contaAtual = GerenciaContaBBSingleton.getInstancia().getConta(contaDigitada);
      if (contaAtual.getNumeroConta() == contaDigitada && tentativa < TOTAL_TENTATIVAS) {
        this.estado = DIGITANDO_OPCAO;
        MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
        evento.setNovaTela(" - Escolha uma OPCAO\n" + "A) Saldo\nB) Saque\nC)Transferência");
        opcao = 1;
        notificaMudanca(evento);
      } else if (tentativa == 3) {
        MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
        evento.setNovaTela("- Conta Bloqueada -\n Procure a Agencia mais proxima!");
        notificaMudanca(evento);
      } else {
        this.estado = DIGITANDO_CONTA;
        MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
        evento.setNovaTela(" - Conta Invalida -\n" + "Digite a conta novamente");
        tentativa += 1;
        this.contaAtual.setTentativa(tentativa);
        this.contaDigitada = 0;
        notificaMudanca(evento);
      }

    } else if (this.estado == DIGITANDO_SENHA && opcao == 1) {
      if (contaAtual.getSenha() == senhaDigitada) {
        this.estado = VENDO_SALDO;
        MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
        evento.setNovaTela("SALDO\n" + "Saldo Hoje: R$ " + contaAtual.getSaldo());
        notificaMudanca(evento);
      } else if (this.contaAtual.getTentativa() < TOTAL_TENTATIVAS) {
        this.estado = DIGITANDO_SENHA;
        MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
        evento.setNovaTela("Senha Inválida.\n Digite a senha novamente");
        this.senhaDigitada = 0;
        this.asteriscos = "";
        notificaMudanca(evento);
        this.contaAtual.setTentativa(contaAtual.getTentativa() + 1);
      } else {
        MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
        evento.setTrocaMaquinaDeEstados("Caixa Padrao");
        this.contaDigitada = 0;
        this.senhaDigitada = 0;
        this.asteriscos = "";
        notificaMudanca(evento);
      }
    } else if (this.estado == DIGITANDO_SENHA && opcao == 2) {
      if (contaAtual.getSenha() == senhaDigitada) {
        this.estado = SACANDO;
        MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
        evento.setNovaTela(
            "SAQUE:\n"
                + "Seu saldo atual: "
                + contaAtual.getSaldo()
                + "\nDigite o valor a sacar e digite CONFIRMA: ");
        notificaMudanca(evento);

        if (contaAtual.getSaldo() >= valorDigitado) {
          this.estado = DIGITANDO_VALOR;
          contaAtual.setSaldo(contaAtual.getSaldo() - valorDigitado);
          evento.setNovaTela(
              " - Saque Realizado com Sucesso. Liberando Cédulas\n Seu novo saldo é: R$"
                  + contaAtual.getSaldo()
                  + "\nDigite CONFIRMA");
          notificaMudanca(evento);
        } else {
          this.estado = DIGITANDO_OPCAO;
          evento.setNovaTela("SAQUE:\n Saldo insuficiente. Digite CONFIRMA");
          notificaMudanca(evento);
        }
      } else if (this.contaAtual.getTentativa() < TOTAL_TENTATIVAS) {
        this.estado = DIGITANDO_SENHA;
        MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
        evento.setNovaTela("Senha Invalida\n" + "Digite a senha novamente");
        this.senhaDigitada = 0;
        this.asteriscos = "";
        notificaMudanca(evento);
        this.contaAtual.setTentativa(contaAtual.getTentativa() + 1);
      } else {
        MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
        evento.setTrocaMaquinaDeEstados("Caixa Padrao");
        this.contaDigitada = 0;
        this.senhaDigitada = 0;
        this.asteriscos = "";
        notificaMudanca(evento);
      }

    } else if (this.estado == DIGITANDO_SENHA && opcao == 3) {
      if (contaAtual.getSenha() == senhaDigitada) {
        this.estado = TRANSFERENCIA;
        if (GerenciaContaSingleton.getInstancia().getConta(contaDigitada).getNumeroConta()
            == contaDigitada) {
          this.estado = DIGITANDO_VALOR;
          this.contaTransferencia = GerenciaContaSingleton.getInstancia().getConta(contaDigitada);
          MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
          evento.setNovaTela(" - Digite o valor -");
          notificaMudanca(evento);
        } else {
          this.estado = DIGITANDO_OPCAO;
          MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
          evento.setNovaTela(
              "TRANSFERêNCIA:\n Saldo insuficiente para realizar a transferência. Digite CONFIRMA");
          notificaMudanca(evento);
        }
      } else if (this.contaAtual.getTentativa() < TOTAL_TENTATIVAS) {
        this.estado = DIGITANDO_SENHA;
        MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
        evento.setNovaTela("Senha Invalida\n" + "Digite a senha novamente");
        this.senhaDigitada = 0;
        this.asteriscos = "";
        notificaMudanca(evento);
        this.contaAtual.setTentativa(contaAtual.getTentativa() + 1);
      } else {
        MaquinaDeEstadosEvent evento = new MaquinaDeEstadosEvent();
        evento.setTrocaMaquinaDeEstados("Caixa Padrao");
        this.contaDigitada = 0;
        this.senhaDigitada = 0;
        this.asteriscos = "";
        notificaMudanca(evento);
      }
    }
  }