/* 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.modulo.utilitario; import badernageral.bgfinancas.biblioteca.contrato.Categoria; import badernageral.bgfinancas.biblioteca.contrato.ControladorFormulario; import badernageral.bgfinancas.biblioteca.utilitario.Animacao; import badernageral.bgfinancas.biblioteca.sistema.Botao; import badernageral.bgfinancas.biblioteca.contrato.Item; import badernageral.bgfinancas.biblioteca.sistema.Janela; import badernageral.bgfinancas.biblioteca.sistema.Kernel; import badernageral.bgfinancas.biblioteca.utilitario.Erro; import badernageral.bgfinancas.biblioteca.utilitario.Validar; import badernageral.bgfinancas.biblioteca.tipo.Duracao; import badernageral.bgfinancas.biblioteca.tipo.Status; import badernageral.bgfinancas.modelo.Configuracao; import java.net.URL; import java.util.ResourceBundle; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Label; import javafx.scene.control.TextField; import badernageral.bgfinancas.template.botao.BotaoFormulario; import javafx.scene.control.ComboBox; import javafx.scene.control.TitledPane; public final class ConfiguracaoFormularioControlador implements Initializable, ControladorFormulario { @FXML private TitledPane formulario; @FXML private BotaoFormulario botaoController; @FXML private Label labelIdioma; @FXML private Label labelMoeda; @FXML private Label labelLogin; @FXML private ComboBox<String> idiomas; @FXML private TextField moeda; @FXML private ComboBox<String> login; private boolean primeiroAcesso = false; @Override public void initialize(URL url, ResourceBundle rb) { Botao.prepararBotaoModal(this, botaoController); idiomas.setItems(idioma.getListaIdiomas()); idiomas.getSelectionModel().select(idioma.getIdiomaSistema()); mudarIdioma(); } public void setPrimeiroAcesso(){ primeiroAcesso = true; mudarIdioma(); } public void mudarIdioma(){ login.getItems().clear(); if(idiomas.getSelectionModel().getSelectedItem().equals("English")){ moeda.setText("$"); formulario.setText("Settings"); labelIdioma.setText("Language:"); labelMoeda.setText("Currency:"); labelLogin.setText("Login screen:"); login.getItems().add("No"); login.getItems().add("Yes"); if(primeiroAcesso){ botaoController.setTextBotaoFinalizar("Next"); botaoController.setTextBotaoCancelar("Exit"); }else{ botaoController.setTextBotaoFinalizar("Edit"); botaoController.setTextBotaoCancelar("Cancel"); } }else{ moeda.setText("R$"); formulario.setText("Configurações"); labelIdioma.setText("Idioma:"); labelMoeda.setText("Moeda:"); labelLogin.setText("Tela de login:"); login.getItems().add("Não"); login.getItems().add("Sim"); if(primeiroAcesso){ botaoController.setTextBotaoFinalizar("Próximo"); botaoController.setTextBotaoCancelar("Sair"); }else{ botaoController.setTextBotaoFinalizar("Alterar"); botaoController.setTextBotaoCancelar("Cancelar"); } } login.getSelectionModel().select(Integer.parseInt(Configuracao.getPropriedade("login"))); } @Override public void acaoCancelar() { if(primeiroAcesso){ System.exit(0); }else{ Animacao.fadeInOutClose(formulario); } } @Override public void acaoFinalizar(){ if(validarFormulario()){ Configuracao cIdioma = new Configuracao().setNome("idioma").consultar(); Configuracao cMoeda = new Configuracao().setNome("moeda").consultar(); Configuracao cLogin = new Configuracao().setNome("login").consultar(); if(cIdioma!=null && cMoeda!=null && cLogin!=null){ cIdioma.setValor(idioma.idiomaToLocale(idiomas.getSelectionModel().getSelectedItem())); cIdioma.alterar(); cMoeda.setValor(moeda.getText()); cMoeda.alterar(); cLogin.setValor(Integer.toString(login.getSelectionModel().getSelectedIndex())); cLogin.alterar(); if(primeiroAcesso){ Kernel.master.continuarPrimeiroAcesso(); }else{ Janela.showTooltip(Status.SUCESSO, idioma.getMensagem("operacao_sucesso"), Duracao.CURTA); Animacao.fadeInOutClose(formulario); Kernel.master.reiniciar(); } }else{ Janela.showMensagem(Status.ERRO, idioma.getMensagem("erro")); } } } private boolean validarFormulario(){ try { Validar.comboBox(idiomas); Validar.textField(moeda); 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")); } }