Se creo un objeto que contiene la validacion y muestra el mensaje de

error
This commit is contained in:
Daniel Cortés
2019-05-23 13:10:24 -04:00
parent 3c7a120314
commit 5a1dd544ad
27 changed files with 372 additions and 416 deletions

Binary file not shown.

View File

@@ -89,7 +89,7 @@ create table ejemplar
libro_id int unsigned not null,
estado_id int unsigned default 1,
unique key serie_libro (serie, libro_id),
foreign key (libro_id) references libro (id) on delete restrict on update cascade,
foreign key (libro_id) references libro (id) on delete cascade on update cascade,
foreign key (estado_id) references estado (id) on delete restrict on update cascade
);

View File

@@ -23,8 +23,9 @@ public class App {
String motif ="com.sun.java.swing.plaf.motif.MotifLookAndFeel";
String nimbus = "javax.swing.plaf.nimbus.NimbusLookAndFeel";
String metal = "javax.swing.plaf.metal.MetalLookAndFeel";
String gtk = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
UIManager.setLookAndFeel(metal);
UIManager.setLookAndFeel(gtk);
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) {
e.printStackTrace();
}

View File

@@ -2,6 +2,7 @@ package xyz.danielcortes.controllers.autor;
import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Autor;
import xyz.danielcortes.repository.AutorRepository;
import xyz.danielcortes.validator.AutorValidator;
@@ -34,11 +35,24 @@ public class AutorCreateController extends BaseController {
private void save() {
String nombre = view.getNombreField().getText();
if (!this.validator.validateNombre(nombre)) return;
ValidationResult nombreValidation = this.validator.validateNombre(nombre);
if (nombreValidation.hasError()) {
nombreValidation.showErrorDialog();
return;
}
String apellidoPaterno = view.getApellidoPaternoField().getText();
if (!this.validator.validateApellidoPaterno(apellidoPaterno)) return;
ValidationResult apellidoPaternoValidation = this.validator.validateApellidoPaterno(apellidoPaterno);
if(apellidoPaternoValidation.hasError()){
apellidoPaternoValidation.showErrorDialog();
return;
}
String apellidoMaterno = view.getApellidoMaternoField().getText();
if (!this.validator.validateApellidoMaterno(apellidoMaterno)) return;
ValidationResult apellidoMaternoValidation = this.validator.validateApellidoMaterno(apellidoMaterno);
if(apellidoMaternoValidation.hasError()){
apellidoMaternoValidation.showErrorDialog();
return;
}
Autor autor = new Autor();
autor.setNombre(nombre);

View File

@@ -6,6 +6,7 @@ import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.BaseTableModel;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Autor;
import xyz.danielcortes.repository.AutorRepository;
import xyz.danielcortes.validator.AutorValidator;
@@ -57,8 +58,12 @@ public class AutorSearchController extends BaseController {
Autor autor = this.getSelectedAutor();
if (autor == null)
return;
if(!this.validator.isDeleteable(autor))
ValidationResult autorValidation = this.validator.isDeleteable(autor);
if(autorValidation.hasError()) {
autorValidation.showErrorDialog();
return;
}
int option = JOptionPane.showConfirmDialog(
null,

View File

@@ -3,6 +3,7 @@ package xyz.danielcortes.controllers.autor;
import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Autor;
import xyz.danielcortes.repository.AutorRepository;
import xyz.danielcortes.validator.AutorValidator;
@@ -50,20 +51,32 @@ public class AutorUpdateController extends BaseController {
}
private void update() {
if (!this.validator.validateOriginal(this.autor))
ValidationResult autorValidation = this.validator.validateOriginal(this.autor);
if(autorValidation.hasError()){
autorValidation.showErrorDialog();
return;
}
String nombre = this.view.getNombreField().getText();
if (!this.validator.validateNombre(nombre))
ValidationResult nombreValidation = this.validator.validateNombre(nombre);
if (nombreValidation.hasError()){
nombreValidation.showErrorDialog();
return;
}
String apellidoPaterno = this.view.getApellidoPaternoField().getText();
if (!this.validator.validateApellidoPaterno(apellidoPaterno))
String apellidoPaterno = view.getApellidoPaternoField().getText();
ValidationResult apellidoPaternoValidation = this.validator.validateApellidoPaterno(apellidoPaterno);
if(apellidoPaternoValidation.hasError()){
apellidoPaternoValidation.showErrorDialog();
return;
}
String apellidoMaterno = this.view.getApellidoMaternoField().getText();
if (!this.validator.validateApellidoMaterno(apellidoMaterno))
String apellidoMaterno = view.getApellidoMaternoField().getText();
ValidationResult apellidoMaternoValidation = this.validator.validateApellidoMaterno(apellidoMaterno);
if(apellidoMaternoValidation.hasError()){
apellidoMaternoValidation.showErrorDialog();
return;
}
assert this.autor != null;
this.autor.setNombre(nombre);

View File

@@ -2,6 +2,7 @@ package xyz.danielcortes.controllers.categoria;
import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Categoria;
import xyz.danielcortes.repository.CategoriaRepository;
import xyz.danielcortes.validator.CategoriaValidator;
@@ -34,7 +35,11 @@ public class CategoriaCreateController extends BaseController {
private void save() {
String nombre = view.getNombreField().getText();
if(!this.validator.validateNombre(nombre)) return;
ValidationResult nombreValidation = this.validator.validateNombre(nombre);
if(nombreValidation.hasError()){
nombreValidation.showErrorDialog();
return;
}
Categoria categoria = new Categoria();
categoria.setNombre(nombre);

View File

@@ -6,6 +6,7 @@ import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.BaseTableModel;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Categoria;
import xyz.danielcortes.repository.CategoriaRepository;
import xyz.danielcortes.validator.CategoriaValidator;
@@ -55,8 +56,12 @@ public class CategoriaSearchController extends BaseController {
Categoria categoria = this.getSelectedCategoria();
if (categoria == null)
return;
if(!this.validator.isDeleteable(categoria))
ValidationResult deleteableValidation = this.validator.isDeleteable(categoria);
if(deleteableValidation.hasError()){
deleteableValidation.showErrorDialog();
return;
}
int option = JOptionPane.showConfirmDialog(
null,

View File

@@ -1,11 +1,12 @@
package xyz.danielcortes.controllers.categoria;
import javax.swing.JOptionPane;
import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Categoria;
import xyz.danielcortes.repository.CategoriaRepository;
import xyz.danielcortes.validator.CategoriaValidator;
import xyz.danielcortes.views.BasePanel;
import xyz.danielcortes.views.categoria.CategoriaUpdatePanel;
@@ -14,12 +15,13 @@ public class CategoriaUpdateController extends BaseController {
private Categoria categoria;
private CategoriaUpdatePanel view;
private CategoriaRepository categoriaRepository;
private CategoriaValidator validator;
public CategoriaUpdateController(CategoriaUpdatePanel view, LaunchController parent) {
super(parent);
this.view = view;
this.categoriaRepository = new CategoriaRepository();
this.validator = new CategoriaValidator(this.categoriaRepository);
this.setupListeners();
}
@@ -41,12 +43,18 @@ public class CategoriaUpdateController extends BaseController {
}
private void update() {
if (!validateOriginal(this.categoria))
ValidationResult originalValidation = this.validator.validateOriginal(this.categoria);
if(originalValidation.hasError()){
originalValidation.showErrorDialog();
return;
}
String nombre = this.view.getNombreField().getText();
if (!validateNombre(nombre))
ValidationResult nombreValidation = this.validator.validateNombre(nombre);
if(nombreValidation.hasError()){
nombreValidation.showErrorDialog();
return;
}
assert this.categoria != null;
this.categoria.setNombre(nombre);
@@ -55,37 +63,6 @@ public class CategoriaUpdateController extends BaseController {
this.getParentController().showCard(PanelName.CATEGORIA_SEARCH);
}
private boolean validateOriginal(Categoria original) {
if (original == null) {
JOptionPane.showMessageDialog(
null,
"No hay categoria seleccionada",
"Error",
JOptionPane.ERROR_MESSAGE
);
return false;
}
return true;
}
private boolean validateNombre(String nombre) {
if (nombre == null) {
JOptionPane.showMessageDialog(
this.view.getContentPane(),
"El nombre es nulo",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
} else if (nombre.isEmpty()) {
JOptionPane.showMessageDialog(this.view.getContentPane(),
"El nombre esta vacío",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
}
return true;
}
public BasePanel getView() {
return view;
}

View File

@@ -4,7 +4,6 @@ import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.models.Categoria;
import xyz.danielcortes.repository.CategoriaRepository;
import xyz.danielcortes.views.BasePanel;
import xyz.danielcortes.views.categoria.CategoriaViewPanel;
@@ -12,12 +11,10 @@ public class CategoriaViewController extends BaseController {
private Categoria categoria;
private CategoriaViewPanel view;
private CategoriaRepository categoriaRepository;
public CategoriaViewController(CategoriaViewPanel view, LaunchController parent) {
super(parent);
this.view = view;
this.categoriaRepository = new CategoriaRepository();
this.setupListeners();
}

View File

@@ -2,6 +2,7 @@ package xyz.danielcortes.controllers.editorial;
import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Editorial;
import xyz.danielcortes.repository.EditorialRepository;
import xyz.danielcortes.validator.EditorialValidator;
@@ -35,7 +36,11 @@ public class EditorialCreateController extends BaseController {
private void save() {
String nombre = this.view.getNombreField().getText();
if(!this.validator.validateNombre(nombre)) return;
ValidationResult nombreValidation = this.validator.validateNombre(nombre);
if(nombreValidation.hasError()){
nombreValidation.showErrorDialog();
return;
}
Editorial editorial = new Editorial();
editorial.setNombre(nombre);

View File

@@ -6,6 +6,7 @@ import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.BaseTableModel;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Editorial;
import xyz.danielcortes.repository.EditorialRepository;
import xyz.danielcortes.validator.EditorialValidator;
@@ -64,8 +65,11 @@ public class EditorialSearchController extends BaseController {
Editorial editorial = this.getSelectedEditorial();
if (editorial == null)
return;
if(!this.validator.isDeleteable(editorial))
ValidationResult deleteableValidation = this.validator.isDeleteable(editorial);
if(deleteableValidation.hasError()){
deleteableValidation.showErrorDialog();
return;
}
int option = JOptionPane.showConfirmDialog(
null,

View File

@@ -3,6 +3,7 @@ package xyz.danielcortes.controllers.editorial;
import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Editorial;
import xyz.danielcortes.repository.EditorialRepository;
import xyz.danielcortes.validator.EditorialValidator;
@@ -43,12 +44,18 @@ public class EditorialUpdateController extends BaseController {
}
private void update() {
if (!this.validator.validateOriginal(this.editorial))
ValidationResult originalValidation = this.validator.validateOriginal(this.editorial);
if(originalValidation.hasError()){
originalValidation.showErrorDialog();
return;
}
String nombre = this.view.getNombreField().getText();
if (!this.validator.validateNombre(nombre))
ValidationResult nombreValidation = this.validator.validateNombre(nombre);
if(nombreValidation.hasError()){
nombreValidation.showErrorDialog();
return;
}
assert this.editorial != null;
this.editorial.setNombre(nombre);

View File

@@ -2,6 +2,7 @@ package xyz.danielcortes.controllers.idioma;
import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Idioma;
import xyz.danielcortes.repository.IdiomaRepository;
import xyz.danielcortes.validator.IdiomaValidator;
@@ -35,8 +36,11 @@ public class IdiomaCreateController extends BaseController {
private void save() {
String nombre = view.getNombreField().getText();
if (!this.validator.validateNombre(nombre))
ValidationResult nombreValidation = this.validator.validateNombre(nombre);
if(nombreValidation.hasError()){
nombreValidation.showErrorDialog();
return;
}
Idioma idioma = new Idioma();
idioma.setNombre(nombre);

View File

@@ -6,6 +6,7 @@ import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.BaseTableModel;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Idioma;
import xyz.danielcortes.repository.IdiomaRepository;
import xyz.danielcortes.validator.IdiomaValidator;
@@ -66,8 +67,12 @@ public class IdiomaSearchController extends BaseController {
Idioma idioma = this.getSelectedIdioma();
if(idioma == null)
return;
if(!this.validator.isDeleteable(idioma))
ValidationResult deleteableValidation = this.validator.isDeleteable(idioma);
if(deleteableValidation.hasError()){
deleteableValidation.showErrorDialog();
return;
}
int option = JOptionPane.showConfirmDialog(
null,

View File

@@ -3,6 +3,7 @@ package xyz.danielcortes.controllers.idioma;
import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Idioma;
import xyz.danielcortes.repository.IdiomaRepository;
import xyz.danielcortes.validator.IdiomaValidator;
@@ -42,10 +43,18 @@ public class IdiomaUpdateController extends BaseController {
}
private void update() {
if (!this.validator.validateOriginal(this.idioma)) return;
ValidationResult originalValidation = this.validator.validateOriginal(this.idioma);
if(originalValidation.hasError()){
originalValidation.showErrorDialog();
return;
}
String nombre = this.view.getNombreField().getText();
if (!this.validator.validateNombre(nombre)) return;
ValidationResult nombreValidation = this.validator.validateNombre(nombre);
if(nombreValidation.hasError()){
nombreValidation.showErrorDialog();
return;
}
assert this.idioma != null;
this.idioma.setNombre(nombre);

View File

@@ -8,6 +8,7 @@ import javax.swing.JComboBox;
import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Autor;
import xyz.danielcortes.models.Categoria;
import xyz.danielcortes.models.Editorial;
@@ -64,32 +65,68 @@ public class LibroCreateController extends BaseController {
private void save() {
String isbn = this.view.getIsbnField().getText();
if(!validator.validateISBN(isbn)) return;
ValidationResult isbnValidation = this.validator.validateISBN(isbn);
if(isbnValidation.hasError()){
isbnValidation.showErrorDialog();
return;
}
isbn = isbn.replaceAll("[^\\d]", "");
String titulo = this.view.getTituloField().getText();
if(!validator.validateTitulo(titulo)) return;
ValidationResult tituloValidation = this.validator.validateTitulo(titulo);
if(tituloValidation.hasError()){
tituloValidation.showErrorDialog();
return;
}
String numeroPaginas = this.view.getPaginasField().getText();
if(!validator.validateNumeroPaginas(numeroPaginas)) return;
ValidationResult numeroPaginasValidation = this.validator.validateNumeroPaginas(numeroPaginas);
if(numeroPaginasValidation.hasError()){
numeroPaginasValidation.showErrorDialog();
return;
}
String anoPublicacion = this.view.getAnoPublicacionField().getText();
if(!validator.validateAnoPublicacion(anoPublicacion)) return;
ValidationResult anoPublicacionValidation = this.validator.validateAnoPublicacion(anoPublicacion);
if(anoPublicacionValidation.hasError()){
anoPublicacionValidation.showErrorDialog();
return;
}
String precioReferencial = this.view.getPrecioReferenciaField().getText();
if(!validator.validatePrecioReferencia(precioReferencial)) return;
ValidationResult precioReferencialValidation = this.validator.validatePrecioReferencia(precioReferencial);
if(precioReferencialValidation.hasError()){
precioReferencialValidation.showErrorDialog();
return;
}
List<Idioma> idiomas = this.view.getIdiomasList().getSelectedValuesList();
if(!validator.validateIdiomas(idiomas)) return;
ValidationResult idiomasValidation = this.validator.validateIdiomas(idiomas);
if(idiomasValidation.hasError()){
idiomasValidation.showErrorDialog();
return;
}
List<Autor> autores = this.view.getAutoresList().getSelectedValuesList();
if(!validator.validateAutores(autores)) return;
ValidationResult autoresValidation = this.validator.validateAutores(autores);
if(autoresValidation.hasError()) {
autoresValidation.showErrorDialog();
return;
}
List<Categoria> categorias = this.view.getCategoriasList().getSelectedValuesList();
if(!validator.validateCategorias(categorias)) return;
ValidationResult categoriasValidation = this.validator.validateCategorias(categorias);
if(categoriasValidation.hasError()){
categoriasValidation.showErrorDialog();
return;
}
Editorial editorial = (Editorial) this.view.getEditorialCombo().getSelectedItem();
if(!validator.validateEditorial(editorial)) return;
ValidationResult editorialValidation = this.validator.validateEditorial(editorial);
if(editorialValidation.hasError()){
editorialValidation.showErrorDialog();
return;
}
Libro libro = new Libro();
libro.setIsbn(isbn);

View File

@@ -6,6 +6,7 @@ import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.BaseTableModel;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Ejemplar;
import xyz.danielcortes.models.Libro;
import xyz.danielcortes.repository.EjemplarRepository;
@@ -110,8 +111,11 @@ public class LibroSearchController extends BaseController {
if (serie == null)
return;
if (!this.ejemplarValidator.validateSerie(serie, libro.getId()))
ValidationResult ejemplarValidation = this.ejemplarValidator.validateSerie(serie, libro.getId());
if (ejemplarValidation.hasError()){
ejemplarValidation.showErrorDialog();
return;
}
Ejemplar ejemplar = new Ejemplar();
ejemplar.setLibro(libro);

View File

@@ -9,6 +9,7 @@ import xyz.danielcortes.controllers.BaseController;
import xyz.danielcortes.controllers.LaunchController;
import xyz.danielcortes.framework.JListUtils;
import xyz.danielcortes.framework.PanelName;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Autor;
import xyz.danielcortes.models.Categoria;
import xyz.danielcortes.models.Editorial;
@@ -86,37 +87,75 @@ public class LibroUpdateController extends BaseController {
}
private void update() {
// @formatter:off
if(!validator.validateLibro(libro)) return;
ValidationResult libroValidation = this.validator.validateLibro(this.libro);
if(libroValidation.hasError()){
libroValidation.showErrorDialog();
return;
}
String isbn = this.view.getIsbnField().getText();
if(!validator.validateISBN(isbn)) return;
ValidationResult isbnValidation = this.validator.validateISBN(isbn);
if(isbnValidation.hasError()){
isbnValidation.showErrorDialog();
return;
}
isbn = isbn.replaceAll("[^\\d]", "");
String titulo = this.view.getTituloField().getText();
if(!validator.validateTitulo(titulo)) return;
ValidationResult tituloValidation = this.validator.validateTitulo(titulo);
if(tituloValidation.hasError()){
tituloValidation.showErrorDialog();
return;
}
String numeroPaginas = this.view.getPaginasField().getText();
if(!validator.validateNumeroPaginas(numeroPaginas)) return;
ValidationResult numeroPaginasValidation = this.validator.validateNumeroPaginas(numeroPaginas);
if(numeroPaginasValidation.hasError()){
numeroPaginasValidation.showErrorDialog();
return;
}
String anoPublicacion = this.view.getAnoPublicacionField().getText();
if(!validator.validateAnoPublicacion(anoPublicacion)) return;
ValidationResult anoPublicacionValidation = this.validator.validateAnoPublicacion(anoPublicacion);
if(anoPublicacionValidation.hasError()){
anoPublicacionValidation.showErrorDialog();
return;
}
String precioReferencial = this.view.getPrecioReferenciaField().getText();
if(!validator.validatePrecioReferencia(precioReferencial)) return;
ValidationResult precioReferencialValidation = this.validator.validatePrecioReferencia(precioReferencial);
if(precioReferencialValidation.hasError()){
precioReferencialValidation.showErrorDialog();
return;
}
List<Idioma> idiomas = this.view.getIdiomasList().getSelectedValuesList();
if(!validator.validateIdiomas(idiomas)) return;
ValidationResult idiomasValidation = this.validator.validateIdiomas(idiomas);
if(idiomasValidation.hasError()){
idiomasValidation.showErrorDialog();
return;
}
List<Autor> autores = this.view.getAutoresList().getSelectedValuesList();
if(!validator.validateAutores(autores)) return;
ValidationResult autoresValidation = this.validator.validateAutores(autores);
if(autoresValidation.hasError()) {
autoresValidation.showErrorDialog();
return;
}
List<Categoria> categorias = this.view.getCategoriasList().getSelectedValuesList();
if(!validator.validateCategorias(categorias)) return;
ValidationResult categoriasValidation = this.validator.validateCategorias(categorias);
if(categoriasValidation.hasError()){
categoriasValidation.showErrorDialog();
return;
}
Editorial editorial = (Editorial) this.view.getEditorialCombo().getSelectedItem();
if(!validator.validateEditorial(editorial)) return;
// @formatter:on
ValidationResult editorialValidation = this.validator.validateEditorial(editorial);
if(editorialValidation.hasError()){
editorialValidation.showErrorDialog();
return;
}
assert libro != null;

View File

@@ -0,0 +1,49 @@
package xyz.danielcortes.framework;
import javax.swing.JOptionPane;
public class ValidationResult {
public static ValidationResult NON_ERROR = new ValidationResult();
private String message;
private String title;
private boolean hasError;
private ValidationResult(){
this.hasError = false;
this.message = "No hubo error";
this.title = "Info";
}
public ValidationResult(String message){
this.title = "Error";
this.message = message;
this.hasError = true;
}
public ValidationResult(String message, String title) {
this.title = title;
this.message = message;
this.hasError = true;
}
public String getMessage() {
return message;
}
public String getTitle() {
return title;
}
public boolean hasError() {
return hasError;
}
public void showErrorDialog() {
if(this.hasError)
JOptionPane.showMessageDialog(
null,
this.message,
this.title,
JOptionPane.ERROR_MESSAGE);
}
}

View File

@@ -1,6 +1,6 @@
package xyz.danielcortes.validator;
import javax.swing.JOptionPane;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Autor;
import xyz.danielcortes.repository.AutorRepository;
@@ -12,87 +12,45 @@ public class AutorValidator {
this.autorRepository = autorRepository;
}
public boolean validateNombre(String nombre) {
public ValidationResult validateNombre(String nombre) {
if (nombre == null) {
JOptionPane.showMessageDialog(
null,
"El nombre es nulo",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El nombre es nulo");
} else if (nombre.isEmpty()) {
JOptionPane.showMessageDialog(
null,
"El nombre esta vacío",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El nombre esta vacio");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateApellidoPaterno(String apellidoPaterno) {
public ValidationResult validateApellidoPaterno(String apellidoPaterno) {
if (apellidoPaterno == null) {
JOptionPane.showMessageDialog(
null,
"El apellido paterno es nulo",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El apellido paterno es nulo");
} else if (apellidoPaterno.isEmpty()) {
JOptionPane.showMessageDialog(
null,
"El apellido paterno esta vacío",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El apellido paterno esta vacio");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateApellidoMaterno(String apellidoMaterno) {
public ValidationResult validateApellidoMaterno(String apellidoMaterno) {
if (apellidoMaterno == null) {
JOptionPane.showMessageDialog(
null,
"El apellido materno es nulo",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El apellido materno es nulo");
} else if (apellidoMaterno.isEmpty()) {
JOptionPane.showMessageDialog(
null,
"El apellido materno esta vacío",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El apellido materno esta vacío");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateOriginal(Autor original) {
public ValidationResult validateOriginal(Autor original) {
if (original == null) {
JOptionPane.showMessageDialog(
null,
"No hay Autor seleccionado",
"Error",
JOptionPane.ERROR_MESSAGE
);
return false;
return new ValidationResult("No hay Autor seleccionado");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean isDeleteable(Autor autor){
public ValidationResult isDeleteable(Autor autor){
if(autor.getLibros().size() > 0){
JOptionPane.showMessageDialog(
null,
"No se puede eliminar el autor ya que tiene libros asociados",
"Error",
JOptionPane.ERROR_MESSAGE
);
return false;
return new ValidationResult("No se puede eliminar el autor ya que tiene libros asociados");
}
return true;
return ValidationResult.NON_ERROR;
}
}

View File

@@ -1,6 +1,6 @@
package xyz.danielcortes.validator;
import javax.swing.JOptionPane;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Categoria;
import xyz.danielcortes.repository.CategoriaRepository;
@@ -12,34 +12,27 @@ public class CategoriaValidator {
this.categoriaRepository = categoriaRepository;
}
public boolean validateNombre(String nombre) {
public ValidationResult validateNombre(String nombre) {
if (nombre == null) {
JOptionPane.showMessageDialog(
null,
"El nombre es nulo",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El nombre es nulo");
} else if (nombre.isEmpty()) {
JOptionPane.showMessageDialog(
null,
"El nombre esta vacío",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El nombre esta vacío");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean isDeleteable(Categoria categoria){
if(categoria.getLibros().size() > 0){
JOptionPane.showMessageDialog(
null,
"No se puede eliminar la categoria ya que tiene libros asociados",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
public ValidationResult validateOriginal(Categoria categoria){
if(categoria == null){
return new ValidationResult("No hay categoria seleccionada");
}
return true;
return ValidationResult.NON_ERROR;
}
public ValidationResult isDeleteable(Categoria categoria){
if(categoria.getLibros().size() > 0){
return new ValidationResult("No se puede eliminar la categoria ya que tiene libros asociados");
}
return ValidationResult.NON_ERROR;
}
}

View File

@@ -1,6 +1,6 @@
package xyz.danielcortes.validator;
import javax.swing.JOptionPane;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Editorial;
import xyz.danielcortes.repository.EditorialRepository;
@@ -12,49 +12,27 @@ public class EditorialValidator {
this.editorialRepository = editorialRepository;
}
public boolean validateNombre(String nombre) {
public ValidationResult validateNombre(String nombre) {
if (nombre == null) {
JOptionPane.showMessageDialog(
null,
"El nombre es nulo",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El nombre es nulo");
} else if (nombre.isEmpty()) {
JOptionPane.showMessageDialog(
null,
"El nombre esta vacío",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El nombre esta vacío");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateOriginal(Editorial original) {
public ValidationResult validateOriginal(Editorial original) {
if (original == null) {
JOptionPane.showMessageDialog(
null,
"No hay Editorial seleccionada",
"Error",
JOptionPane.ERROR_MESSAGE
);
return false;
return new ValidationResult("No hay Editorial seleccionada");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean isDeleteable(Editorial editorial){
public ValidationResult isDeleteable(Editorial editorial){
if(editorial.getLibros().size() > 0){
JOptionPane.showMessageDialog(
null,
"No se puede eliminar la editorial ya que tiene libros asociados",
"Error",
JOptionPane.ERROR_MESSAGE
);
return false;
return new ValidationResult("No se puede eliminar la editorial ya que tiene libros asociados");
}
return true;
return ValidationResult.NON_ERROR;
}
}

View File

@@ -1,6 +1,6 @@
package xyz.danielcortes.validator;
import javax.swing.JOptionPane;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.repository.EjemplarRepository;
public class EjemplarValidator {
@@ -11,32 +11,17 @@ public class EjemplarValidator {
this.ejemplarRepository = ejemplarRepository;
}
public boolean validateSerie(String serie, Integer libro_id) {
public ValidationResult validateSerie(String serie, Integer libro_id) {
if (serie == null) {
JOptionPane.showMessageDialog(
null,
"La serie es nula",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("La serie es nula");
}
if (serie.isEmpty()) {
JOptionPane.showMessageDialog(
null,
"La serie esta vacia",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("La serie esta vacia");
}
if (ejemplarRepository.exists(serie, libro_id)) {
JOptionPane.showMessageDialog(
null,
"El numero de serie ya existe",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El numero de serie ya existe");
}
return true;
return ValidationResult.NON_ERROR;
}
}

View File

@@ -1,6 +1,6 @@
package xyz.danielcortes.validator;
import javax.swing.JOptionPane;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Idioma;
import xyz.danielcortes.repository.IdiomaRepository;
@@ -13,49 +13,27 @@ public class IdiomaValidator {
}
public boolean validateOriginal(Idioma original) {
public ValidationResult validateOriginal(Idioma original) {
if (original == null) {
JOptionPane.showMessageDialog(
null,
"No hay Idioma seleccionado",
"Error",
JOptionPane.ERROR_MESSAGE
);
return false;
return new ValidationResult("No hay Idioma seleccionado");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateNombre(String nombre) {
public ValidationResult validateNombre(String nombre) {
if (nombre == null) {
JOptionPane.showMessageDialog(
null,
"El nombre es nulo",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El nombre es nulo");
} else if (nombre.isEmpty()) {
JOptionPane.showMessageDialog(
null,
"El nombre esta vacío",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El nombre esta vacío");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean isDeleteable(Idioma idioma){
if(idioma.getLibros().size() > 0){
JOptionPane.showMessageDialog(
null,
"No se puede eliminar el idioma ya que tiene libros asociados",
"Error",
JOptionPane.ERROR_MESSAGE
);
return false;
public ValidationResult isDeleteable(Idioma idioma) {
if (idioma.getLibros().size() > 0) {
return new ValidationResult("No se puede eliminar el idioma ya que tiene libros asociados");
}
return true;
return ValidationResult.NON_ERROR;
}
}

View File

@@ -2,8 +2,8 @@ package xyz.danielcortes.validator;
import java.util.List;
import java.util.Objects;
import javax.swing.JOptionPane;
import xyz.danielcortes.framework.GeneralValidator;
import xyz.danielcortes.framework.ValidationResult;
import xyz.danielcortes.models.Autor;
import xyz.danielcortes.models.Categoria;
import xyz.danielcortes.models.Editorial;
@@ -19,239 +19,122 @@ public class LibroValidator {
this.libroRepository = libroRepository;
}
public boolean validateLibro(Libro libro) {
public ValidationResult validateLibro(Libro libro) {
if (libro == null) {
JOptionPane.showMessageDialog(
null,
"No hay Libro seleccionado",
"Error",
JOptionPane.ERROR_MESSAGE
);
return false;
return new ValidationResult("No hay Libro seleccionado");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateISBN(String isbn) {
public ValidationResult validateISBN(String isbn) {
if (isbn == null) {
JOptionPane.showMessageDialog(
null,
"El ISBN es nulo",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El ISBN es nulo");
}
if (isbn.isEmpty()) {
JOptionPane.showMessageDialog(
null,
"El ISBN esta vacio",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El ISBN esta vacio");
}
isbn = isbn.replaceAll("[^\\d]", "");
if ((isbn.length() == 13 && !ISBN13CheckSum(isbn))
|| (isbn.length() == 10 && !ISBN10CheckSum(isbn))
|| (isbn.length() != 10 && isbn.length() != 13)) {
JOptionPane.showMessageDialog(
null,
"El ISBN no es valido",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El ISBN no es valido");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateTitulo(String titulo) {
public ValidationResult validateTitulo(String titulo) {
if (titulo == null) {
JOptionPane.showMessageDialog(
null,
"El titulo es nulo",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El titulo es nulo");
}
if (titulo.isEmpty()) {
JOptionPane.showMessageDialog(
null,
"El titulo esta vacio",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El titulo esta vacio");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateNumeroPaginas(String numeroPaginas) {
public ValidationResult validateNumeroPaginas(String numeroPaginas) {
if (numeroPaginas == null) {
JOptionPane.showMessageDialog(
null,
"El numero de paginas es nulo",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El numero de paginas es nulo");
}
if (numeroPaginas.isEmpty()) {
JOptionPane.showMessageDialog(
null,
"El numero de paginas esta vacio",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El numero de paginas esta vacio");
}
if (!GeneralValidator.isInteger(numeroPaginas)) {
JOptionPane.showMessageDialog(
null,
"El numero de paginas no es un numero",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El numero de paginas no es un numero");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validatePrecioReferencia(String precioReferencia) {
public ValidationResult validatePrecioReferencia(String precioReferencia) {
if (precioReferencia == null) {
JOptionPane.showMessageDialog(
null,
"El precio referencial es nulo",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El precio referencial es nulo");
}
if (precioReferencia.isEmpty()) {
JOptionPane.showMessageDialog(
null,
"El precio referencial esta vacio",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El precio referencial esta vacio");
}
if (!GeneralValidator.isInteger(precioReferencia)) {
JOptionPane.showMessageDialog(
null,
"El precio referencial no es un numero",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El precio referencial no es un numero");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateAnoPublicacion(String anoPublicacion) {
public ValidationResult validateAnoPublicacion(String anoPublicacion) {
if (anoPublicacion == null) {
JOptionPane.showMessageDialog(
null,
"El año de publicacion es nulo",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El año de publicacion es nulo");
}
if (anoPublicacion.isEmpty()) {
JOptionPane.showMessageDialog(
null,
"El año de publicacion esta vacio",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El año de publicacion esta vacio");
}
if (!GeneralValidator.isInteger(anoPublicacion)) {
JOptionPane.showMessageDialog(
null,
"El año de publicacion no es un numero",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El año de publicacion no es un numero");
}
if (!GeneralValidator.isYear(anoPublicacion)) {
JOptionPane.showMessageDialog(
null,
"El año de publicacion no es un año valido",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("El año de publicacion no es un año valido");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateIdiomas(List<Idioma> idiomas) {
public ValidationResult validateIdiomas(List<Idioma> idiomas) {
if (idiomas.size() == 0) {
JOptionPane.showMessageDialog(
null,
"No hay idiomas seleccionados",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("No hay idiomas seleccionados");
}
if (idiomas.stream().anyMatch(Objects::isNull)) {
JOptionPane.showMessageDialog(
null,
"Se selecciono un idioma no existente",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("Se selecciono un idioma no existente");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateAutores(List<Autor> autores) {
public ValidationResult validateAutores(List<Autor> autores) {
if (autores.size() == 0) {
JOptionPane.showMessageDialog(
null,
"No hay autores seleccionados",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("No hay autores seleccionados");
}
if (autores.stream().anyMatch(Objects::isNull)) {
JOptionPane.showMessageDialog(
null,
"Se selecciono un autor no existente",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("Se selecciono un autor no existente");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateCategorias(List<Categoria> categorias) {
public ValidationResult validateCategorias(List<Categoria> categorias) {
if (categorias.size() == 0) {
JOptionPane.showMessageDialog(
null,
"No hay autores seleccionados",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("No hay categorias seleccionadas");
}
if (categorias.stream().anyMatch(Objects::isNull)) {
JOptionPane.showMessageDialog(
null,
"Se selecciono una categoria no existente",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("Se selecciono una categoria no existente");
}
return true;
return ValidationResult.NON_ERROR;
}
public boolean validateEditorial(Editorial editorial) {
public ValidationResult validateEditorial(Editorial editorial) {
if (editorial == null) {
JOptionPane.showMessageDialog(
null,
"No hay editorial seleccionada",
"Error",
JOptionPane.ERROR_MESSAGE);
return false;
return new ValidationResult("No hay editorial seleccionada");
}
return true;
return ValidationResult.NON_ERROR;
}
private boolean ISBN10CheckSum(String isbn) {

View File

@@ -17,6 +17,7 @@ public class LaunchFrame extends JFrame {
this.setMinimumSize(this.dimension);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setTitle("Biblioteca");
this.setupCardPanel();
}