diff --git a/biblioteca.vpp b/biblioteca.vpp index 5feccf1..34f5a52 100644 Binary files a/biblioteca.vpp and b/biblioteca.vpp differ diff --git a/script.sql b/script.sql index d4791d9..4bcfe3f 100644 --- a/script.sql +++ b/script.sql @@ -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 ); diff --git a/src/main/java/xyz/danielcortes/App.java b/src/main/java/xyz/danielcortes/App.java index a8c8a19..c3f389b 100644 --- a/src/main/java/xyz/danielcortes/App.java +++ b/src/main/java/xyz/danielcortes/App.java @@ -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(); } diff --git a/src/main/java/xyz/danielcortes/controllers/autor/AutorCreateController.java b/src/main/java/xyz/danielcortes/controllers/autor/AutorCreateController.java index f816c91..ebb9363 100644 --- a/src/main/java/xyz/danielcortes/controllers/autor/AutorCreateController.java +++ b/src/main/java/xyz/danielcortes/controllers/autor/AutorCreateController.java @@ -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); diff --git a/src/main/java/xyz/danielcortes/controllers/autor/AutorSearchController.java b/src/main/java/xyz/danielcortes/controllers/autor/AutorSearchController.java index d436a34..d2fbba9 100644 --- a/src/main/java/xyz/danielcortes/controllers/autor/AutorSearchController.java +++ b/src/main/java/xyz/danielcortes/controllers/autor/AutorSearchController.java @@ -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, diff --git a/src/main/java/xyz/danielcortes/controllers/autor/AutorUpdateController.java b/src/main/java/xyz/danielcortes/controllers/autor/AutorUpdateController.java index c3565f2..fab473c 100644 --- a/src/main/java/xyz/danielcortes/controllers/autor/AutorUpdateController.java +++ b/src/main/java/xyz/danielcortes/controllers/autor/AutorUpdateController.java @@ -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); diff --git a/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaCreateController.java b/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaCreateController.java index 8f1a584..d8010bd 100644 --- a/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaCreateController.java +++ b/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaCreateController.java @@ -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); diff --git a/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaSearchController.java b/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaSearchController.java index ea3042a..a4d51e6 100644 --- a/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaSearchController.java +++ b/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaSearchController.java @@ -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, diff --git a/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaUpdateController.java b/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaUpdateController.java index 38c0b4e..e259547 100644 --- a/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaUpdateController.java +++ b/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaUpdateController.java @@ -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; } diff --git a/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaViewController.java b/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaViewController.java index ca7abaa..5fba07b 100644 --- a/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaViewController.java +++ b/src/main/java/xyz/danielcortes/controllers/categoria/CategoriaViewController.java @@ -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(); } diff --git a/src/main/java/xyz/danielcortes/controllers/editorial/EditorialCreateController.java b/src/main/java/xyz/danielcortes/controllers/editorial/EditorialCreateController.java index c97f450..24e5dcd 100644 --- a/src/main/java/xyz/danielcortes/controllers/editorial/EditorialCreateController.java +++ b/src/main/java/xyz/danielcortes/controllers/editorial/EditorialCreateController.java @@ -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); diff --git a/src/main/java/xyz/danielcortes/controllers/editorial/EditorialSearchController.java b/src/main/java/xyz/danielcortes/controllers/editorial/EditorialSearchController.java index feed66f..b7386e1 100644 --- a/src/main/java/xyz/danielcortes/controllers/editorial/EditorialSearchController.java +++ b/src/main/java/xyz/danielcortes/controllers/editorial/EditorialSearchController.java @@ -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, diff --git a/src/main/java/xyz/danielcortes/controllers/editorial/EditorialUpdateController.java b/src/main/java/xyz/danielcortes/controllers/editorial/EditorialUpdateController.java index ec188ed..c8f8338 100644 --- a/src/main/java/xyz/danielcortes/controllers/editorial/EditorialUpdateController.java +++ b/src/main/java/xyz/danielcortes/controllers/editorial/EditorialUpdateController.java @@ -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); diff --git a/src/main/java/xyz/danielcortes/controllers/idioma/IdiomaCreateController.java b/src/main/java/xyz/danielcortes/controllers/idioma/IdiomaCreateController.java index a848a0a..e7b153c 100644 --- a/src/main/java/xyz/danielcortes/controllers/idioma/IdiomaCreateController.java +++ b/src/main/java/xyz/danielcortes/controllers/idioma/IdiomaCreateController.java @@ -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); diff --git a/src/main/java/xyz/danielcortes/controllers/idioma/IdiomaSearchController.java b/src/main/java/xyz/danielcortes/controllers/idioma/IdiomaSearchController.java index 038d320..30e52e7 100644 --- a/src/main/java/xyz/danielcortes/controllers/idioma/IdiomaSearchController.java +++ b/src/main/java/xyz/danielcortes/controllers/idioma/IdiomaSearchController.java @@ -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, diff --git a/src/main/java/xyz/danielcortes/controllers/idioma/IdiomaUpdateController.java b/src/main/java/xyz/danielcortes/controllers/idioma/IdiomaUpdateController.java index bf8ab54..d26d37e 100644 --- a/src/main/java/xyz/danielcortes/controllers/idioma/IdiomaUpdateController.java +++ b/src/main/java/xyz/danielcortes/controllers/idioma/IdiomaUpdateController.java @@ -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); diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroCreateController.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroCreateController.java index b5c407b..7efc7b9 100644 --- a/src/main/java/xyz/danielcortes/controllers/libro/LibroCreateController.java +++ b/src/main/java/xyz/danielcortes/controllers/libro/LibroCreateController.java @@ -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 idiomas = this.view.getIdiomasList().getSelectedValuesList(); - if(!validator.validateIdiomas(idiomas)) return; + ValidationResult idiomasValidation = this.validator.validateIdiomas(idiomas); + if(idiomasValidation.hasError()){ + idiomasValidation.showErrorDialog(); + return; + } List autores = this.view.getAutoresList().getSelectedValuesList(); - if(!validator.validateAutores(autores)) return; + ValidationResult autoresValidation = this.validator.validateAutores(autores); + if(autoresValidation.hasError()) { + autoresValidation.showErrorDialog(); + return; + } List 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); diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroSearchController.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroSearchController.java index 2a72958..8225c58 100644 --- a/src/main/java/xyz/danielcortes/controllers/libro/LibroSearchController.java +++ b/src/main/java/xyz/danielcortes/controllers/libro/LibroSearchController.java @@ -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); diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroUpdateController.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroUpdateController.java index c4bf070..4a8074d 100644 --- a/src/main/java/xyz/danielcortes/controllers/libro/LibroUpdateController.java +++ b/src/main/java/xyz/danielcortes/controllers/libro/LibroUpdateController.java @@ -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 idiomas = this.view.getIdiomasList().getSelectedValuesList(); - if(!validator.validateIdiomas(idiomas)) return; + ValidationResult idiomasValidation = this.validator.validateIdiomas(idiomas); + if(idiomasValidation.hasError()){ + idiomasValidation.showErrorDialog(); + return; + } List autores = this.view.getAutoresList().getSelectedValuesList(); - if(!validator.validateAutores(autores)) return; + ValidationResult autoresValidation = this.validator.validateAutores(autores); + if(autoresValidation.hasError()) { + autoresValidation.showErrorDialog(); + return; + } List 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; diff --git a/src/main/java/xyz/danielcortes/framework/ValidationResult.java b/src/main/java/xyz/danielcortes/framework/ValidationResult.java new file mode 100644 index 0000000..bcf553a --- /dev/null +++ b/src/main/java/xyz/danielcortes/framework/ValidationResult.java @@ -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); + } +} diff --git a/src/main/java/xyz/danielcortes/validator/AutorValidator.java b/src/main/java/xyz/danielcortes/validator/AutorValidator.java index e02ea6a..8122bfc 100644 --- a/src/main/java/xyz/danielcortes/validator/AutorValidator.java +++ b/src/main/java/xyz/danielcortes/validator/AutorValidator.java @@ -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; } } diff --git a/src/main/java/xyz/danielcortes/validator/CategoriaValidator.java b/src/main/java/xyz/danielcortes/validator/CategoriaValidator.java index e1b7d85..846d908 100644 --- a/src/main/java/xyz/danielcortes/validator/CategoriaValidator.java +++ b/src/main/java/xyz/danielcortes/validator/CategoriaValidator.java @@ -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; + } + } diff --git a/src/main/java/xyz/danielcortes/validator/EditorialValidator.java b/src/main/java/xyz/danielcortes/validator/EditorialValidator.java index 1ede5c7..3666400 100644 --- a/src/main/java/xyz/danielcortes/validator/EditorialValidator.java +++ b/src/main/java/xyz/danielcortes/validator/EditorialValidator.java @@ -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; } } diff --git a/src/main/java/xyz/danielcortes/validator/EjemplarValidator.java b/src/main/java/xyz/danielcortes/validator/EjemplarValidator.java index 3ea9a4f..6f525f5 100644 --- a/src/main/java/xyz/danielcortes/validator/EjemplarValidator.java +++ b/src/main/java/xyz/danielcortes/validator/EjemplarValidator.java @@ -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; } } diff --git a/src/main/java/xyz/danielcortes/validator/IdiomaValidator.java b/src/main/java/xyz/danielcortes/validator/IdiomaValidator.java index 6c9e439..cf3d5df 100644 --- a/src/main/java/xyz/danielcortes/validator/IdiomaValidator.java +++ b/src/main/java/xyz/danielcortes/validator/IdiomaValidator.java @@ -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; } } diff --git a/src/main/java/xyz/danielcortes/validator/LibroValidator.java b/src/main/java/xyz/danielcortes/validator/LibroValidator.java index 46f3c8c..c0eb84c 100644 --- a/src/main/java/xyz/danielcortes/validator/LibroValidator.java +++ b/src/main/java/xyz/danielcortes/validator/LibroValidator.java @@ -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 idiomas) { + public ValidationResult validateIdiomas(List 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 autores) { + public ValidationResult validateAutores(List 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 categorias) { + public ValidationResult validateCategorias(List 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) { diff --git a/src/main/java/xyz/danielcortes/views/LaunchFrame.java b/src/main/java/xyz/danielcortes/views/LaunchFrame.java index 3aae536..51280ad 100644 --- a/src/main/java/xyz/danielcortes/views/LaunchFrame.java +++ b/src/main/java/xyz/danielcortes/views/LaunchFrame.java @@ -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(); }