/*
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.biblioteca.utilitario;
import badernageral.bgfinancas.biblioteca.sistema.Janela;
import badernageral.bgfinancas.biblioteca.tipo.Duracao;
import badernageral.bgfinancas.biblioteca.tipo.Status;
import badernageral.bgfinancas.idioma.Linguagem;
import java.math.BigDecimal;
import javafx.collections.ObservableList;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Control;
import javafx.scene.control.DatePicker;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
public final class Validar {
private static final Linguagem idioma = Linguagem.getInstance();
private Validar(){ }
public static void textField(TextField campo) throws Erro{
if(campo.getText().equals("")){
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("campo_nao_informado"), campo, Duracao.CURTA);
campo.requestFocus();
throw new Erro();
}
}
public static void datePicker(DatePicker campo) throws Erro{
if(campo.getValue() == null){
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("campo_nao_informado"), campo, Duracao.CURTA);
campo.requestFocus();
throw new Erro();
}
}
public static void comboBox(ComboBox campo) throws Erro{
if(campo.getSelectionModel().getSelectedItem()==null){
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("campo_nao_informado"), campo, Duracao.CURTA);
campo.requestFocus();
throw new Erro();
}
}
public static void igualdade(ComboBox campo_1, ComboBox campo_2) throws Erro{
if(campo_1.getSelectionModel().getSelectedItem().toString().equals(campo_2.getSelectionModel().getSelectedItem().toString())){
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("campos_iguais"), campo_1, Duracao.CURTA);
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("campos_iguais"), campo_2, Duracao.CURTA);
campo_1.requestFocus();
throw new Erro();
}
}
public static void passwordField(PasswordField senha) throws Erro{
if(senha.getText().equals("")){
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("campo_nao_informado"), senha, Duracao.CURTA);
senha.requestFocus();
throw new Erro();
}
}
public static void passwordField(PasswordField senha, PasswordField senha_confirmar) throws Erro{
Validar.passwordField(senha);
if(!senha.getText().equals(senha_confirmar.getText())){
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("senhas_diferentes"), senha, Duracao.CURTA);
senha.requestFocus();
throw new Erro();
}
}
public static void tableView(TableView tabela, Control control) throws Erro{
if(tabela.getItems().size()<1){
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("restricao_tabela"), control, Duracao.CURTA);
tabela.requestFocus();
throw new Erro();
}
}
public static void textFieldDecimal(TextField campo) throws Erro{
try{
BigDecimal valor = new BigDecimal(campo.getText());
}catch(NumberFormatException ex){
Calculadora.calcular(campo);
}
}
public static void decimal(String numero, Control campo) throws Erro{
try{
BigDecimal valor = new BigDecimal(numero);
}catch(NumberFormatException ex){
if(campo!=null){
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("use_ponto_decimais"), campo, Duracao.NORMAL);
}
throw new Erro();
}
}
public static void autoFiltro(AutoFiltro autoFiltro, ComboBox campo) throws Erro{
if(autoFiltro.getItem()==null){
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("validar_autofiltro"), campo, Duracao.LONGA);
campo.requestFocus();
throw new Erro();
}
}
public static boolean alteracao(ObservableList<?> lista, Button alterar){
if(lista.size()<1 || lista.get(0)==null){
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("selecione_item_alterar"), alterar, Duracao.NORMAL);
return false;
}else if(lista.size()>1){
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("restricao_alteracao_multipla"), alterar, Duracao.NORMAL);
return false;
}else{
return true;
}
}
public static boolean exclusao(ObservableList<?> lista, Button excluir, Boolean pergunta){
if(lista.size()<=0 || lista.get(0)==null){
Janela.showTooltip(Status.ADVERTENCIA, idioma.getMensagem("selecione_item_excluir"), excluir, Duracao.NORMAL);
return false;
}else{
if(pergunta){
return Janela.showPergunta(idioma.getMensagem("tem_certeza"));
}else{
return true;
}
}
}
public static boolean exclusao(ObservableList<?> lista, Button excluir){
return exclusao(lista, excluir, true);
}
}