/* Copyright 2012-2017 Jose Robson Mariano Alves This file is part of bgfinancas. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package badernageral.bgfinancas.principal; import badernageral.bgfinancas.biblioteca.contrato.Categoria; import badernageral.bgfinancas.biblioteca.contrato.ControladorFormulario; import badernageral.bgfinancas.biblioteca.contrato.Item; import badernageral.bgfinancas.biblioteca.sistema.Kernel; import badernageral.bgfinancas.biblioteca.utilitario.Erro; import badernageral.bgfinancas.biblioteca.utilitario.Validar; import badernageral.bgfinancas.modelo.Usuario; import java.net.URL; import java.util.ResourceBundle; import javafx.concurrent.Task; import javafx.concurrent.WorkerStateEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.scene.text.Text; public final class LoginControlador implements Initializable, ControladorFormulario { @FXML private Text slogan; @FXML private Text labelUsuario; @FXML private Text labelSenha; @FXML private TextField usuario; @FXML private PasswordField senha; @FXML private Button entrar; @FXML private Button sair; @FXML private Text mensagem; @Override public void initialize(URL url, ResourceBundle rb) { slogan.setText(idioma.getMensagem("gerenciador_despesas")); labelUsuario.setText(idioma.getMensagem("usuario")+":"); labelSenha.setText(idioma.getMensagem("senha")+":"); entrar.setText(idioma.getMensagem("entrar")); sair.setText(idioma.getMensagem("sair")); mensagem.setText(""); } public void focoSenha(){ senha.requestFocus(); } @Override public void acaoFinalizar() { if(validarFormulario()){ if(new Usuario().setUsuario(usuario.getText()).setSenha(senha.getText()).consultar()!=null){ delayReiniciar(); }else{ mensagem.setText(idioma.getMensagem("erro_login")); senha.requestFocus(); } } } private void delayReiniciar(){ Task<Void> task = new Task<Void>() { @Override protected Void call() throws Exception { Thread.sleep(500); return null; } }; task.setOnSucceeded((WorkerStateEvent event) -> { Kernel.master.reiniciar(); }); Thread th = new Thread(task); th.start(); } @Override public void acaoCancelar() { System.exit(0); } private boolean validarFormulario(){ try { Validar.textField(usuario); Validar.passwordField(senha); return true; } catch (Erro ex) { return false; } } @Override public void acaoCadastrar(int botao) { System.out.println(idioma.getMensagem("nao_implementado")); } @Override public void selecionarComboCategoria(int combo, Categoria categoria) { System.out.println(idioma.getMensagem("nao_implementado")); } @Override public void selecionarComboItem(int combo, Item item) { System.out.println(idioma.getMensagem("nao_implementado")); } }