Boa tarde, estou implementando o uso de Beans Binding e encotrei algumas dificuldades no controle dos Validators.
Eu criei classes que extendem o Validator para ser usado como componente no meu swing, segue exemplo:
public class StringObrigatoriaValidator extends Validator<String>{
@Override
public Result validate(String value) {
Validator.Result result = null;
if (value == null || value.trim().equals("")) {
result = new Validator.Result(null, "String vazia!!");
}
return result;
}
}
Então no meu swing posso setar essa validação nas propriedades avançadas da vinculação. Eu quero realizar uma ação caso um erro de validação seja retornado.
Eu consegui isso usando o AbstractBindingListener no construtor do meu swing, mas não achei muito interessante, já que dessa forma terei que colocar mais
bastante código em cada validação que eu fizer, em um formulário grande não ficaria muito legal. Segue o exemplo:
AbstractBindingListener loggingBindingListener = new AbstractBindingListener()
{
public void syncFailed(Binding binding, SyncFailure fail){
String descricao;
if(fail != null && fail.getType() == Binding.SyncFailureType.VALIDATION_FAILED){
descricao = fail.getValidationResult().getDescription();
} else {
descricao = "Sincronização falhou!!";
}
String msg = "[" + binding.getName() + "] " + descricao;
System.out.println(msg);
JOptionPane.showMessageDialog(null, msg);
}
public void synced(Binding binding){
System.out.println("[" + binding.getName() + "] Sincroniado");
}
};
Gostaria de saber se alguém conhece alguma outra pratica que não me obrigue a escrever tanto código manualmente para realizar alguma ação após a validação de
objetos ligados pelo Beans Binding.
Praticamente não consigo material, e o que tem na net é muito superficial, alguem ja utilizou em produção???
Obrigado!!!