diff --git a/src/main/java/xyz/danielcortes/controllers/LaunchController.java b/src/main/java/xyz/danielcortes/controllers/LaunchController.java index 4a88ca1..472a27f 100644 --- a/src/main/java/xyz/danielcortes/controllers/LaunchController.java +++ b/src/main/java/xyz/danielcortes/controllers/LaunchController.java @@ -24,8 +24,9 @@ import xyz.danielcortes.controllers.idioma.IdiomaSearchController; import xyz.danielcortes.controllers.idioma.IdiomaUpdateController; import xyz.danielcortes.controllers.idioma.IdiomaViewController; import xyz.danielcortes.controllers.libro.LibroCreateController; -import xyz.danielcortes.controllers.libro.LibroListController; +import xyz.danielcortes.controllers.libro.LibroSearchController; import xyz.danielcortes.controllers.libro.LibroUpdateController; +import xyz.danielcortes.controllers.libro.LibroViewController; import xyz.danielcortes.framework.PanelName; import xyz.danielcortes.views.LaunchFrame; import xyz.danielcortes.views.autor.AutorCreatePanel; @@ -45,8 +46,9 @@ import xyz.danielcortes.views.idioma.IdiomaSearchPanel; import xyz.danielcortes.views.idioma.IdiomaUpdatePanel; import xyz.danielcortes.views.idioma.IdiomaViewPanel; import xyz.danielcortes.views.libro.LibroCreatePanel; -import xyz.danielcortes.views.libro.LibroListPanel; +import xyz.danielcortes.views.libro.LibroSearchPanel; import xyz.danielcortes.views.libro.LibroUpdatePanel; +import xyz.danielcortes.views.libro.LibroViewPanel; public class LaunchController { @@ -66,7 +68,8 @@ public class LaunchController { private void createCards() { this.frame.addCard(new JPanel(), PanelName.EMPTY); - this.controllers.put(PanelName.LIBRO_SEARCH, new LibroListController(new LibroListPanel(), this)); + this.controllers.put(PanelName.LIBRO_VIEW, new LibroViewController(new LibroViewPanel(), this)); + this.controllers.put(PanelName.LIBRO_SEARCH, new LibroSearchController(new LibroSearchPanel(), this)); this.controllers.put(PanelName.LIBRO_CREATE, new LibroCreateController(new LibroCreatePanel(), this)); this.controllers.put(PanelName.LIBRO_UPDATE, new LibroUpdateController(new LibroUpdatePanel(), this)); diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroCreateController.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroCreateController.java index 8e900b4..181c268 100644 --- a/src/main/java/xyz/danielcortes/controllers/libro/LibroCreateController.java +++ b/src/main/java/xyz/danielcortes/controllers/libro/LibroCreateController.java @@ -7,6 +7,7 @@ import javax.swing.DefaultListModel; import javax.swing.JComboBox; import xyz.danielcortes.controllers.BaseController; import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.framework.PanelName; import xyz.danielcortes.models.Autor; import xyz.danielcortes.models.Categoria; import xyz.danielcortes.models.Editorial; @@ -106,20 +107,10 @@ public class LibroCreateController extends BaseController { this.libroRepository.save(libro); - this.view.getSerieField().setText(""); - this.view.getIsbnField().setText(""); - this.view.getTituloField().setText(""); - this.view.getPaginasField().setText(""); - this.view.getAnoPublicacionField().setText(""); - this.view.getPrecioReferenciaField().setText(""); - this.view.getIdiomasList().setSelectedIndices(new int[]{}); - this.view.getAutoresList().setSelectedIndices(new int[]{}); - this.view.getCategoriasList().setSelectedIndices(new int[]{}); - this.view.getEditorialCombo().setSelectedIndex(0); - this.view.getSerieField().requestFocus(); + this.getParentController().showCard(PanelName.LIBRO_SEARCH); } - public void reload() { + private void reload() { loadIdiomasList(); loadCategoriasList(); loadAutorList(); diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroDeleteController.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroDeleteController.java deleted file mode 100644 index eed7211..0000000 --- a/src/main/java/xyz/danielcortes/controllers/libro/LibroDeleteController.java +++ /dev/null @@ -1,61 +0,0 @@ -package xyz.danielcortes.controllers.libro; - -import java.util.List; -import javax.swing.JComboBox; -import xyz.danielcortes.controllers.BaseController; -import xyz.danielcortes.controllers.LaunchController; -import xyz.danielcortes.models.Libro; -import xyz.danielcortes.repository.LibroRepository; -import xyz.danielcortes.views.BasePanel; -import xyz.danielcortes.views.libro.LibroDeletePanel; - -public class LibroDeleteController extends BaseController { - - private LibroDeletePanel view; - private LibroValidator validator; - private LibroRepository libroRepository; - - public LibroDeleteController(LibroDeletePanel view, LaunchController parent) { - super(parent); - this.view = view; - this.libroRepository = new LibroRepository(); - this.validator = new LibroValidator(this.libroRepository); - this.loadLibroCombo(); - this.setupListeners(); - } - - @Override - public void show() { - this.reload(); - this.view.getLibroCombo().requestFocus(); - } - - private void setupListeners() { - this.view.getEliminarButton().addActionListener(e -> this.delete()); - } - - private void delete() { - Libro selected = (Libro) this.view.getLibroCombo().getSelectedItem(); - if(!validator.validateLibro(selected)) return; - - this.libroRepository.delete(selected); - this.reload(); - } - - public void reload() { - this.loadLibroCombo(); - } - - private void loadLibroCombo() { - List libros = this.libroRepository.getAll(); - JComboBox combobox = this.view.getLibroCombo(); - combobox.removeAllItems(); - for(Libro libro: libros){ - combobox.addItem(libro); - } - } - - public BasePanel getView() { - return view; - } -} diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroListController.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroListController.java deleted file mode 100644 index f093102..0000000 --- a/src/main/java/xyz/danielcortes/controllers/libro/LibroListController.java +++ /dev/null @@ -1,42 +0,0 @@ -package xyz.danielcortes.controllers.libro; - -import java.util.List; -import xyz.danielcortes.controllers.BaseController; -import xyz.danielcortes.controllers.LaunchController; -import xyz.danielcortes.framework.BaseTableModel; -import xyz.danielcortes.models.Libro; -import xyz.danielcortes.repository.LibroRepository; -import xyz.danielcortes.views.BasePanel; -import xyz.danielcortes.views.libro.LibroListPanel; - -public class LibroListController extends BaseController { - - private LibroListPanel view; - private LibroRepository libroRepository; - - public LibroListController(LibroListPanel view, LaunchController parent) { - super(parent); - this.view = view; - this.libroRepository = new LibroRepository(); - this.loadLibroTable(); - } - - @Override - public void show() { - this.reload(); - } - - public void reload() { - this.loadLibroTable(); - } - - private void loadLibroTable() { - List libros = this.libroRepository.getAll(); - BaseTableModel model = this.view.getLibrosModel(); - model.setRows(libros); - } - - public BasePanel getView() { - return view; - } -} diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroSearchController.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroSearchController.java new file mode 100644 index 0000000..0d28ea8 --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/libro/LibroSearchController.java @@ -0,0 +1,116 @@ +package xyz.danielcortes.controllers.libro; + +import java.util.List; +import javax.swing.JOptionPane; +import xyz.danielcortes.controllers.BaseController; +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.framework.BaseTableModel; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Libro; +import xyz.danielcortes.repository.LibroRepository; +import xyz.danielcortes.views.BasePanel; +import xyz.danielcortes.views.libro.LibroSearchPanel; + +public class LibroSearchController extends BaseController { + + private LibroSearchPanel view; + private LibroRepository libroRepository; + private LibroValidator validator; + + public LibroSearchController(LibroSearchPanel view, LaunchController parent) { + super(parent); + this.view = view; + this.libroRepository = new LibroRepository(); + this.validator = new LibroValidator(this.libroRepository); + this.loadLibroTable(); + this.setupListeners(); + } + + @Override + public void show() { + this.reload(); + } + + public void reload() { + this.loadLibroTable(); + } + + private void setupListeners() { + this.view.getBuscarButton().addActionListener(e -> search()); + this.view.getBuscarField().addActionListener(e -> search()); + this.view.getEliminarButton().addActionListener(e -> delete()); + this.view.getEditarButton().addActionListener(e -> edit()); + this.view.getVerButton().addActionListener(e -> view()); + } + + private void view() { + Libro libro = this.getSelectedLibro(); + if (libro != null) { + LibroViewController controller = (LibroViewController) this.getParentController().getCard(PanelName.LIBRO_VIEW); + controller.setLibro(libro); + this.getParentController().showCard(PanelName.LIBRO_VIEW); + } + } + + private void edit() { + Libro libro = this.getSelectedLibro(); + if (libro != null) { + LibroUpdateController controller = (LibroUpdateController) this.getParentController().getCard(PanelName.LIBRO_UPDATE); + controller.setLibro(libro); + this.getParentController().showCard(PanelName.LIBRO_UPDATE); + } + } + + private void delete() { + Libro libro = this.getSelectedLibro(); + if (libro == null) + return; + + int option = JOptionPane.showConfirmDialog( + null, + "¿Estas seguro de que deseas eliminar el libro?", + "Confirmacion", + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE + ); + if (option == JOptionPane.NO_OPTION) + return; + + this.libroRepository.delete(libro); + this.reload(); + } + + private void search() { + String term = this.view.getBuscarField().getText(); + List libros = this.libroRepository.search(term); + this.loadLibroTable(libros); + } + + private void loadLibroTable(List libros) { + BaseTableModel model = this.view.getLibrosModel(); + model.setRows(libros); + } + + private void loadLibroTable() { + List libros = this.libroRepository.getAll(); + loadLibroTable(libros); + } + + public BasePanel getView() { + return view; + } + + private Libro getSelectedLibro() { + int selectedRow = this.view.getLibrosTable().getSelectedRow(); + if (selectedRow == -1) { + JOptionPane.showMessageDialog( + null, + "No hay Libro seleccionado", + "Error", + JOptionPane.ERROR_MESSAGE + ); + return null; + } + return this.view.getLibrosModel().getRow(selectedRow); + } +} diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroUpdateController.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroUpdateController.java index 031b5f9..f280665 100644 --- a/src/main/java/xyz/danielcortes/controllers/libro/LibroUpdateController.java +++ b/src/main/java/xyz/danielcortes/controllers/libro/LibroUpdateController.java @@ -8,6 +8,7 @@ import javax.swing.JComboBox; import xyz.danielcortes.controllers.BaseController; import xyz.danielcortes.controllers.LaunchController; import xyz.danielcortes.framework.JListUtils; +import xyz.danielcortes.framework.PanelName; import xyz.danielcortes.models.Autor; import xyz.danielcortes.models.Categoria; import xyz.danielcortes.models.Editorial; @@ -23,6 +24,7 @@ import xyz.danielcortes.views.libro.LibroUpdatePanel; public class LibroUpdateController extends BaseController { + private Libro libro; private LibroUpdatePanel view; private LibroValidator validator; private LibroRepository libroRepository; @@ -45,47 +47,50 @@ public class LibroUpdateController extends BaseController { this.setupListeners(); } + public void setLibro(Libro libro) { + this.libro = libro; + } + @Override public void show() { this.reload(); - this.view.getLibroCombo().requestFocus(); } private void setupListeners() { - this.view.getLibroCombo().addActionListener(e -> { - Libro libro = (Libro) this.view.getLibroCombo().getSelectedItem(); - if (libro == null) - return; - this.view.getSerieField().setText(String.valueOf(libro.getSerie())); - this.view.getIsbnField().setText(libro.getIsbn()); - this.view.getTituloField().setText(libro.getTitulo()); - this.view.getPaginasField().setText(String.valueOf(libro.getNumeroPaginas())); - this.view.getAnoPublicacionField().setText(String.valueOf(libro.getAnoPublicacion())); - this.view.getPrecioReferenciaField().setText(String.valueOf(libro.getPrecioReferencia())); - JListUtils.setSelectedValues( - this.view.getIdiomasList(), - libro.getIdiomas() - ); - JListUtils.setSelectedValues( - this.view.getAutoresList(), - libro.getAutores() - ); - JListUtils.setSelectedValues( - this.view.getCategoriasList(), - libro.getCategorias() - ); - this.view.getEditorialCombo().setSelectedItem(libro.getEditorial()); - }); this.view.getActualizarButton().addActionListener(e -> update()); } + private void fillLibro() { + if (libro == null) + return; + + this.view.getSerieField().setText(String.valueOf(libro.getSerie())); + this.view.getIsbnField().setText(libro.getIsbn()); + this.view.getTituloField().setText(libro.getTitulo()); + this.view.getPaginasField().setText(String.valueOf(libro.getNumeroPaginas())); + this.view.getAnoPublicacionField().setText(String.valueOf(libro.getAnoPublicacion())); + this.view.getPrecioReferenciaField().setText(String.valueOf(libro.getPrecioReferencia())); + JListUtils.setSelectedValues( + this.view.getIdiomasList(), + libro.getIdiomas() + ); + JListUtils.setSelectedValues( + this.view.getAutoresList(), + libro.getAutores() + ); + JListUtils.setSelectedValues( + this.view.getCategoriasList(), + libro.getCategorias() + ); + this.view.getEditorialCombo().setSelectedItem(libro.getEditorial()); + } + private void update() { // @formatter:off - Libro original = (Libro) this.view.getLibroCombo().getSelectedItem(); - if(!validator.validateLibro(original)) return; + if(!validator.validateLibro(libro)) return; String serie = this.view.getSerieField().getText(); - if(!validator.validateSerie(serie, original)) return; + if(!validator.validateSerie(serie, libro)) return; String isbn = this.view.getIsbnField().getText(); if(!validator.validateISBN(isbn)) return; @@ -116,38 +121,29 @@ public class LibroUpdateController extends BaseController { if(!validator.validateEditorial(editorial)) return; // @formatter:on - assert original != null; + assert libro != null; - original.setSerie(serie); - original.setIsbn(isbn); - original.setTitulo(titulo); - original.setNumeroPaginas(Integer.parseInt(numeroPaginas)); - original.setAnoPublicacion(Year.of(Integer.parseInt(anoPublicacion))); - original.setPrecioReferencia(Integer.parseInt(precioReferencial)); - original.setIdiomas(new HashSet<>(idiomas)); - original.setAutores(new HashSet<>(autores)); - original.setCategorias(new HashSet<>(categorias)); - original.setEditorial(editorial); + libro.setSerie(serie); + libro.setIsbn(isbn); + libro.setTitulo(titulo); + libro.setNumeroPaginas(Integer.parseInt(numeroPaginas)); + libro.setAnoPublicacion(Year.of(Integer.parseInt(anoPublicacion))); + libro.setPrecioReferencia(Integer.parseInt(precioReferencial)); + libro.setIdiomas(new HashSet<>(idiomas)); + libro.setAutores(new HashSet<>(autores)); + libro.setCategorias(new HashSet<>(categorias)); + libro.setEditorial(editorial); - this.libroRepository.update(original); - this.reload(); + this.libroRepository.update(libro); + this.getParentController().showCard(PanelName.LIBRO_SEARCH); } - public void reload() { - this.loadLibrosCombo(); + private void reload() { this.loadAutorList(); this.loadCategoriasList(); this.loadEditorialCombo(); this.loadIdiomasList(); - } - - private void loadLibrosCombo() { - List libros = libroRepository.getAll(); - JComboBox model = this.view.getLibroCombo(); - model.removeAllItems(); - for (Libro libro : libros) { - model.addItem(libro); - } + this.fillLibro(); } private void loadIdiomasList() { diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroValidator.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroValidator.java index e6db6cb..7a59b13 100644 --- a/src/main/java/xyz/danielcortes/controllers/libro/LibroValidator.java +++ b/src/main/java/xyz/danielcortes/controllers/libro/LibroValidator.java @@ -65,8 +65,7 @@ public class LibroValidator { if (!validateSerie(serie)) return false; - Integer s = Integer.parseInt(serie); - if (libroRepository.exists(s, original.getId())) { + if (libroRepository.exists(serie, original.getId())) { JOptionPane.showMessageDialog( null, "El numero de serie ya existe", diff --git a/src/main/java/xyz/danielcortes/controllers/libro/LibroViewController.java b/src/main/java/xyz/danielcortes/controllers/libro/LibroViewController.java new file mode 100644 index 0000000..88dd8e5 --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/libro/LibroViewController.java @@ -0,0 +1,56 @@ +package xyz.danielcortes.controllers.libro; + +import xyz.danielcortes.controllers.BaseController; +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.framework.JListUtils; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Libro; +import xyz.danielcortes.views.BasePanel; +import xyz.danielcortes.views.libro.LibroViewPanel; + +public class LibroViewController extends BaseController { + private Libro libro; + private LibroViewPanel view; + + public LibroViewController(LibroViewPanel view, LaunchController parent){ + super(parent); + this.view = view; + this.setupListeners(); + } + + @Override + public void show() { + this.fillLibro(); + } + + public void setLibro(Libro libro) { + this.libro = libro; + } + + private void setupListeners() { + this.view.getVolverButton().addActionListener(e -> { + this.getParentController().showCard(PanelName.LIBRO_SEARCH); + }); + } + + private void fillLibro() { + if(libro != null) + return; + + this.view.getSerieField().setText(this.libro.getSerie()); + this.view.getIsbnField().setText(this.libro.getIsbn()); + this.view.getTituloField().setText(this.libro.getTitulo()); + this.view.getPaginasField().setText(String.valueOf(this.libro.getNumeroPaginas())); + this.view.getAnoPublicacionField().setText(String.valueOf(this.libro.getAnoPublicacion())); + this.view.getPrecioReferenciaField().setText(String.valueOf(this.libro.getPrecioReferencia())); + JListUtils.setSelectedValues(this.view.getIdiomasList(), this.libro.getIdiomas()); + JListUtils.setSelectedValues(this.view.getAutoresList(), this.libro.getAutores()); + JListUtils.setSelectedValues(this.view.getCategoriasList(), this.libro.getCategorias()); + this.view.getEditorialCombo().setSelectedItem(this.libro.getEditorial()); + } + + @Override + public BasePanel getView() { + return this.view; + } +} diff --git a/src/main/java/xyz/danielcortes/repository/LibroRepository.java b/src/main/java/xyz/danielcortes/repository/LibroRepository.java index 224005d..5dda337 100644 --- a/src/main/java/xyz/danielcortes/repository/LibroRepository.java +++ b/src/main/java/xyz/danielcortes/repository/LibroRepository.java @@ -29,7 +29,11 @@ public class LibroRepository { CriteriaQuery query = cb.createQuery(Libro.class); Root r = query.from(Libro.class); query.where( - cb.like(cb.lower(r.get("nombre")), "%" + term.toLowerCase() + "%") + cb.or( + cb.like(cb.lower(r.get("titulo")), "%" + term.toLowerCase() + "%"), + cb.like(cb.lower(r.get("isbn")), "%" + term.toLowerCase() + "%"), + cb.like(r.get("precioReferencia").as(String.class), "%" + term.toLowerCase() + "%") + ) ); return em.createQuery(query).getResultList(); } @@ -71,7 +75,7 @@ public class LibroRepository { em.getTransaction().commit(); } - public boolean exists(Integer serie, Integer id) { + public boolean exists(String serie, Integer id) { Query query = em.createQuery("SELECT count(l) FROM Libro l WHERE serie = :serie and id != :id"); query.setParameter("serie", serie); query.setParameter("id", id); diff --git a/src/main/java/xyz/danielcortes/views/LaunchFrame.java b/src/main/java/xyz/danielcortes/views/LaunchFrame.java index f5512d4..3aae536 100644 --- a/src/main/java/xyz/danielcortes/views/LaunchFrame.java +++ b/src/main/java/xyz/danielcortes/views/LaunchFrame.java @@ -12,7 +12,7 @@ public class LaunchFrame extends JFrame { private Dimension dimension; public LaunchFrame() { - this.dimension = new Dimension(800, 600); + this.dimension = new Dimension(800, 700); this.setSize(this.dimension); this.setMinimumSize(this.dimension); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); diff --git a/src/main/java/xyz/danielcortes/views/idioma/IdiomaViewPanel.java b/src/main/java/xyz/danielcortes/views/idioma/IdiomaViewPanel.java index 0c65231..87fec51 100644 --- a/src/main/java/xyz/danielcortes/views/idioma/IdiomaViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/idioma/IdiomaViewPanel.java @@ -50,6 +50,7 @@ public class IdiomaViewPanel extends BasePanel { contentPane.add(label1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); nombreField = new JTextField(); + nombreField.setEditable(false); nombreField.setText(""); contentPane.add(nombreField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, @@ -79,4 +80,5 @@ public class IdiomaViewPanel extends BasePanel { public JComponent $$$getRootComponent$$$() { return contentPane; } + } diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroListPanel.form b/src/main/java/xyz/danielcortes/views/libro/LibroListPanel.form deleted file mode 100644 index ed39471..0000000 --- a/src/main/java/xyz/danielcortes/views/libro/LibroListPanel.form +++ /dev/null @@ -1,28 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroListPanel.java b/src/main/java/xyz/danielcortes/views/libro/LibroListPanel.java deleted file mode 100644 index 5cf18b4..0000000 --- a/src/main/java/xyz/danielcortes/views/libro/LibroListPanel.java +++ /dev/null @@ -1,88 +0,0 @@ -package xyz.danielcortes.views.libro; - -import com.intellij.uiDesigner.core.GridConstraints; -import com.intellij.uiDesigner.core.GridLayoutManager; -import java.awt.Dimension; -import java.awt.Insets; -import javax.swing.JComponent; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTable; -import xyz.danielcortes.framework.BaseTableModel; -import xyz.danielcortes.models.Libro; -import xyz.danielcortes.views.BasePanel; - -public class LibroListPanel extends BasePanel { - - private JTable librosTable; - private BaseTableModel librosModel; - private JPanel contentPane; - - public JTable getLibrosTable() { - return librosTable; - } - - public BaseTableModel getLibrosModel() { - return librosModel; - } - - public JPanel getContentPane() { - return contentPane; - } - - private void createUIComponents() { - this.createLibrosTable(); - } - - private void createLibrosTable() { - //@formatter:off - this.librosModel = new BaseTableModel<>( - new String[]{"Serie", "ISBN", "Titulo", "Precio Referencial"}, - (rows, rowIndex, colIndex) -> { - switch(colIndex) { - case 0: return rows.get(rowIndex).getSerie(); - case 1: return rows.get(rowIndex).getIsbn(); - case 2: return rows.get(rowIndex).getTitulo(); - case 3: return rows.get(rowIndex).getPrecioReferencia(); - default: return null; - } - } - ); - //@formatter:on - this.librosTable = new JTable(this.librosModel); - } - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - $$$setupUI$$$(); - } - - /** - * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR - * call it in your code! - * - * @noinspection ALL - */ - private void $$$setupUI$$$() { - createUIComponents(); - contentPane = new JPanel(); - contentPane.setLayout(new GridLayoutManager(1, 1, new Insets(10, 10, 10, 10), -1, -1)); - final JScrollPane scrollPane1 = new JScrollPane(); - contentPane.add(scrollPane1, - new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, - GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, - GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, - new Dimension(400, -1), null, 0, false)); - scrollPane1.setViewportView(librosTable); - } - - /** - * @noinspection ALL - */ - public JComponent $$$getRootComponent$$$() { - return contentPane; - } - -} diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroSearchPanel.form b/src/main/java/xyz/danielcortes/views/libro/LibroSearchPanel.form new file mode 100644 index 0000000..487c153 --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/libro/LibroSearchPanel.form @@ -0,0 +1,88 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroSearchPanel.java b/src/main/java/xyz/danielcortes/views/libro/LibroSearchPanel.java new file mode 100644 index 0000000..faa4ebc --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/libro/LibroSearchPanel.java @@ -0,0 +1,144 @@ +package xyz.danielcortes.views.libro; + +import com.intellij.uiDesigner.core.GridConstraints; +import com.intellij.uiDesigner.core.GridLayoutManager; +import java.awt.Dimension; +import java.awt.Insets; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.JTextField; +import javax.swing.ListSelectionModel; +import xyz.danielcortes.framework.BaseTableModel; +import xyz.danielcortes.models.Libro; +import xyz.danielcortes.views.BasePanel; + +public class LibroSearchPanel extends BasePanel { + + private JTable librosTable; + private BaseTableModel librosModel; + private JPanel contentPane; + private JTextField buscarField; + private JButton buscarButton; + private JButton verButton; + private JButton editarButton; + private JButton eliminarButton; + + public JTable getLibrosTable() { + return librosTable; + } + + public BaseTableModel getLibrosModel() { + return librosModel; + } + + public JPanel getContentPane() { + return contentPane; + } + + public JTextField getBuscarField() { + return buscarField; + } + + public JButton getBuscarButton() { + return buscarButton; + } + + public JButton getVerButton() { + return verButton; + } + + public JButton getEditarButton() { + return editarButton; + } + + public JButton getEliminarButton() { + return eliminarButton; + } + + private void createUIComponents() { + this.createLibrosTable(); + } + + private void createLibrosTable() { + //@formatter:off + this.librosModel = new BaseTableModel<>( + new String[]{"Serie", "ISBN", "Titulo", "Precio Referencial"}, + (rows, rowIndex, colIndex) -> { + switch(colIndex) { + case 0: return rows.get(rowIndex).getSerie(); + case 1: return rows.get(rowIndex).getIsbn(); + case 2: return rows.get(rowIndex).getTitulo(); + case 3: return rows.get(rowIndex).getPrecioReferencia(); + default: return null; + } + } + ); + //@formatter:on + this.librosTable = new JTable(this.librosModel); + this.librosTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + } + + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + $$$setupUI$$$(); + } + + /** + * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! + * + * @noinspection ALL + */ + private void $$$setupUI$$$() { + createUIComponents(); + contentPane = new JPanel(); + contentPane.setLayout(new GridLayoutManager(3, 1, new Insets(10, 10, 10, 10), -1, -1)); + final JScrollPane scrollPane1 = new JScrollPane(); + contentPane.add(scrollPane1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, new Dimension(400, -1), null, 0, false)); + scrollPane1.setViewportView(librosTable); + final JPanel panel1 = new JPanel(); + panel1.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1)); + contentPane.add(panel1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false)); + buscarField = new JTextField(); + panel1.add(buscarField, + new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false)); + buscarButton = new JButton(); + buscarButton.setText("Buscar"); + panel1.add(buscarButton, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final JPanel panel2 = new JPanel(); + panel2.setLayout(new GridLayoutManager(1, 3, new Insets(0, 0, 0, 0), -1, -1)); + contentPane.add(panel2, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false)); + verButton = new JButton(); + verButton.setText("Ver"); + panel2.add(verButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + editarButton = new JButton(); + editarButton.setText("Editar"); + panel2.add(editarButton, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + eliminarButton = new JButton(); + eliminarButton.setText("Eliminar"); + panel2.add(eliminarButton, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + } + + /** + * @noinspection ALL + */ + public JComponent $$$getRootComponent$$$() { + return contentPane; + } + +} diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroUpdatePanel.form b/src/main/java/xyz/danielcortes/views/libro/LibroUpdatePanel.form index 3c63388..9e4c4d0 100644 --- a/src/main/java/xyz/danielcortes/views/libro/LibroUpdatePanel.form +++ b/src/main/java/xyz/danielcortes/views/libro/LibroUpdatePanel.form @@ -1,32 +1,16 @@
- + - + - - - - - - - - - - - - - - - - - + @@ -34,7 +18,7 @@ - + @@ -42,7 +26,7 @@ - + @@ -50,7 +34,7 @@ - + @@ -58,7 +42,7 @@ - + @@ -66,7 +50,7 @@ - + @@ -74,7 +58,7 @@ - + @@ -82,7 +66,7 @@ - + @@ -90,7 +74,7 @@ - + @@ -98,7 +82,7 @@ - + @@ -106,7 +90,7 @@ - + @@ -114,7 +98,7 @@ - + @@ -122,7 +106,7 @@ - + @@ -130,7 +114,7 @@ - + @@ -145,7 +129,7 @@ - + @@ -153,7 +137,7 @@ - + @@ -168,7 +152,7 @@ - + @@ -176,7 +160,7 @@ - + @@ -191,7 +175,7 @@ - + @@ -199,7 +183,7 @@ - + @@ -207,7 +191,7 @@ - + @@ -215,17 +199,17 @@ - + - + - + diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroUpdatePanel.java b/src/main/java/xyz/danielcortes/views/libro/LibroUpdatePanel.java index 69a0f94..dd05168 100644 --- a/src/main/java/xyz/danielcortes/views/libro/LibroUpdatePanel.java +++ b/src/main/java/xyz/danielcortes/views/libro/LibroUpdatePanel.java @@ -20,14 +20,11 @@ import xyz.danielcortes.models.Autor; import xyz.danielcortes.models.Categoria; import xyz.danielcortes.models.Editorial; import xyz.danielcortes.models.Idioma; -import xyz.danielcortes.models.Libro; import xyz.danielcortes.views.BasePanel; public class LibroUpdatePanel extends BasePanel { private JPanel contentPane; - private JComboBox libroCombo; - private DefaultComboBoxModel libroModel; private JTextField serieField; private JTextField isbnField; private JTextField tituloField; @@ -48,14 +45,6 @@ public class LibroUpdatePanel extends BasePanel { return contentPane; } - public JComboBox getLibroCombo() { - return libroCombo; - } - - public DefaultComboBoxModel getLibroModel() { - return libroModel; - } - public JTextField getSerieField() { return serieField; } @@ -117,18 +106,12 @@ public class LibroUpdatePanel extends BasePanel { } private void createUIComponents() { - this.createLibroCombo(); this.createAutoresList(); this.createCategoriaList(); this.createEditorialCombo(); this.createIdiomasList(); } - private void createLibroCombo() { - this.libroModel = new DefaultComboBoxModel<>(); - this.libroCombo = new JComboBox<>(this.libroModel); - } - private void createIdiomasList() { this.idiomasModel = new DefaultListModel<>(); this.idiomasList = new JList<>(this.idiomasModel); @@ -160,152 +143,113 @@ public class LibroUpdatePanel extends BasePanel { } /** - * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR - * call it in your code! + * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! * * @noinspection ALL */ private void $$$setupUI$$$() { createUIComponents(); contentPane = new JPanel(); - contentPane.setLayout(new GridLayoutManager(24, 3, new Insets(10, 10, 10, 10), -1, -1)); + contentPane.setLayout(new GridLayoutManager(22, 3, new Insets(10, 10, 10, 10), -1, -1)); final JLabel label1 = new JLabel(); - label1.setText("Libro:"); - contentPane.add(label1, - new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, - GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, - false)); - contentPane.add(libroCombo, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, - GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, - GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); - final JLabel label2 = new JLabel(); - label2.setText("Nº Serie:"); - contentPane.add(label2, - new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, - GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, - false)); + label1.setText("Nº Serie:"); + contentPane.add(label1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); serieField = new JTextField(); - contentPane.add(serieField, new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_WEST, - GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, - GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); - final JLabel label3 = new JLabel(); - label3.setText("ISBN:"); - contentPane.add(label3, - new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, - GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, - false)); + contentPane.add(serieField, + new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + final JLabel label2 = new JLabel(); + label2.setText("ISBN:"); + contentPane.add(label2, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); isbnField = new JTextField(); - contentPane.add(isbnField, new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_WEST, - GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, - GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); - final JLabel label4 = new JLabel(); - label4.setText("Titulo:"); - contentPane.add(label4, - new GridConstraints(6, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, - GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, - false)); + contentPane.add(isbnField, + new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + final JLabel label3 = new JLabel(); + label3.setText("Titulo:"); + contentPane.add(label3, new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); tituloField = new JTextField(); - contentPane.add(tituloField, new GridConstraints(7, 1, 1, 1, GridConstraints.ANCHOR_WEST, - GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, - GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); - final JLabel label5 = new JLabel(); - label5.setText("Nº Paginas:"); - contentPane.add(label5, - new GridConstraints(8, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, - GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, - false)); + contentPane.add(tituloField, + new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + final JLabel label4 = new JLabel(); + label4.setText("Nº Paginas:"); + contentPane.add(label4, new GridConstraints(6, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); paginasField = new JTextField(); - contentPane.add(paginasField, new GridConstraints(9, 1, 1, 1, GridConstraints.ANCHOR_WEST, - GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, - GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); - final JLabel label6 = new JLabel(); - label6.setText("Año Publicacion:"); - contentPane.add(label6, - new GridConstraints(10, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, - GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, - false)); + contentPane.add(paginasField, + new GridConstraints(7, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + final JLabel label5 = new JLabel(); + label5.setText("Año Publicacion:"); + contentPane.add(label5, new GridConstraints(8, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); anoPublicacionField = new JTextField(); contentPane.add(anoPublicacionField, - new GridConstraints(11, 1, 1, 1, GridConstraints.ANCHOR_WEST, - GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + new GridConstraints(9, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); - final JLabel label7 = new JLabel(); - label7.setText("Precio Referencia:"); - contentPane.add(label7, - new GridConstraints(12, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, - GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, - false)); + final JLabel label6 = new JLabel(); + label6.setText("Precio Referencia:"); + contentPane.add(label6, new GridConstraints(10, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); precioReferenciaField = new JTextField(); contentPane.add(precioReferenciaField, - new GridConstraints(13, 1, 1, 1, GridConstraints.ANCHOR_WEST, - GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + new GridConstraints(11, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); - final JLabel label8 = new JLabel(); - label8.setText("Idiomas:"); - contentPane.add(label8, - new GridConstraints(14, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, - GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, - false)); + final JLabel label7 = new JLabel(); + label7.setText("Idiomas:"); + contentPane.add(label7, new GridConstraints(12, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); final JScrollPane scrollPane1 = new JScrollPane(); - contentPane.add(scrollPane1, - new GridConstraints(15, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, - GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, - GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, - new Dimension(400, -1), null, 0, false)); + contentPane.add(scrollPane1, new GridConstraints(13, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, new Dimension(400, -1), null, 0, false)); scrollPane1.setViewportView(idiomasList); - final JLabel label9 = new JLabel(); - label9.setText("Autores:"); - contentPane.add(label9, - new GridConstraints(16, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, - GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, - false)); + final JLabel label8 = new JLabel(); + label8.setText("Autores:"); + contentPane.add(label8, new GridConstraints(14, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); final JScrollPane scrollPane2 = new JScrollPane(); - contentPane.add(scrollPane2, - new GridConstraints(17, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, - GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, - GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, - new Dimension(400, -1), null, 0, false)); + contentPane.add(scrollPane2, new GridConstraints(15, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, new Dimension(400, -1), null, 0, false)); scrollPane2.setViewportView(autoresList); - final JLabel label10 = new JLabel(); - label10.setText("Categorias:"); - contentPane.add(label10, - new GridConstraints(18, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, - GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, - false)); + final JLabel label9 = new JLabel(); + label9.setText("Categorias:"); + contentPane.add(label9, new GridConstraints(16, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); final JScrollPane scrollPane3 = new JScrollPane(); - contentPane.add(scrollPane3, - new GridConstraints(19, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, - GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, - GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, - new Dimension(400, -1), null, 0, false)); + contentPane.add(scrollPane3, new GridConstraints(17, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, new Dimension(400, -1), null, 0, false)); scrollPane3.setViewportView(categoriasList); - final JLabel label11 = new JLabel(); - label11.setText("Editorial:"); - contentPane.add(label11, - new GridConstraints(20, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, - GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, - false)); - contentPane.add(editorialCombo, new GridConstraints(21, 1, 1, 1, GridConstraints.ANCHOR_WEST, - GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, - GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + final JLabel label10 = new JLabel(); + label10.setText("Editorial:"); + contentPane.add(label10, + new GridConstraints(18, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + contentPane.add(editorialCombo, + new GridConstraints(19, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); actualizarButton = new JButton(); actualizarButton.setText("Actualizar"); - contentPane.add(actualizarButton, - new GridConstraints(22, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, - GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, - GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + contentPane.add(actualizarButton, new GridConstraints(20, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); final Spacer spacer1 = new Spacer(); - contentPane.add(spacer1, new GridConstraints(23, 1, 1, 1, GridConstraints.ANCHOR_CENTER, - GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, - false)); + contentPane.add(spacer1, + new GridConstraints(21, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, + null, null, 0, false)); final Spacer spacer2 = new Spacer(); - contentPane.add(spacer2, new GridConstraints(23, 0, 1, 1, GridConstraints.ANCHOR_CENTER, - GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, - 0, false)); + contentPane.add(spacer2, + new GridConstraints(21, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, + null, null, null, 0, false)); final Spacer spacer3 = new Spacer(); - contentPane.add(spacer3, new GridConstraints(23, 2, 1, 1, GridConstraints.ANCHOR_CENTER, - GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, - 0, false)); + contentPane.add(spacer3, + new GridConstraints(21, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, + null, null, null, 0, false)); } /** diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.form b/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.form new file mode 100644 index 0000000..b58e82b --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.form @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.java b/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.java new file mode 100644 index 0000000..f9ada09 --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/libro/LibroViewPanel.java @@ -0,0 +1,269 @@ +package xyz.danielcortes.views.libro; + +import com.intellij.uiDesigner.core.GridConstraints; +import com.intellij.uiDesigner.core.GridLayoutManager; +import com.intellij.uiDesigner.core.Spacer; +import java.awt.Dimension; +import java.awt.Insets; +import javax.swing.DefaultComboBoxModel; +import javax.swing.DefaultListModel; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextField; +import javax.swing.ListSelectionModel; +import xyz.danielcortes.models.Autor; +import xyz.danielcortes.models.Categoria; +import xyz.danielcortes.models.Editorial; +import xyz.danielcortes.models.Idioma; +import xyz.danielcortes.views.BasePanel; + +public class LibroViewPanel extends BasePanel { + + private JPanel contentPane; + private JTextField serieField; + private JTextField isbnField; + private JTextField tituloField; + private JTextField paginasField; + private JTextField anoPublicacionField; + private JList idiomasList; + private DefaultListModel idiomasModel; + private JList autoresList; + private DefaultListModel autoresModel; + private JList categoriasList; + private DefaultListModel categoriasModel; + private JComboBox editorialCombo; + private DefaultComboBoxModel editorialModel; + private JButton volverButton; + private JTextField precioReferenciaField; + + public JPanel getContentPane() { + return contentPane; + } + + public JTextField getSerieField() { + return serieField; + } + + public JTextField getIsbnField() { + return isbnField; + } + + public JTextField getTituloField() { + return tituloField; + } + + public JTextField getPaginasField() { + return paginasField; + } + + public JTextField getAnoPublicacionField() { + return anoPublicacionField; + } + + public JTextField getPrecioReferenciaField() { + return precioReferenciaField; + } + + public JList getIdiomasList() { + return idiomasList; + } + + public DefaultListModel getIdiomasModel() { + return idiomasModel; + } + + public JList getAutoresList() { + return autoresList; + } + + public DefaultListModel getAutoresModel() { + return autoresModel; + } + + public JList getCategoriasList() { + return categoriasList; + } + + public DefaultListModel getCategoriasModel() { + return categoriasModel; + } + + public JComboBox getEditorialCombo() { + return editorialCombo; + } + + public DefaultComboBoxModel getEditorialModel() { + return editorialModel; + } + + public JButton getVolverButton() { + return volverButton; + } + + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + $$$setupUI$$$(); + } + + /** + * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! + * + * @noinspection ALL + */ + private void $$$setupUI$$$() { + createUIComponents(); + contentPane = new JPanel(); + contentPane.setLayout(new GridLayoutManager(22, 3, new Insets(10, 10, 10, 10), -1, -1)); + serieField = new JTextField(); + serieField.setEditable(false); + contentPane.add(serieField, + new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + isbnField = new JTextField(); + isbnField.setEditable(false); + contentPane.add(isbnField, + new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + tituloField = new JTextField(); + tituloField.setEditable(false); + tituloField.setText(""); + contentPane.add(tituloField, + new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + paginasField = new JTextField(); + paginasField.setEditable(false); + contentPane.add(paginasField, + new GridConstraints(7, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + anoPublicacionField = new JTextField(); + anoPublicacionField.setEditable(false); + contentPane.add(anoPublicacionField, + new GridConstraints(9, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + contentPane.add(editorialCombo, + new GridConstraints(19, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + volverButton = new JButton(); + volverButton.setText("Volver"); + contentPane.add(volverButton, new GridConstraints(20, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), + null, 0, false)); + final JScrollPane scrollPane1 = new JScrollPane(); + contentPane.add(scrollPane1, new GridConstraints(13, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, new Dimension(400, -1), null, 0, false)); + scrollPane1.setViewportView(idiomasList); + final JScrollPane scrollPane2 = new JScrollPane(); + contentPane.add(scrollPane2, new GridConstraints(15, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, new Dimension(400, -1), null, 0, false)); + scrollPane2.setViewportView(autoresList); + final JScrollPane scrollPane3 = new JScrollPane(); + contentPane.add(scrollPane3, new GridConstraints(17, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, new Dimension(400, -1), null, 0, false)); + scrollPane3.setViewportView(categoriasList); + final JLabel label1 = new JLabel(); + label1.setText("Nº Serie:"); + contentPane.add(label1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final JLabel label2 = new JLabel(); + label2.setText("ISBN:"); + contentPane.add(label2, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final JLabel label3 = new JLabel(); + label3.setText("Titulo:"); + contentPane.add(label3, new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final JLabel label4 = new JLabel(); + label4.setText("Nº Paginas:"); + contentPane.add(label4, new GridConstraints(6, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final JLabel label5 = new JLabel(); + label5.setText("Año Publicacion:"); + contentPane.add(label5, new GridConstraints(8, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final JLabel label6 = new JLabel(); + label6.setText("Idiomas:"); + contentPane.add(label6, new GridConstraints(12, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final JLabel label7 = new JLabel(); + label7.setText("Autores:"); + contentPane.add(label7, new GridConstraints(14, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final JLabel label8 = new JLabel(); + label8.setText("Categorias:"); + contentPane.add(label8, new GridConstraints(16, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final JLabel label9 = new JLabel(); + label9.setText("Editorial:"); + contentPane.add(label9, new GridConstraints(18, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final Spacer spacer1 = new Spacer(); + contentPane.add(spacer1, + new GridConstraints(21, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, + null, null, 0, false)); + final JLabel label10 = new JLabel(); + label10.setText("Precio Referencia:"); + contentPane.add(label10, + new GridConstraints(10, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, + GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + precioReferenciaField = new JTextField(); + precioReferenciaField.setEditable(false); + contentPane.add(precioReferenciaField, + new GridConstraints(11, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); + final Spacer spacer2 = new Spacer(); + contentPane.add(spacer2, + new GridConstraints(21, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, + null, null, null, 0, false)); + final Spacer spacer3 = new Spacer(); + contentPane.add(spacer3, + new GridConstraints(21, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, + null, null, null, 0, false)); + } + + /** + * @noinspection ALL + */ + public JComponent $$$getRootComponent$$$() { + return contentPane; + } + + private void createUIComponents() { + createIdiomasList(); + createAutoresList(); + createCategoriaList(); + createEditorialCombo(); + } + + private void createIdiomasList() { + this.idiomasModel = new DefaultListModel<>(); + this.idiomasList = new JList<>(this.idiomasModel); + this.idiomasList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + } + + private void createAutoresList() { + this.autoresModel = new DefaultListModel<>(); + this.autoresList = new JList<>(this.autoresModel); + this.autoresList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + } + + private void createCategoriaList() { + this.categoriasModel = new DefaultListModel<>(); + this.categoriasList = new JList<>(this.categoriasModel); + this.categoriasList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + } + + private void createEditorialCombo() { + this.editorialModel = new DefaultComboBoxModel<>(); + this.editorialCombo = new JComboBox<>(this.editorialModel); + } +} diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index 02deffc..3ec4e11 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -12,6 +12,7 @@ +