From acc9ae66aee8ded903c4c7c5afacd56abc39106b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Cort=C3=A9s?= Date: Fri, 14 Jun 2019 23:42:38 -0400 Subject: [PATCH] Pos creo haber terminado con lo de esto --- .../controllers/LaunchController.java | 47 ++++-- .../AbstractTelefonoCreateController.java | 6 +- .../AbstractTelefonoSearchController.java | 14 +- .../AbstractTelefonoUpdateController.java | 14 +- .../AbstractTelefonoViewController.java | 4 +- .../cliente/ClienteViewController.java | 12 +- .../ClienteTelefonoCreateController.java | 50 ++++++ .../ClienteTelefonoSearchController.java | 109 +++++++++++++ .../ClienteTelefonoUpdateController.java | 28 ++++ .../ClienteTelefonoViewController.java | 29 ++++ .../DistribuidorViewController.java | 18 ++- .../DistribuidorTelefonoCreateController.java | 50 ++++++ .../DistribuidorTelefonoSearchController.java | 98 ++++++++++++ .../DistribuidorTelefonoUpdateController.java | 28 ++++ .../DistribuidorTelefonoViewController.java | 29 ++++ .../trabajador/TrabajadorViewController.java | 7 +- .../telefono/TelefonoCreateController.java | 79 ---------- .../telefono/TelefonoSearchController.java | 143 ------------------ .../telefono/TelefonoUpdateController.java | 89 ----------- .../telefono/TelefonoViewController.java | 60 -------- .../TrabajadorTelefonoCreateController.java | 50 ++++++ .../TrabajadorTelefonoSearchController.java | 109 +++++++++++++ .../TrabajadorTelefonoUpdateController.java | 28 ++++ .../TrabajadorTelefonoViewController.java | 29 ++++ .../xyz/danielcortes/framework/PanelName.java | 18 ++- .../repository/TelefonoRepository.java | 22 ++- 26 files changed, 742 insertions(+), 428 deletions(-) create mode 100644 src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoCreateController.java create mode 100644 src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoSearchController.java create mode 100644 src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoUpdateController.java create mode 100644 src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoViewController.java create mode 100644 src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoCreateController.java create mode 100644 src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoSearchController.java create mode 100644 src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoUpdateController.java create mode 100644 src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoViewController.java delete mode 100644 src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoCreateController.java delete mode 100644 src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoSearchController.java delete mode 100644 src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoUpdateController.java delete mode 100644 src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoViewController.java create mode 100644 src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoCreateController.java create mode 100644 src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoSearchController.java create mode 100644 src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoUpdateController.java create mode 100644 src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoViewController.java diff --git a/src/main/java/xyz/danielcortes/controllers/LaunchController.java b/src/main/java/xyz/danielcortes/controllers/LaunchController.java index 4e8ccb0..2344e44 100644 --- a/src/main/java/xyz/danielcortes/controllers/LaunchController.java +++ b/src/main/java/xyz/danielcortes/controllers/LaunchController.java @@ -26,6 +26,10 @@ import xyz.danielcortes.controllers.cliente.direccion.ClienteDireccionCreateCont import xyz.danielcortes.controllers.cliente.direccion.ClienteDireccionSearchController; import xyz.danielcortes.controllers.cliente.direccion.ClienteDireccionUpdateController; import xyz.danielcortes.controllers.cliente.direccion.ClienteDireccionViewController; +import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoCreateController; +import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoSearchController; +import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoUpdateController; +import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoViewController; import xyz.danielcortes.controllers.distribuidor.DistribuidorCreateController; import xyz.danielcortes.controllers.distribuidor.DistribuidorSearchController; import xyz.danielcortes.controllers.distribuidor.DistribuidorUpdateController; @@ -38,6 +42,10 @@ import xyz.danielcortes.controllers.distribuidor.direccion.DistribuidorDireccion import xyz.danielcortes.controllers.distribuidor.direccion.DistribuidorDireccionSearchController; import xyz.danielcortes.controllers.distribuidor.direccion.DistribuidorDireccionUpdateController; import xyz.danielcortes.controllers.distribuidor.direccion.DistribuidorDireccionViewController; +import xyz.danielcortes.controllers.distribuidor.telefono.DistribuidorTelefonoCreateController; +import xyz.danielcortes.controllers.distribuidor.telefono.DistribuidorTelefonoSearchController; +import xyz.danielcortes.controllers.distribuidor.telefono.DistribuidorTelefonoUpdateController; +import xyz.danielcortes.controllers.distribuidor.telefono.DistribuidorTelefonoViewController; import xyz.danielcortes.controllers.editorial.EditorialCreateController; import xyz.danielcortes.controllers.editorial.EditorialSearchController; import xyz.danielcortes.controllers.editorial.EditorialUpdateController; @@ -66,10 +74,10 @@ import xyz.danielcortes.controllers.trabajador.direccion.TrabajadorDireccionCrea import xyz.danielcortes.controllers.trabajador.direccion.TrabajadorDireccionSearchController; import xyz.danielcortes.controllers.trabajador.direccion.TrabajadorDireccionUpdateController; import xyz.danielcortes.controllers.trabajador.direccion.TrabajadorDireccionViewController; -import xyz.danielcortes.controllers.trabajador.telefono.TelefonoCreateController; -import xyz.danielcortes.controllers.trabajador.telefono.TelefonoSearchController; -import xyz.danielcortes.controllers.trabajador.telefono.TelefonoUpdateController; -import xyz.danielcortes.controllers.trabajador.telefono.TelefonoViewController; +import xyz.danielcortes.controllers.trabajador.telefono.TrabajadorTelefonoCreateController; +import xyz.danielcortes.controllers.trabajador.telefono.TrabajadorTelefonoSearchController; +import xyz.danielcortes.controllers.trabajador.telefono.TrabajadorTelefonoUpdateController; +import xyz.danielcortes.controllers.trabajador.telefono.TrabajadorTelefonoViewController; import xyz.danielcortes.controllers.trabajador.usuario.UsuarioCreateController; import xyz.danielcortes.controllers.trabajador.usuario.UsuarioUpdateController; import xyz.danielcortes.controllers.trabajador.usuario.UsuarioViewController; @@ -174,6 +182,11 @@ public class LaunchController { this.controllers.put(PanelName.EDITORIAL_CREATE, new EditorialCreateController(new EditorialCreatePanel(), this)); this.controllers.put(PanelName.EDITORIAL_UPDATE, new EditorialUpdateController(new EditorialUpdatePanel(), this)); + this.controllers.put(PanelName.EMPRESA_VIEW, new EmpresaViewController(new EmpresaViewPanel(), this)); + this.controllers.put(PanelName.EMPRESA_SEARCH, new EmpresaSearchController(new EmpresaSearchPanel(), this)); + this.controllers.put(PanelName.EMPRESA_CREATE, new EmpresaCreateController(new EmpresaCreatePanel(), this)); + this.controllers.put(PanelName.EMPRESA_UPDATE, new EmpresaUpdateController(new EmpresaUpdatePanel(), this)); + this.controllers.put(PanelName.TRABAJADOR_VIEW, new TrabajadorViewController(new TrabajadorViewPanel(), this)); this.controllers.put(PanelName.TRABAJADOR_SEARCH, new TrabajadorSearchController(new TrabajadorSearchPanel(), this)); this.controllers.put(PanelName.TRABAJADOR_CREATE, new TrabajadorCreateController(new TrabajadorCreatePanel(), this)); @@ -189,11 +202,6 @@ public class LaunchController { this.controllers.put(PanelName.CLIENTE_CREATE, new ClienteCreateController(new ClienteCreatePanel(), this)); this.controllers.put(PanelName.CLIENTE_UPDATE, new ClienteUpdateController(new ClienteUpdatePanel(), this)); - this.controllers.put(PanelName.EMPRESA_VIEW, new EmpresaViewController(new EmpresaViewPanel(), this)); - this.controllers.put(PanelName.EMPRESA_SEARCH, new EmpresaSearchController(new EmpresaSearchPanel(), this)); - this.controllers.put(PanelName.EMPRESA_CREATE, new EmpresaCreateController(new EmpresaCreatePanel(), this)); - this.controllers.put(PanelName.EMPRESA_UPDATE, new EmpresaUpdateController(new EmpresaUpdatePanel(), this)); - this.controllers.put(PanelName.USUARIO_VIEW, new UsuarioViewController(new UsuarioViewPanel(), this)); this.controllers.put(PanelName.USUARIO_CREATE, new UsuarioCreateController(new UsuarioCreatePanel(), this)); this.controllers.put(PanelName.USUARIO_UPDATE, new UsuarioUpdateController(new UsuarioUpdatePanel(), this)); @@ -213,10 +221,20 @@ public class LaunchController { this.controllers.put(PanelName.CLIENTE_CORREO_CREATE, new ClienteCorreoCreateController(new CorreoCreatePanel(), this)); this.controllers.put(PanelName.CLIENTE_CORREO_UPDATE, new ClienteCorreoUpdateController(new CorreoUpdatePanel(), this)); - this.controllers.put(PanelName.TELEFONO_SEARCH, new TelefonoSearchController(new TelefonoSearchPanel(), this)); - this.controllers.put(PanelName.TELEFONO_VIEW, new TelefonoViewController(new TelefonoViewPanel(), this)); - this.controllers.put(PanelName.TELEFONO_CREATE, new TelefonoCreateController(new TelefonoCreatePanel(), this)); - this.controllers.put(PanelName.TELEFONO_UPDATE, new TelefonoUpdateController(new TelefonoUpdatePanel(), this)); + this.controllers.put(PanelName.TRABAJADOR_TELEFONO_SEARCH, new TrabajadorTelefonoSearchController(new TelefonoSearchPanel(), this)); + this.controllers.put(PanelName.TRABAJADOR_TELEFONO_VIEW, new TrabajadorTelefonoViewController(new TelefonoViewPanel(), this)); + this.controllers.put(PanelName.TRABAJADOR_TELEFONO_CREATE, new TrabajadorTelefonoCreateController(new TelefonoCreatePanel(), this)); + this.controllers.put(PanelName.TRABAJADOR_TELEFONO_UPDATE, new TrabajadorTelefonoUpdateController(new TelefonoUpdatePanel(), this)); + + this.controllers.put(PanelName.CLIENTE_TELEFONO_SEARCH, new ClienteTelefonoSearchController(new TelefonoSearchPanel(), this)); + this.controllers.put(PanelName.CLIENTE_TELEFONO_VIEW, new ClienteTelefonoViewController(new TelefonoViewPanel(), this)); + this.controllers.put(PanelName.CLIENTE_TELEFONO_CREATE, new ClienteTelefonoCreateController(new TelefonoCreatePanel(), this)); + this.controllers.put(PanelName.CLIENTE_TELEFONO_UPDATE, new ClienteTelefonoUpdateController(new TelefonoUpdatePanel(), this)); + + this.controllers.put(PanelName.DISTRIBUIDOR_TELEFONO_SEARCH, new DistribuidorTelefonoSearchController(new TelefonoSearchPanel(), this)); + this.controllers.put(PanelName.DISTRIBUIDOR_TELEFONO_VIEW, new DistribuidorTelefonoViewController(new TelefonoViewPanel(), this)); + this.controllers.put(PanelName.DISTRIBUIDOR_TELEFONO_CREATE, new DistribuidorTelefonoCreateController(new TelefonoCreatePanel(), this)); + this.controllers.put(PanelName.DISTRIBUIDOR_TELEFONO_UPDATE, new DistribuidorTelefonoUpdateController(new TelefonoUpdatePanel(), this)); this.controllers.put(PanelName.TRABAJADOR_DIRECCION_SEARCH, new TrabajadorDireccionSearchController(new DireccionSearchPanel(), this)); this.controllers.put(PanelName.TRABAJADOR_DIRECCION_VIEW, new TrabajadorDireccionViewController(new DireccionViewPanel(), this)); @@ -237,7 +255,6 @@ public class LaunchController { BaseController controller = this.controllers.get(name); this.frame.addCard(controller.getView().getContentPane(), name); } - } private void createMenuBar() { @@ -258,9 +275,9 @@ public class LaunchController { JMenuItem categoriasItem = new JMenuItem("Categorias"); JMenuItem editorialesItem = new JMenuItem("Editoriales"); JMenuItem trabajadoresItem = new JMenuItem("Trabajadores"); - JMenuItem empresasItem = new JMenuItem("Empresas"); JMenuItem distribuidoresItem = new JMenuItem("Distribuidores"); JMenuItem clientesItem = new JMenuItem("Clientes"); + JMenuItem empresasItem = new JMenuItem("Empresas"); autoresItem.addActionListener(e -> this.showCard(PanelName.AUTOR_SEARCH)); idiomasItem.addActionListener(e -> this.showCard(PanelName.IDIOMA_SEARCH)); diff --git a/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoCreateController.java b/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoCreateController.java index 807394e..2cde9bd 100644 --- a/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoCreateController.java +++ b/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoCreateController.java @@ -9,9 +9,9 @@ import xyz.danielcortes.views.telefono.TelefonoCreatePanel; public abstract class AbstractTelefonoCreateController extends BaseController { - private TelefonoCreatePanel view; - private TelefonoRepository repository; - private TelefonoValidator validator; + protected TelefonoCreatePanel view; + protected TelefonoRepository repository; + protected TelefonoValidator validator; public AbstractTelefonoCreateController(TelefonoCreatePanel view, LaunchController parentController) { super(parentController); diff --git a/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoSearchController.java b/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoSearchController.java index 0a005c5..d566886 100644 --- a/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoSearchController.java +++ b/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoSearchController.java @@ -13,9 +13,9 @@ import xyz.danielcortes.views.telefono.TelefonoSearchPanel; public abstract class AbstractTelefonoSearchController extends BaseController { - private TelefonoSearchPanel view; - private TelefonoRepository telefonoRepository; - private TelefonoValidator validator; + protected TelefonoSearchPanel view; + protected TelefonoRepository telefonoRepository; + protected TelefonoValidator validator; public AbstractTelefonoSearchController(TelefonoSearchPanel view, LaunchController parent) { super(parent); @@ -35,12 +35,12 @@ public abstract class AbstractTelefonoSearchController extends BaseController { return this.view; } - public void reload() { + protected void reload() { this.loadTelefonosTable(); this.view.getTelefonosTable().clearSelection(); } - private void setupListeners() { + protected void setupListeners() { this.view.getCrearButton().addActionListener(e -> this.create()); this.view.getSearchField().addActionListener(e -> this.search()); this.view.getBuscarButton().addActionListener(e -> this.search()); @@ -64,12 +64,12 @@ public abstract class AbstractTelefonoSearchController extends BaseController { protected abstract void loadTelefonosTable(); - private void loadTelefonosTable(List telefonos) { + protected void loadTelefonosTable(List telefonos) { BaseTableModel model = this.view.getTelefonoModel(); model.setRows(telefonos); } - private Telefono getSelectedTelefono() { + protected Telefono getSelectedTelefono() { int selectedRow = this.view.getTelefonosTable().getSelectedRow(); if (selectedRow == -1) { JOptionPane.showMessageDialog( diff --git a/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoUpdateController.java b/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoUpdateController.java index 8bd1b59..7e470dd 100644 --- a/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoUpdateController.java +++ b/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoUpdateController.java @@ -11,10 +11,10 @@ import xyz.danielcortes.views.telefono.TelefonoUpdatePanel; public abstract class AbstractTelefonoUpdateController extends BaseController { - private Telefono telefono; - private TelefonoUpdatePanel view; - private TelefonoRepository repository; - private TelefonoValidator validator; + protected Telefono telefono; + protected TelefonoUpdatePanel view; + protected TelefonoRepository repository; + protected TelefonoValidator validator; public AbstractTelefonoUpdateController(TelefonoUpdatePanel view, LaunchController parentController) { super(parentController); @@ -44,17 +44,17 @@ public abstract class AbstractTelefonoUpdateController extends BaseController { this.telefono = telefono; } - public void fillTelefono() { + protected void fillTelefono() { this.view.getTelefonoField().setText(this.telefono.getNumero()); } - private void setupListeners() { + protected void setupListeners() { this.view.getTelefonoField().addActionListener(e -> this.update()); this.view.getActualizarButton().addActionListener(e -> this.update()); this.view.getVolverButton().addActionListener(e -> this.volver()); } - private void update() { + protected void update() { String telefono = this.view.getTelefonoField().getText(); ValidationResult originalValidation = this.validator.validateOriginal(this.telefono); diff --git a/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoViewController.java b/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoViewController.java index 502c973..0cf896c 100644 --- a/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoViewController.java +++ b/src/main/java/xyz/danielcortes/controllers/abstract_telefono/AbstractTelefonoViewController.java @@ -36,11 +36,11 @@ public abstract class AbstractTelefonoViewController extends BaseController { this.telefono = telefono; } - public void fillTelefono() { + protected void fillTelefono() { this.view.getTelefonoField().setText(this.telefono.getNumero()); } - private void setupListeners() { + protected void setupListeners() { this.view.getVolverButton().addActionListener(e -> this.volver()); } diff --git a/src/main/java/xyz/danielcortes/controllers/cliente/ClienteViewController.java b/src/main/java/xyz/danielcortes/controllers/cliente/ClienteViewController.java index d3ea75d..ba01e92 100644 --- a/src/main/java/xyz/danielcortes/controllers/cliente/ClienteViewController.java +++ b/src/main/java/xyz/danielcortes/controllers/cliente/ClienteViewController.java @@ -4,6 +4,7 @@ import java.time.format.DateTimeFormatter; import xyz.danielcortes.controllers.LaunchController; import xyz.danielcortes.controllers.cliente.correo.ClienteCorreoSearchController; import xyz.danielcortes.controllers.cliente.direccion.ClienteDireccionSearchController; +import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoSearchController; import xyz.danielcortes.framework.BaseController; import xyz.danielcortes.framework.BasePanel; import xyz.danielcortes.framework.PanelName; @@ -44,11 +45,12 @@ public class ClienteViewController extends BaseController { this.getParentController().showCard(PanelName.CLIENTE_DIRECCION_SEARCH); } -// private void gotoTelefonoView() { -// AbstractTelefonoSearchController controller = (AbstractTelefonoSearchController) this.getParentController().getCard(PanelName.TELEFONO_SEARCH); -// controller.setCliente(cliente); -// this.getParentController().showCard(PanelName.TELEFONO_SEARCH); -// } + private void gotoTelefonoView() { + ClienteTelefonoSearchController controller = (ClienteTelefonoSearchController) this.getParentController() + .getCard(PanelName.CLIENTE_TELEFONO_SEARCH); + controller.setCliente(this.cliente); + this.getParentController().showCard(PanelName.CLIENTE_TELEFONO_SEARCH); + } private void gotoCorreosView() { ClienteCorreoSearchController controller = (ClienteCorreoSearchController) this.getParentController().getCard(PanelName.CLIENTE_CORREO_SEARCH); diff --git a/src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoCreateController.java b/src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoCreateController.java new file mode 100644 index 0000000..10ce62d --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoCreateController.java @@ -0,0 +1,50 @@ +package xyz.danielcortes.controllers.cliente.telefono; + +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.abstract_telefono.AbstractTelefonoCreateController; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.framework.ValidationResult; +import xyz.danielcortes.models.Cliente; +import xyz.danielcortes.models.Telefono; +import xyz.danielcortes.views.telefono.TelefonoCreatePanel; + +public class ClienteTelefonoCreateController extends AbstractTelefonoCreateController { + + private Cliente cliente; + + public ClienteTelefonoCreateController(TelefonoCreatePanel view, LaunchController parentController) { + super(view, parentController); + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + @Override + protected void save() { + String numero = this.view.getNumeroField().getText(); + + ValidationResult numeroValidation = this.validator.validateTelefono(numero); + if (numeroValidation.hasError()) { + numeroValidation.showErrorDialog(); + return; + } + + Telefono telefono = new Telefono(); + telefono.setNumero(numero); + telefono.getClientes().add(this.cliente); + + this.repository.save(telefono); + this.cliente.getTelefonos().add(telefono); + this.volver(); + } + + @Override + protected void volver() { + ClienteTelefonoSearchController controller = (ClienteTelefonoSearchController) this.getParentController() + .getCard(PanelName.CLIENTE_TELEFONO_SEARCH); + controller.setCliente(this.cliente); + this.getParentController().showCard(PanelName.CLIENTE_TELEFONO_SEARCH); + } + +} diff --git a/src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoSearchController.java b/src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoSearchController.java new file mode 100644 index 0000000..cceb489 --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoSearchController.java @@ -0,0 +1,109 @@ +package xyz.danielcortes.controllers.cliente.telefono; + +import java.util.List; +import javax.swing.JOptionPane; +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.abstract_telefono.AbstractTelefonoSearchController; +import xyz.danielcortes.controllers.cliente.ClienteViewController; +import xyz.danielcortes.framework.BasePanel; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Cliente; +import xyz.danielcortes.models.Telefono; +import xyz.danielcortes.views.telefono.TelefonoSearchPanel; + +public class ClienteTelefonoSearchController extends AbstractTelefonoSearchController { + + private Cliente cliente; + + public ClienteTelefonoSearchController(TelefonoSearchPanel view, LaunchController parent) { + super(view, parent); + } + + @Override + public void show() { + this.reload(); + } + + @Override + public BasePanel getView() { + return this.view; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + @Override + protected void create() { + ClienteTelefonoCreateController controller = (ClienteTelefonoCreateController) this.getParentController() + .getCard(PanelName.CLIENTE_TELEFONO_CREATE); + controller.setCliente(this.cliente); + this.getParentController().showCard(PanelName.CLIENTE_TELEFONO_CREATE); + } + + @Override + protected void edit() { + Telefono telefono = this.getSelectedTelefono(); + if (telefono != null) { + ClienteTelefonoUpdateController controller = (ClienteTelefonoUpdateController) this.getParentController() + .getCard(PanelName.CLIENTE_TELEFONO_UPDATE); + controller.setCliente(this.cliente); + controller.setTelefono(telefono); + this.getParentController().showCard(PanelName.CLIENTE_TELEFONO_UPDATE); + } + } + + @Override + protected void delete() { + Telefono telefono = this.getSelectedTelefono(); + if (telefono == null) + return; + + int option = JOptionPane.showConfirmDialog( + null, + "¿Estas seguro de que deseas eliminar el telefono?", + "Confirmacion", + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE + ); + if (option == JOptionPane.NO_OPTION) + return; + + this.telefonoRepository.delete(telefono); + this.cliente.getTelefonos().remove(telefono); + this.reload(); + } + + @Override + protected void view() { + Telefono telefono = this.getSelectedTelefono(); + if (telefono != null) { + ClienteTelefonoViewController controller = (ClienteTelefonoViewController) this.getParentController() + .getCard(PanelName.CLIENTE_TELEFONO_VIEW); + controller.setTelefono(telefono); + controller.setCliente(this.cliente); + this.getParentController().showCard(PanelName.CLIENTE_TELEFONO_VIEW); + } + } + + @Override + protected void search() { + String term = this.view.getSearchField().getText(); + List telefono = this.telefonoRepository.search(term, this.cliente); + this.loadTelefonosTable(telefono); + } + + @Override + protected void volver() { + ClienteViewController controller = (ClienteViewController) this.getParentController().getCard(PanelName.CLIENTE_VIEW); + controller.setCliente(this.cliente); + this.getParentController().showCard(PanelName.CLIENTE_VIEW); + } + + @Override + protected void loadTelefonosTable() { + List telefonos = this.cliente.getTelefonos(); + this.loadTelefonosTable(telefonos); + } + +} diff --git a/src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoUpdateController.java b/src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoUpdateController.java new file mode 100644 index 0000000..72d92ee --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoUpdateController.java @@ -0,0 +1,28 @@ +package xyz.danielcortes.controllers.cliente.telefono; + +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.abstract_telefono.AbstractTelefonoUpdateController; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Cliente; +import xyz.danielcortes.views.telefono.TelefonoUpdatePanel; + +public class ClienteTelefonoUpdateController extends AbstractTelefonoUpdateController { + + private Cliente cliente; + + public ClienteTelefonoUpdateController(TelefonoUpdatePanel view, LaunchController parentController) { + super(view, parentController); + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + @Override + protected void volver() { + ClienteTelefonoSearchController controller = (ClienteTelefonoSearchController) this.getParentController() + .getCard(PanelName.CLIENTE_TELEFONO_SEARCH); + controller.setCliente(this.cliente); + this.getParentController().showCard(PanelName.CLIENTE_TELEFONO_SEARCH); + } +} diff --git a/src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoViewController.java b/src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoViewController.java new file mode 100644 index 0000000..3bbf133 --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/cliente/telefono/ClienteTelefonoViewController.java @@ -0,0 +1,29 @@ +package xyz.danielcortes.controllers.cliente.telefono; + +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.abstract_telefono.AbstractTelefonoViewController; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Cliente; +import xyz.danielcortes.views.telefono.TelefonoViewPanel; + +public class ClienteTelefonoViewController extends AbstractTelefonoViewController { + + private Cliente cliente; + + public ClienteTelefonoViewController(TelefonoViewPanel view, LaunchController parentController) { + super(view, parentController); + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + @Override + protected void volver() { + ClienteTelefonoSearchController controller = (ClienteTelefonoSearchController) this.getParentController() + .getCard(PanelName.CLIENTE_TELEFONO_SEARCH); + controller.setCliente(this.cliente); + this.getParentController().showCard(PanelName.CLIENTE_TELEFONO_SEARCH); + } + +} diff --git a/src/main/java/xyz/danielcortes/controllers/distribuidor/DistribuidorViewController.java b/src/main/java/xyz/danielcortes/controllers/distribuidor/DistribuidorViewController.java index 7ebf081..637d3d1 100644 --- a/src/main/java/xyz/danielcortes/controllers/distribuidor/DistribuidorViewController.java +++ b/src/main/java/xyz/danielcortes/controllers/distribuidor/DistribuidorViewController.java @@ -3,6 +3,7 @@ package xyz.danielcortes.controllers.distribuidor; import xyz.danielcortes.controllers.LaunchController; import xyz.danielcortes.controllers.distribuidor.correo.DistribuidorCorreoSearchController; import xyz.danielcortes.controllers.distribuidor.direccion.DistribuidorDireccionSearchController; +import xyz.danielcortes.controllers.distribuidor.telefono.DistribuidorTelefonoSearchController; import xyz.danielcortes.framework.BaseController; import xyz.danielcortes.framework.BasePanel; import xyz.danielcortes.framework.PanelName; @@ -32,7 +33,7 @@ public class DistribuidorViewController extends BaseController { private void setupListeners() { this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.DISTRIBUIDOR_SEARCH)); this.view.getCorreosButton().addActionListener(e -> this.gotoCorreosView()); -// this.view.getTelefonosButton().addActionListener(e -> this.gotoTelefonoView()); + this.view.getTelefonosButton().addActionListener(e -> this.gotoTelefonoView()); this.view.getDireccionesButton().addActionListener(e -> this.gotoDireccionView()); } @@ -43,13 +44,14 @@ public class DistribuidorViewController extends BaseController { this.getParentController().showCard(PanelName.DISTRIBUIDOR_DIRECCION_SEARCH); } - // -// private void gotoTelefonoView() { -// AbstractTelefonoSearchController controller = (AbstractTelefonoSearchController) this.getParentController().getCard(PanelName.TELEFONO_SEARCH); -// controller.setCliente(distribuidor); -// this.getParentController().showCard(PanelName.TELEFONO_SEARCH); -// } -// + + private void gotoTelefonoView() { + DistribuidorTelefonoSearchController controller = (DistribuidorTelefonoSearchController) this.getParentController() + .getCard(PanelName.DISTRIBUIDOR_TELEFONO_SEARCH); + controller.setDistribuidor(this.distribuidor); + this.getParentController().showCard(PanelName.DISTRIBUIDOR_TELEFONO_SEARCH); + } + private void gotoCorreosView() { DistribuidorCorreoSearchController controller = (DistribuidorCorreoSearchController) this.getParentController() .getCard(PanelName.DISTRIBUIDOR_CORREO_SEARCH); diff --git a/src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoCreateController.java b/src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoCreateController.java new file mode 100644 index 0000000..2d5ae30 --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoCreateController.java @@ -0,0 +1,50 @@ +package xyz.danielcortes.controllers.distribuidor.telefono; + +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.abstract_telefono.AbstractTelefonoCreateController; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.framework.ValidationResult; +import xyz.danielcortes.models.Distribuidor; +import xyz.danielcortes.models.Telefono; +import xyz.danielcortes.views.telefono.TelefonoCreatePanel; + +public class DistribuidorTelefonoCreateController extends AbstractTelefonoCreateController { + + private Distribuidor distribuidor; + + public DistribuidorTelefonoCreateController(TelefonoCreatePanel view, LaunchController parentController) { + super(view, parentController); + } + + public void setDistribuidor(Distribuidor distribuidor) { + this.distribuidor = distribuidor; + } + + @Override + protected void save() { + String numero = this.view.getNumeroField().getText(); + + ValidationResult numeroValidation = this.validator.validateTelefono(numero); + if (numeroValidation.hasError()) { + numeroValidation.showErrorDialog(); + return; + } + + Telefono telefono = new Telefono(); + telefono.setNumero(numero); + telefono.getDistribuidores().add(this.distribuidor); + + this.repository.save(telefono); + this.distribuidor.getTelefonos().add(telefono); + this.volver(); + } + + @Override + protected void volver() { + DistribuidorTelefonoSearchController controller = (DistribuidorTelefonoSearchController) this.getParentController() + .getCard(PanelName.DISTRIBUIDOR_TELEFONO_SEARCH); + controller.setDistribuidor(this.distribuidor); + this.getParentController().showCard(PanelName.DISTRIBUIDOR_TELEFONO_SEARCH); + } + +} diff --git a/src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoSearchController.java b/src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoSearchController.java new file mode 100644 index 0000000..f81d57c --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoSearchController.java @@ -0,0 +1,98 @@ +package xyz.danielcortes.controllers.distribuidor.telefono; + +import java.util.List; +import javax.swing.JOptionPane; +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.abstract_telefono.AbstractTelefonoSearchController; +import xyz.danielcortes.controllers.distribuidor.DistribuidorViewController; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Distribuidor; +import xyz.danielcortes.models.Telefono; +import xyz.danielcortes.views.telefono.TelefonoSearchPanel; + +public class DistribuidorTelefonoSearchController extends AbstractTelefonoSearchController { + + private Distribuidor distribuidor; + + public DistribuidorTelefonoSearchController(TelefonoSearchPanel view, LaunchController parent) { + super(view, parent); + } + + public void setDistribuidor(Distribuidor distribuidor) { + this.distribuidor = distribuidor; + } + + @Override + protected void create() { + DistribuidorTelefonoCreateController controller = (DistribuidorTelefonoCreateController) this.getParentController() + .getCard(PanelName.DISTRIBUIDOR_TELEFONO_CREATE); + controller.setDistribuidor(this.distribuidor); + this.getParentController().showCard(PanelName.DISTRIBUIDOR_TELEFONO_CREATE); + } + + @Override + protected void edit() { + Telefono telefono = this.getSelectedTelefono(); + if (telefono != null) { + DistribuidorTelefonoUpdateController controller = (DistribuidorTelefonoUpdateController) this.getParentController() + .getCard(PanelName.DISTRIBUIDOR_TELEFONO_UPDATE); + controller.setDistribuidor(this.distribuidor); + controller.setTelefono(telefono); + this.getParentController().showCard(PanelName.DISTRIBUIDOR_TELEFONO_UPDATE); + } + } + + @Override + protected void delete() { + Telefono telefono = this.getSelectedTelefono(); + if (telefono == null) + return; + + int option = JOptionPane.showConfirmDialog( + null, + "¿Estas seguro de que deseas eliminar el telefono?", + "Confirmacion", + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE + ); + if (option == JOptionPane.NO_OPTION) + return; + + this.telefonoRepository.delete(telefono); + this.distribuidor.getTelefonos().remove(telefono); + this.reload(); + } + + @Override + protected void view() { + Telefono telefono = this.getSelectedTelefono(); + if (telefono != null) { + DistribuidorTelefonoViewController controller = (DistribuidorTelefonoViewController) this.getParentController() + .getCard(PanelName.DISTRIBUIDOR_TELEFONO_VIEW); + controller.setTelefono(telefono); + controller.setDistribuidor(this.distribuidor); + this.getParentController().showCard(PanelName.DISTRIBUIDOR_TELEFONO_VIEW); + } + } + + @Override + protected void search() { + String term = this.view.getSearchField().getText(); + List telefono = this.telefonoRepository.search(term, this.distribuidor); + this.loadTelefonosTable(telefono); + } + + @Override + protected void volver() { + DistribuidorViewController controller = (DistribuidorViewController) this.getParentController().getCard(PanelName.DISTRIBUIDOR_VIEW); + controller.setDistribuidor(this.distribuidor); + this.getParentController().showCard(PanelName.DISTRIBUIDOR_VIEW); + } + + @Override + protected void loadTelefonosTable() { + List telefonos = this.distribuidor.getTelefonos(); + this.loadTelefonosTable(telefonos); + } + +} diff --git a/src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoUpdateController.java b/src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoUpdateController.java new file mode 100644 index 0000000..182f593 --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoUpdateController.java @@ -0,0 +1,28 @@ +package xyz.danielcortes.controllers.distribuidor.telefono; + +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.abstract_telefono.AbstractTelefonoUpdateController; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Distribuidor; +import xyz.danielcortes.views.telefono.TelefonoUpdatePanel; + +public class DistribuidorTelefonoUpdateController extends AbstractTelefonoUpdateController { + + private Distribuidor distribuidor; + + public DistribuidorTelefonoUpdateController(TelefonoUpdatePanel view, LaunchController parentController) { + super(view, parentController); + } + + public void setDistribuidor(Distribuidor distribuidor) { + this.distribuidor = distribuidor; + } + + @Override + protected void volver() { + DistribuidorTelefonoSearchController controller = (DistribuidorTelefonoSearchController) this.getParentController() + .getCard(PanelName.DISTRIBUIDOR_TELEFONO_SEARCH); + controller.setDistribuidor(this.distribuidor); + this.getParentController().showCard(PanelName.DISTRIBUIDOR_TELEFONO_SEARCH); + } +} diff --git a/src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoViewController.java b/src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoViewController.java new file mode 100644 index 0000000..0476457 --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/distribuidor/telefono/DistribuidorTelefonoViewController.java @@ -0,0 +1,29 @@ +package xyz.danielcortes.controllers.distribuidor.telefono; + +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.abstract_telefono.AbstractTelefonoViewController; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Distribuidor; +import xyz.danielcortes.views.telefono.TelefonoViewPanel; + +public class DistribuidorTelefonoViewController extends AbstractTelefonoViewController { + + private Distribuidor distribuidor; + + public DistribuidorTelefonoViewController(TelefonoViewPanel view, LaunchController parentController) { + super(view, parentController); + } + + public void setDistribuidor(Distribuidor distribuidor) { + this.distribuidor = distribuidor; + } + + @Override + protected void volver() { + DistribuidorTelefonoSearchController controller = (DistribuidorTelefonoSearchController) this.getParentController() + .getCard(PanelName.DISTRIBUIDOR_TELEFONO_SEARCH); + controller.setDistribuidor(this.distribuidor); + this.getParentController().showCard(PanelName.DISTRIBUIDOR_TELEFONO_SEARCH); + } + +} diff --git a/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorViewController.java b/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorViewController.java index cae9628..63d1ae7 100644 --- a/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorViewController.java +++ b/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorViewController.java @@ -4,7 +4,7 @@ import javax.swing.JOptionPane; import xyz.danielcortes.controllers.LaunchController; import xyz.danielcortes.controllers.trabajador.correo.TrabajadorCorreoSearchController; import xyz.danielcortes.controllers.trabajador.direccion.TrabajadorDireccionSearchController; -import xyz.danielcortes.controllers.trabajador.telefono.TelefonoSearchController; +import xyz.danielcortes.controllers.trabajador.telefono.TrabajadorTelefonoSearchController; import xyz.danielcortes.controllers.trabajador.usuario.UsuarioCreateController; import xyz.danielcortes.controllers.trabajador.usuario.UsuarioViewController; import xyz.danielcortes.framework.BaseController; @@ -49,9 +49,10 @@ public class TrabajadorViewController extends BaseController { } private void gotoTelefonoView() { - TelefonoSearchController controller = (TelefonoSearchController) this.getParentController().getCard(PanelName.TELEFONO_SEARCH); + TrabajadorTelefonoSearchController controller = (TrabajadorTelefonoSearchController) this.getParentController() + .getCard(PanelName.TRABAJADOR_TELEFONO_SEARCH); controller.setTrabajador(this.trabajador); - this.getParentController().showCard(PanelName.TELEFONO_SEARCH); + this.getParentController().showCard(PanelName.TRABAJADOR_TELEFONO_SEARCH); } private void gotoCorreosView() { diff --git a/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoCreateController.java b/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoCreateController.java deleted file mode 100644 index 1b60f9b..0000000 --- a/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoCreateController.java +++ /dev/null @@ -1,79 +0,0 @@ -package xyz.danielcortes.controllers.trabajador.telefono; - -import xyz.danielcortes.controllers.LaunchController; -import xyz.danielcortes.framework.BaseController; -import xyz.danielcortes.framework.BasePanel; -import xyz.danielcortes.framework.PanelName; -import xyz.danielcortes.framework.ValidationResult; -import xyz.danielcortes.models.Telefono; -import xyz.danielcortes.models.Trabajador; -import xyz.danielcortes.repository.TelefonoRepository; -import xyz.danielcortes.validator.TelefonoValidator; -import xyz.danielcortes.views.telefono.TelefonoCreatePanel; - -public class TelefonoCreateController extends BaseController { - - private Trabajador trabajador; - private TelefonoCreatePanel view; - private TelefonoRepository repository; - private TelefonoValidator validator; - - public TelefonoCreateController(TelefonoCreatePanel view, LaunchController parentController) { - super(parentController); - this.view = view; - this.repository = new TelefonoRepository(); - this.validator = new TelefonoValidator(this.repository); - this.setupListeners(); - } - - @Override - public LaunchController getParentController() { - return this.parentController; - } - - @Override - public void show() { - this.view.getNumeroField().requestFocus(); - this.view.getNumeroField().setText(""); - } - - @Override - public BasePanel getView() { - return this.view; - } - - public void setTrabajador(Trabajador trabajador) { - this.trabajador = trabajador; - } - - private void setupListeners() { - this.view.getNumeroField().addActionListener(e -> this.save()); - this.view.getGuardarButton().addActionListener(e -> this.save()); - this.view.getVolverButton().addActionListener(e -> this.volver()); - } - - private void save() { - String numero = this.view.getNumeroField().getText(); - - ValidationResult numeroValidation = this.validator.validateTelefono(numero); - if (numeroValidation.hasError()) { - numeroValidation.showErrorDialog(); - return; - } - - Telefono telefono = new Telefono(); - telefono.setNumero(numero); - telefono.getTrabajadores().add(this.trabajador); - - this.repository.save(telefono); - this.trabajador.getTelefonos().add(telefono); - this.volver(); - } - - private void volver() { - TelefonoSearchController controller = (TelefonoSearchController) this.getParentController().getCard(PanelName.TELEFONO_SEARCH); - controller.setTrabajador(this.trabajador); - this.getParentController().showCard(PanelName.TELEFONO_SEARCH); - } - -} diff --git a/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoSearchController.java b/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoSearchController.java deleted file mode 100644 index adfdc72..0000000 --- a/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoSearchController.java +++ /dev/null @@ -1,143 +0,0 @@ -package xyz.danielcortes.controllers.trabajador.telefono; - -import java.util.List; -import javax.swing.JOptionPane; -import xyz.danielcortes.controllers.LaunchController; -import xyz.danielcortes.controllers.trabajador.TrabajadorViewController; -import xyz.danielcortes.framework.BaseController; -import xyz.danielcortes.framework.BasePanel; -import xyz.danielcortes.framework.BaseTableModel; -import xyz.danielcortes.framework.PanelName; -import xyz.danielcortes.models.Telefono; -import xyz.danielcortes.models.Trabajador; -import xyz.danielcortes.repository.TelefonoRepository; -import xyz.danielcortes.validator.TelefonoValidator; -import xyz.danielcortes.views.telefono.TelefonoSearchPanel; - -public class TelefonoSearchController extends BaseController { - - private Trabajador trabajador; - private TelefonoSearchPanel view; - private TelefonoRepository telefonoRepository; - private TelefonoValidator validator; - - public TelefonoSearchController(TelefonoSearchPanel view, LaunchController parent) { - super(parent); - this.view = view; - this.telefonoRepository = new TelefonoRepository(); - this.validator = new TelefonoValidator(this.telefonoRepository); - this.setupListeners(); - } - - @Override - public void show() { - this.reload(); - } - - @Override - public BasePanel getView() { - return this.view; - } - - public void setTrabajador(Trabajador trabajador) { - this.trabajador = trabajador; - } - - public void reload() { - this.loadTelefonosTable(); - this.view.getTelefonosTable().clearSelection(); - } - - private void setupListeners() { - this.view.getCrearButton().addActionListener(e -> this.create()); - this.view.getSearchField().addActionListener(e -> this.search()); - this.view.getBuscarButton().addActionListener(e -> this.search()); - this.view.getVerButton().addActionListener(e -> this.view()); - this.view.getEditarButton().addActionListener(e -> this.edit()); - this.view.getEliminarButton().addActionListener(e -> this.delete()); - this.view.getVolverButton().addActionListener(e -> this.volver()); - } - - private void create() { - TelefonoCreateController controller = (TelefonoCreateController) this.getParentController().getCard(PanelName.TELEFONO_CREATE); - controller.setTrabajador(this.trabajador); - this.getParentController().showCard(PanelName.TELEFONO_CREATE); - } - - private void edit() { - Telefono telefono = this.getSelectedTelefono(); - if (telefono != null) { - TelefonoUpdateController controller = (TelefonoUpdateController) this.getParentController().getCard(PanelName.TELEFONO_UPDATE); - controller.setTrabajador(this.trabajador); - controller.setTelefono(telefono); - this.getParentController().showCard(PanelName.TELEFONO_UPDATE); - } - } - - private void delete() { - Telefono telefono = this.getSelectedTelefono(); - if (telefono == null) - return; - - int option = JOptionPane.showConfirmDialog( - null, - "¿Estas seguro de que deseas eliminar el abstract_telefono?", - "Confirmacion", - JOptionPane.YES_NO_OPTION, - JOptionPane.QUESTION_MESSAGE - ); - if (option == JOptionPane.NO_OPTION) - return; - - this.telefonoRepository.delete(telefono); - this.trabajador.getTelefonos().remove(telefono); - this.reload(); - } - - private void view() { - Telefono telefono = this.getSelectedTelefono(); - if (telefono != null) { - TelefonoViewController controller = (TelefonoViewController) this.getParentController().getCard(PanelName.TELEFONO_VIEW); - controller.setTelefono(telefono); - controller.setTrabajador(this.trabajador); - this.getParentController().showCard(PanelName.TELEFONO_VIEW); - } - } - - private void search() { - String term = this.view.getSearchField().getText(); - List telefono = this.telefonoRepository.search(term, this.trabajador); - this.loadTelefonosTable(telefono); - } - - private void volver() { - TrabajadorViewController controller = (TrabajadorViewController) this.getParentController().getCard(PanelName.TRABAJADOR_VIEW); - controller.setTrabajador(this.trabajador); - this.getParentController().showCard(PanelName.TRABAJADOR_VIEW); - } - - private void loadTelefonosTable() { - List telefonos = this.trabajador.getTelefonos(); - this.loadTelefonosTable(telefonos); - } - - private void loadTelefonosTable(List telefonos) { - BaseTableModel model = this.view.getTelefonoModel(); - model.setRows(telefonos); - } - - private Telefono getSelectedTelefono() { - int selectedRow = this.view.getTelefonosTable().getSelectedRow(); - if (selectedRow == -1) { - JOptionPane.showMessageDialog( - null, - "No hay abstract_telefono seleccionado", - "Error", - JOptionPane.ERROR_MESSAGE - ); - return null; - } - - return this.view.getTelefonoModel().getRow(selectedRow); - } -} diff --git a/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoUpdateController.java b/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoUpdateController.java deleted file mode 100644 index 44294cc..0000000 --- a/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoUpdateController.java +++ /dev/null @@ -1,89 +0,0 @@ -package xyz.danielcortes.controllers.trabajador.telefono; - -import xyz.danielcortes.controllers.LaunchController; -import xyz.danielcortes.framework.BaseController; -import xyz.danielcortes.framework.BasePanel; -import xyz.danielcortes.framework.PanelName; -import xyz.danielcortes.framework.ValidationResult; -import xyz.danielcortes.models.Telefono; -import xyz.danielcortes.models.Trabajador; -import xyz.danielcortes.repository.TelefonoRepository; -import xyz.danielcortes.validator.TelefonoValidator; -import xyz.danielcortes.views.telefono.TelefonoUpdatePanel; - -public class TelefonoUpdateController extends BaseController { - - private Trabajador trabajador; - private Telefono telefono; - private TelefonoUpdatePanel view; - private TelefonoRepository repository; - private TelefonoValidator validator; - - public TelefonoUpdateController(TelefonoUpdatePanel view, LaunchController parentController) { - super(parentController); - this.view = view; - this.repository = new TelefonoRepository(); - this.validator = new TelefonoValidator(this.repository); - this.setupListeners(); - } - - @Override - public LaunchController getParentController() { - return this.parentController; - } - - @Override - public void show() { - this.view.getTelefonoField().requestFocus(); - this.fillTelefono(); - } - - @Override - public BasePanel getView() { - return this.view; - } - - public void setTrabajador(Trabajador trabajador) { - this.trabajador = trabajador; - } - - public void setTelefono(Telefono telefono) { - this.telefono = telefono; - } - - public void fillTelefono() { - this.view.getTelefonoField().setText(this.telefono.getNumero()); - } - - private void setupListeners() { - this.view.getTelefonoField().addActionListener(e -> this.update()); - this.view.getActualizarButton().addActionListener(e -> this.update()); - this.view.getVolverButton().addActionListener(e -> this.volver()); - } - - private void update() { - String telefono = this.view.getTelefonoField().getText(); - - ValidationResult originalValidation = this.validator.validateOriginal(this.telefono); - if (originalValidation.hasError()) { - originalValidation.showErrorDialog(); - return; - } - ValidationResult telefonoValidation = this.validator.validateTelefono(telefono); - if (telefonoValidation.hasError()) { - telefonoValidation.showErrorDialog(); - return; - } - - this.telefono.setNumero(telefono); - this.repository.update(this.telefono); - - this.volver(); - } - - private void volver() { - TelefonoSearchController controller = (TelefonoSearchController) this.getParentController().getCard(PanelName.TELEFONO_SEARCH); - controller.setTrabajador(this.trabajador); - this.getParentController().showCard(PanelName.TELEFONO_SEARCH); - } -} diff --git a/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoViewController.java b/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoViewController.java deleted file mode 100644 index 18396fe..0000000 --- a/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TelefonoViewController.java +++ /dev/null @@ -1,60 +0,0 @@ -package xyz.danielcortes.controllers.trabajador.telefono; - -import xyz.danielcortes.controllers.LaunchController; -import xyz.danielcortes.framework.BaseController; -import xyz.danielcortes.framework.BasePanel; -import xyz.danielcortes.framework.PanelName; -import xyz.danielcortes.models.Telefono; -import xyz.danielcortes.models.Trabajador; -import xyz.danielcortes.views.telefono.TelefonoViewPanel; - -public class TelefonoViewController extends BaseController { - - private Trabajador trabajador; - private Telefono telefono; - private TelefonoViewPanel view; - - public TelefonoViewController(TelefonoViewPanel view, LaunchController parentController) { - super(parentController); - this.view = view; - this.setupListeners(); - } - - @Override - public LaunchController getParentController() { - return this.parentController; - } - - @Override - public void show() { - this.fillTelefono(); - } - - @Override - public BasePanel getView() { - return this.view; - } - - public void setTrabajador(Trabajador trabajador) { - this.trabajador = trabajador; - } - - public void setTelefono(Telefono telefono) { - this.telefono = telefono; - } - - public void fillTelefono() { - this.view.getTelefonoField().setText(this.telefono.getNumero()); - } - - private void setupListeners() { - this.view.getVolverButton().addActionListener(e -> this.volver()); - } - - private void volver() { - TelefonoSearchController controller = (TelefonoSearchController) this.getParentController().getCard(PanelName.TELEFONO_SEARCH); - controller.setTrabajador(this.trabajador); - this.getParentController().showCard(PanelName.TELEFONO_SEARCH); - } - -} diff --git a/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoCreateController.java b/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoCreateController.java new file mode 100644 index 0000000..3ac9b71 --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoCreateController.java @@ -0,0 +1,50 @@ +package xyz.danielcortes.controllers.trabajador.telefono; + +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.abstract_telefono.AbstractTelefonoCreateController; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.framework.ValidationResult; +import xyz.danielcortes.models.Telefono; +import xyz.danielcortes.models.Trabajador; +import xyz.danielcortes.views.telefono.TelefonoCreatePanel; + +public class TrabajadorTelefonoCreateController extends AbstractTelefonoCreateController { + + private Trabajador trabajador; + + public TrabajadorTelefonoCreateController(TelefonoCreatePanel view, LaunchController parentController) { + super(view, parentController); + } + + public void setTrabajador(Trabajador trabajador) { + this.trabajador = trabajador; + } + + @Override + protected void save() { + String numero = this.view.getNumeroField().getText(); + + ValidationResult numeroValidation = this.validator.validateTelefono(numero); + if (numeroValidation.hasError()) { + numeroValidation.showErrorDialog(); + return; + } + + Telefono telefono = new Telefono(); + telefono.setNumero(numero); + telefono.getTrabajadores().add(this.trabajador); + + this.repository.save(telefono); + this.trabajador.getTelefonos().add(telefono); + this.volver(); + } + + @Override + protected void volver() { + TrabajadorTelefonoSearchController controller = (TrabajadorTelefonoSearchController) this.getParentController() + .getCard(PanelName.TRABAJADOR_TELEFONO_SEARCH); + controller.setTrabajador(this.trabajador); + this.getParentController().showCard(PanelName.TRABAJADOR_TELEFONO_SEARCH); + } + +} diff --git a/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoSearchController.java b/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoSearchController.java new file mode 100644 index 0000000..88fd00f --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoSearchController.java @@ -0,0 +1,109 @@ +package xyz.danielcortes.controllers.trabajador.telefono; + +import java.util.List; +import javax.swing.JOptionPane; +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.abstract_telefono.AbstractTelefonoSearchController; +import xyz.danielcortes.controllers.trabajador.TrabajadorViewController; +import xyz.danielcortes.framework.BasePanel; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Telefono; +import xyz.danielcortes.models.Trabajador; +import xyz.danielcortes.views.telefono.TelefonoSearchPanel; + +public class TrabajadorTelefonoSearchController extends AbstractTelefonoSearchController { + + private Trabajador trabajador; + + public TrabajadorTelefonoSearchController(TelefonoSearchPanel view, LaunchController parent) { + super(view, parent); + } + + @Override + public void show() { + this.reload(); + } + + @Override + public BasePanel getView() { + return this.view; + } + + public void setTrabajador(Trabajador trabajador) { + this.trabajador = trabajador; + } + + @Override + protected void create() { + TrabajadorTelefonoCreateController controller = (TrabajadorTelefonoCreateController) this.getParentController() + .getCard(PanelName.TRABAJADOR_TELEFONO_CREATE); + controller.setTrabajador(this.trabajador); + this.getParentController().showCard(PanelName.TRABAJADOR_TELEFONO_CREATE); + } + + @Override + protected void edit() { + Telefono telefono = this.getSelectedTelefono(); + if (telefono != null) { + TrabajadorTelefonoUpdateController controller = (TrabajadorTelefonoUpdateController) this.getParentController() + .getCard(PanelName.TRABAJADOR_TELEFONO_UPDATE); + controller.setTrabajador(this.trabajador); + controller.setTelefono(telefono); + this.getParentController().showCard(PanelName.TRABAJADOR_TELEFONO_UPDATE); + } + } + + @Override + protected void delete() { + Telefono telefono = this.getSelectedTelefono(); + if (telefono == null) + return; + + int option = JOptionPane.showConfirmDialog( + null, + "¿Estas seguro de que deseas eliminar el telefono?", + "Confirmacion", + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE + ); + if (option == JOptionPane.NO_OPTION) + return; + + this.telefonoRepository.delete(telefono); + this.trabajador.getTelefonos().remove(telefono); + this.reload(); + } + + @Override + protected void view() { + Telefono telefono = this.getSelectedTelefono(); + if (telefono != null) { + TrabajadorTelefonoViewController controller = (TrabajadorTelefonoViewController) this.getParentController() + .getCard(PanelName.TRABAJADOR_TELEFONO_VIEW); + controller.setTelefono(telefono); + controller.setTrabajador(this.trabajador); + this.getParentController().showCard(PanelName.TRABAJADOR_TELEFONO_VIEW); + } + } + + @Override + protected void search() { + String term = this.view.getSearchField().getText(); + List telefono = this.telefonoRepository.search(term, this.trabajador); + this.loadTelefonosTable(telefono); + } + + @Override + protected void volver() { + TrabajadorViewController controller = (TrabajadorViewController) this.getParentController().getCard(PanelName.TRABAJADOR_VIEW); + controller.setTrabajador(this.trabajador); + this.getParentController().showCard(PanelName.TRABAJADOR_VIEW); + } + + @Override + protected void loadTelefonosTable() { + List telefonos = this.trabajador.getTelefonos(); + this.loadTelefonosTable(telefonos); + } + +} diff --git a/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoUpdateController.java b/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoUpdateController.java new file mode 100644 index 0000000..869fbec --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoUpdateController.java @@ -0,0 +1,28 @@ +package xyz.danielcortes.controllers.trabajador.telefono; + +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.abstract_telefono.AbstractTelefonoUpdateController; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Trabajador; +import xyz.danielcortes.views.telefono.TelefonoUpdatePanel; + +public class TrabajadorTelefonoUpdateController extends AbstractTelefonoUpdateController { + + private Trabajador trabajador; + + public TrabajadorTelefonoUpdateController(TelefonoUpdatePanel view, LaunchController parentController) { + super(view, parentController); + } + + public void setTrabajador(Trabajador trabajador) { + this.trabajador = trabajador; + } + + @Override + protected void volver() { + TrabajadorTelefonoSearchController controller = (TrabajadorTelefonoSearchController) this.getParentController() + .getCard(PanelName.TRABAJADOR_TELEFONO_SEARCH); + controller.setTrabajador(this.trabajador); + this.getParentController().showCard(PanelName.TRABAJADOR_TELEFONO_SEARCH); + } +} diff --git a/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoViewController.java b/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoViewController.java new file mode 100644 index 0000000..29691e8 --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/trabajador/telefono/TrabajadorTelefonoViewController.java @@ -0,0 +1,29 @@ +package xyz.danielcortes.controllers.trabajador.telefono; + +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.abstract_telefono.AbstractTelefonoViewController; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Trabajador; +import xyz.danielcortes.views.telefono.TelefonoViewPanel; + +public class TrabajadorTelefonoViewController extends AbstractTelefonoViewController { + + private Trabajador trabajador; + + public TrabajadorTelefonoViewController(TelefonoViewPanel view, LaunchController parentController) { + super(view, parentController); + } + + public void setTrabajador(Trabajador trabajador) { + this.trabajador = trabajador; + } + + @Override + protected void volver() { + TrabajadorTelefonoSearchController controller = (TrabajadorTelefonoSearchController) this.getParentController() + .getCard(PanelName.TRABAJADOR_TELEFONO_SEARCH); + controller.setTrabajador(this.trabajador); + this.getParentController().showCard(PanelName.TRABAJADOR_TELEFONO_SEARCH); + } + +} diff --git a/src/main/java/xyz/danielcortes/framework/PanelName.java b/src/main/java/xyz/danielcortes/framework/PanelName.java index 75d2769..a94585f 100644 --- a/src/main/java/xyz/danielcortes/framework/PanelName.java +++ b/src/main/java/xyz/danielcortes/framework/PanelName.java @@ -67,10 +67,20 @@ public enum PanelName { CLIENTE_CORREO_CREATE, CLIENTE_CORREO_UPDATE, - TELEFONO_VIEW, - TELEFONO_SEARCH, - TELEFONO_CREATE, - TELEFONO_UPDATE, + TRABAJADOR_TELEFONO_VIEW, + TRABAJADOR_TELEFONO_SEARCH, + TRABAJADOR_TELEFONO_CREATE, + TRABAJADOR_TELEFONO_UPDATE, + + DISTRIBUIDOR_TELEFONO_VIEW, + DISTRIBUIDOR_TELEFONO_SEARCH, + DISTRIBUIDOR_TELEFONO_CREATE, + DISTRIBUIDOR_TELEFONO_UPDATE, + + CLIENTE_TELEFONO_VIEW, + CLIENTE_TELEFONO_SEARCH, + CLIENTE_TELEFONO_CREATE, + CLIENTE_TELEFONO_UPDATE, TRABAJADOR_DIRECCION_VIEW, TRABAJADOR_DIRECCION_SEARCH, diff --git a/src/main/java/xyz/danielcortes/repository/TelefonoRepository.java b/src/main/java/xyz/danielcortes/repository/TelefonoRepository.java index 3c3bb0c..3789a10 100644 --- a/src/main/java/xyz/danielcortes/repository/TelefonoRepository.java +++ b/src/main/java/xyz/danielcortes/repository/TelefonoRepository.java @@ -4,26 +4,42 @@ import java.util.List; import javax.persistence.Query; import javax.persistence.TypedQuery; import xyz.danielcortes.framework.BaseRepository; +import xyz.danielcortes.models.Cliente; +import xyz.danielcortes.models.Distribuidor; import xyz.danielcortes.models.Telefono; import xyz.danielcortes.models.Trabajador; public class TelefonoRepository extends BaseRepository { public List getAll() { - TypedQuery query = em.createQuery("SELECT t FROM Telefono t", Telefono.class); + TypedQuery query = this.em.createQuery("SELECT t FROM Telefono t", Telefono.class); return query.getResultList(); } public List search(String term) { - Query query = em.createQuery("SELECT t FROM Telefono t WHERE LOWER(t.numero) LIKE :term"); + Query query = this.em.createQuery("SELECT t FROM Telefono t WHERE LOWER(t.numero) LIKE :term"); query.setParameter("term", "%" + term.toLowerCase() + "%"); return query.getResultList(); } public List search(String term, Trabajador trabajador) { - Query query = em.createQuery("SELECT t FROM Telefono t JOIN t.trabajadores r WHERE r.id = :id AND LOWER(t.numero) LIKE :term"); + Query query = this.em.createQuery("SELECT t FROM Telefono t JOIN t.trabajadores r WHERE r.id = :id AND LOWER(t.numero) LIKE :term"); query.setParameter("id", trabajador.getId()); query.setParameter("term", "%" + term.toLowerCase() + "%"); return query.getResultList(); } + + public List search(String term, Cliente cliente) { + Query query = this.em.createQuery("SELECT t FROM Telefono t JOIN t.clientes r WHERE r.id = :id AND LOWER(t.numero) LIKE :term"); + query.setParameter("id", cliente.getId()); + query.setParameter("term", "%" + term.toLowerCase() + "%"); + return query.getResultList(); + } + + public List search(String term, Distribuidor distribuidor) { + Query query = this.em.createQuery("SELECT t FROM Telefono t JOIN t.distribuidores r WHERE r.id = :id AND LOWER(t.numero) LIKE :term"); + query.setParameter("id", distribuidor.getId()); + query.setParameter("term", "%" + term.toLowerCase() + "%"); + return query.getResultList(); + } }