diff --git a/dump.sql b/dump.sql new file mode 100644 index 0000000..e5c8fab --- /dev/null +++ b/dump.sql @@ -0,0 +1,84 @@ +-- MySQL dump 10.17 Distrib 10.3.15-MariaDB, for Linux (x86_64) +-- +-- Host: localhost Database: biblioteca +-- ------------------------------------------------------ +-- Server version 10.3.15-MariaDB + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `usuario` +-- + +DROP TABLE IF EXISTS `usuario`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `usuario` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `nombre` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `trabajador_id` int(10) unsigned NOT NULL, + `inserted_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`), + KEY `trabajador_id` (`trabajador_id`), + CONSTRAINT `usuario_ibfk_1` FOREIGN KEY (`trabajador_id`) REFERENCES `trabajador` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `usuario` +-- + +LOCK TABLES `usuario` WRITE; +/*!40000 ALTER TABLE `usuario` DISABLE KEYS */; +/*!40000 ALTER TABLE `usuario` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `trabajador` +-- + +DROP TABLE IF EXISTS `trabajador`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `trabajador` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `rut` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `nombre` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `apellido_paterno` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `apellido_materno` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `fecha_contrato` date NOT NULL, + `inserted_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `trabajador` +-- + +LOCK TABLES `trabajador` WRITE; +/*!40000 ALTER TABLE `trabajador` DISABLE KEYS */; +INSERT INTO `trabajador` VALUES (1,'197638990','Daniel','Cortes','Pincheira','2019-06-04','2019-06-04 22:12:55'); +/*!40000 ALTER TABLE `trabajador` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2019-06-04 20:10:06 diff --git a/script.sql b/script.sql index 0fe6927..b434615 100644 --- a/script.sql +++ b/script.sql @@ -13,6 +13,7 @@ drop table if exists ejemplar; drop table if exists libro_autor; drop table if exists libro_categoria; drop table if exists libro_idioma; +drop table if exists correo; drop table if exists direccion; drop table if exists telefono; drop table if exists empresa; @@ -21,10 +22,13 @@ drop table if exists cliente; drop table if exists trabajador; drop table if exists distribuidor_direccion; drop table if exists distribuidor_telefono; +drop table if exists distribuidor_correo; drop table if exists cliente_direccion; drop table if exists cliente_telefono; +drop table if exists cliente_correo; drop table if exists trabajador_direccion; drop table if exists trabajador_telefono; +drop table if exists trabajador_correo; drop table if exists factura; drop table if exists boleta; drop table if exists compra; @@ -355,9 +359,9 @@ create table libro_arriendo create table usuario ( id int unsigned primary key auto_increment, - nombre varchar(255) not null, - password varbinary(2000) not null, - trabajador_id int unsigned not null, + nombre varchar(255) not null, + password varchar(255) not null, + trabajador_id int unsigned not null, foreign key (trabajador_id) references trabajador (id) on delete cascade on update cascade, inserted_at timestamp default current_timestamp ); @@ -437,3 +441,9 @@ values (1, 2), (7, 2), (8, 2), (9, 2); + +INSERT INTO trabajador +VALUES (1, '197638990', 'Daniel', 'Cortes', 'Pincheira', '2019-06-04', '2019-06-04 18:12:55'); + +INSERT INTO usuario +VALUES (1, 'admin', 'IF7nbMo9zxGOH++0op8eE+obeILVzsZCguAqPVydL/0=', 1, '2019-06-05 00:08:50'); diff --git a/src/main/java/xyz/danielcortes/controllers/LaunchController.java b/src/main/java/xyz/danielcortes/controllers/LaunchController.java index 16535e6..3c840cd 100644 --- a/src/main/java/xyz/danielcortes/controllers/LaunchController.java +++ b/src/main/java/xyz/danielcortes/controllers/LaunchController.java @@ -31,6 +31,9 @@ import xyz.danielcortes.controllers.trabajador.TrabajadorCreateController; import xyz.danielcortes.controllers.trabajador.TrabajadorSearchController; import xyz.danielcortes.controllers.trabajador.TrabajadorUpdateController; import xyz.danielcortes.controllers.trabajador.TrabajadorViewController; +import xyz.danielcortes.controllers.usuario.UsuarioCreateController; +import xyz.danielcortes.controllers.usuario.UsuarioUpdateController; +import xyz.danielcortes.controllers.usuario.UsuarioViewController; import xyz.danielcortes.framework.BaseController; import xyz.danielcortes.framework.PanelName; import xyz.danielcortes.models.Usuario; @@ -59,6 +62,9 @@ import xyz.danielcortes.views.trabajador.TrabajadorCreatePanel; import xyz.danielcortes.views.trabajador.TrabajadorSearchPanel; import xyz.danielcortes.views.trabajador.TrabajadorUpdatePanel; import xyz.danielcortes.views.trabajador.TrabajadorViewPanel; +import xyz.danielcortes.views.usuario.UsuarioCreatePanel; +import xyz.danielcortes.views.usuario.UsuarioUpdatePanel; +import xyz.danielcortes.views.usuario.UsuarioViewPanel; public class LaunchController { @@ -110,6 +116,10 @@ public class LaunchController { this.controllers.put(PanelName.TRABAJADOR_CREATE, new TrabajadorCreateController(new TrabajadorCreatePanel(), this)); this.controllers.put(PanelName.TRABAJADOR_UPDATE, new TrabajadorUpdateController(new TrabajadorUpdatePanel(), 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)); + for (PanelName name : this.controllers.keySet()) { BaseController controller = this.controllers.get(name); this.frame.addCard(controller.getView().getContentPane(), name); diff --git a/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorCreateController.java b/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorCreateController.java index df43fb1..d762207 100644 --- a/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorCreateController.java +++ b/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorCreateController.java @@ -14,14 +14,14 @@ import xyz.danielcortes.views.trabajador.TrabajadorCreatePanel; public class TrabajadorCreateController extends BaseController { private TrabajadorCreatePanel view; - private TrabajadorRespository trabajadorRespository; - private TrabajadorValidator trabajadorValidator; + private TrabajadorRespository respository; + private TrabajadorValidator validator; public TrabajadorCreateController(TrabajadorCreatePanel view, LaunchController parent) { super(parent); this.view = view; - this.trabajadorRespository = new TrabajadorRespository(); - this.trabajadorValidator = new TrabajadorValidator(this.trabajadorRespository); + this.respository = new TrabajadorRespository(); + this.validator = new TrabajadorValidator(this.respository); this.setupListeners(); } @@ -36,35 +36,35 @@ public class TrabajadorCreateController extends BaseController { private void save() { String rut = this.view.getRutField().getText(); - ValidationResult rutValidation = this.trabajadorValidator.validateRut(rut); + ValidationResult rutValidation = this.validator.validateRut(rut); if(rutValidation.hasError()){ rutValidation.showErrorDialog(); return; } String nombre = this.view.getNombreField().getText(); - ValidationResult nombreValidation = this.trabajadorValidator.validateNombre(nombre); + ValidationResult nombreValidation = this.validator.validateNombre(nombre); if(nombreValidation.hasError()){ nombreValidation.showErrorDialog(); return; } String apellidoPaterno = this.view.getApellidoPaternoField().getText(); - ValidationResult apellidoPaternoValidation = this.trabajadorValidator.validateApellidoPaterno(apellidoPaterno); + ValidationResult apellidoPaternoValidation = this.validator.validateApellidoPaterno(apellidoPaterno); if(apellidoPaternoValidation.hasError()){ apellidoPaternoValidation.showErrorDialog(); return; } String apellidoMaterno = this.view.getApellidoMaternoField().getText(); - ValidationResult apellidoMaternoValidation = this.trabajadorValidator.validateApellidoMaterno(apellidoMaterno); + ValidationResult apellidoMaternoValidation = this.validator.validateApellidoMaterno(apellidoMaterno); if(apellidoMaternoValidation.hasError()){ apellidoMaternoValidation.showErrorDialog(); return; } LocalDate fechaContrato = this.view.getFechaContratoPicker().getDate(); - ValidationResult fechaContratoValidation = this.trabajadorValidator.validateFechaContrato(fechaContrato); + ValidationResult fechaContratoValidation = this.validator.validateFechaContrato(fechaContrato); if(fechaContratoValidation.hasError()){ fechaContratoValidation.showErrorDialog(); return; @@ -77,7 +77,7 @@ public class TrabajadorCreateController extends BaseController { trabajador.setFechaContrato(fechaContrato); trabajador.setRut(rut); - trabajadorRespository.save(trabajador); + respository.save(trabajador); this.getParentController().showCard(PanelName.TRABAJADOR_SEARCH); } diff --git a/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorViewController.java b/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorViewController.java index 8083b01..d325889 100644 --- a/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorViewController.java +++ b/src/main/java/xyz/danielcortes/controllers/trabajador/TrabajadorViewController.java @@ -1,6 +1,9 @@ package xyz.danielcortes.controllers.trabajador; +import javax.swing.JOptionPane; import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.controllers.usuario.UsuarioCreateController; +import xyz.danielcortes.controllers.usuario.UsuarioViewController; import xyz.danielcortes.framework.BaseController; import xyz.danielcortes.framework.BasePanel; import xyz.danielcortes.framework.PanelName; @@ -28,13 +31,35 @@ public class TrabajadorViewController extends BaseController { private void setupListeners() { this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.TRABAJADOR_SEARCH)); + this.view.getUsuarioButton().addActionListener(e -> this.gotoUsuarioView()); + } + + private void gotoUsuarioView() { + if(this.trabajador.getUsuario() == null) { + int result = JOptionPane.showConfirmDialog( + null, + "El trabajador no tiene un usuario, ¿Desea crear uno?", + "", + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE + ); + if(result == JOptionPane.YES_OPTION) { + UsuarioCreateController controller = (UsuarioCreateController) this.getParentController().getCard(PanelName.USUARIO_CREATE); + controller.setTrabajador(this.trabajador); + this.getParentController().showCard(PanelName.USUARIO_CREATE); + } + }else { + UsuarioViewController controller = (UsuarioViewController) this.getParentController().getCard(PanelName.USUARIO_VIEW); + controller.setTrabajador(trabajador); + this.getParentController().showCard(PanelName.USUARIO_VIEW); + } } private void fillTrabajador() { if (trabajador == null) return; - this.view.getRutField().setText(this.trabajador.getNombre()); + this.view.getRutField().setText(this.trabajador.getRut()); this.view.getNombreField().setText(this.trabajador.getNombre()); this.view.getApellidoPaternoField().setText(this.trabajador.getApellidoPaterno()); this.view.getApellidoMaternoField().setText(this.trabajador.getApellidoMaterno()); diff --git a/src/main/java/xyz/danielcortes/controllers/usuario/UsuarioCreateController.java b/src/main/java/xyz/danielcortes/controllers/usuario/UsuarioCreateController.java new file mode 100644 index 0000000..66de138 --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/usuario/UsuarioCreateController.java @@ -0,0 +1,86 @@ +package xyz.danielcortes.controllers.usuario; + +import java.nio.charset.StandardCharsets; +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.Hash; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.framework.ValidationResult; +import xyz.danielcortes.models.Trabajador; +import xyz.danielcortes.models.Usuario; +import xyz.danielcortes.repository.UsuarioRepository; +import xyz.danielcortes.validator.UsuarioValidator; +import xyz.danielcortes.views.usuario.UsuarioCreatePanel; + +public class UsuarioCreateController extends BaseController { + private Trabajador trabajador; + private UsuarioCreatePanel view; + private UsuarioRepository repository; + private UsuarioValidator validator; + + public UsuarioCreateController(UsuarioCreatePanel view, LaunchController parentController){ + super(parentController); + this.view = view; + this.repository = new UsuarioRepository(); + this.validator = new UsuarioValidator(this.repository); + this.setupListeners(); + } + + @Override + public LaunchController getParentController() { + return this.parentController; + } + + @Override + public void show() { + this.view.getUserField().requestFocus(); + } + + @Override + public BasePanel getView() { + return this.view; + } + + public void setTrabajador(Trabajador trabajador) {this.trabajador = trabajador;} + + private void setupListeners() { + this.view.getGuardarButton().addActionListener(e -> save()); + this.view.getVolverButton().addActionListener(e -> volver()); + } + + private void save(){ + String user = this.view.getUserField().getText(); + char[] pass = this.view.getPassField().getPassword(); + + ValidationResult userValidation = this.validator.validateUsername(user); + if(userValidation.hasError()){ + userValidation.showErrorDialog(); + return; + } + + ValidationResult passValidation = this.validator.validatePassword(pass); + if(passValidation.hasError()){ + passValidation.showErrorDialog(); + return; + } + + Usuario usuario = new Usuario(); + usuario.setNombre(user); + usuario.setPassword(Hash.sha256(new String(pass).getBytes(StandardCharsets.UTF_8))); + usuario.setTrabajador(trabajador); + + this.repository.save(usuario); + this.trabajador.setUsuario(usuario); + + this.volver(); + } + + private void volver(){ + TrabajadorViewController controller = (TrabajadorViewController) this.getParentController().getCard(PanelName.TRABAJADOR_VIEW); + controller.setTrabajador(trabajador); + this.getParentController().showCard(PanelName.TRABAJADOR_VIEW); + } + +} diff --git a/src/main/java/xyz/danielcortes/controllers/usuario/UsuarioUpdateController.java b/src/main/java/xyz/danielcortes/controllers/usuario/UsuarioUpdateController.java new file mode 100644 index 0000000..b6aa16f --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/usuario/UsuarioUpdateController.java @@ -0,0 +1,91 @@ +package xyz.danielcortes.controllers.usuario; + +import java.nio.charset.StandardCharsets; +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.Hash; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.framework.ValidationResult; +import xyz.danielcortes.models.Trabajador; +import xyz.danielcortes.repository.UsuarioRepository; +import xyz.danielcortes.validator.UsuarioValidator; +import xyz.danielcortes.views.usuario.UsuarioUpdatePanel; + +public class UsuarioUpdateController extends BaseController { + private Trabajador trabajador; + private UsuarioUpdatePanel view; + private UsuarioRepository repository; + private UsuarioValidator validator; + + public UsuarioUpdateController(UsuarioUpdatePanel view, LaunchController parentController){ + super(parentController); + this.view = view; + this.repository = new UsuarioRepository(); + this.validator = new UsuarioValidator(this.repository); + this.setupListeners(); + } + + @Override + public LaunchController getParentController() { + return this.parentController; + } + + @Override + public void show() { + this.view.getUserField().requestFocus(); + this.fillUser(); + } + + @Override + public BasePanel getView() { + return this.view; + } + + public void setTrabajador(Trabajador trabajador) {this.trabajador = trabajador;} + + public void fillUser() { + this.view.getUserField().setText(this.trabajador.getUsuario().getNombre()); + } + + private void setupListeners() { + this.view.getActualizarButton().addActionListener(e -> update()); + this.view.getVolverButton().addActionListener(e -> volver()); + } + + private void update(){ + String user = this.view.getUserField().getText(); + char[] pass = this.view.getPassField().getPassword(); + + ValidationResult originalValidation = this.validator.validateOriginal(this.trabajador.getUsuario()); + if(originalValidation.hasError()){ + originalValidation.showErrorDialog(); + return; + } + + ValidationResult userValidation = this.validator.validateUsername(user); + if(userValidation.hasError()){ + userValidation.showErrorDialog(); + return; + } + + ValidationResult passValidation = this.validator.validatePassword(pass); + if(passValidation.hasError()){ + passValidation.showErrorDialog(); + return; + } + + trabajador.getUsuario().setNombre(user); + trabajador.getUsuario().setPassword(Hash.sha256(new String(pass).getBytes(StandardCharsets.UTF_8))); + + this.repository.update(trabajador.getUsuario()); + this.volver(); + } + + private void volver(){ + TrabajadorViewController controller = (TrabajadorViewController) this.getParentController().getCard(PanelName.TRABAJADOR_VIEW); + controller.setTrabajador(trabajador); + this.getParentController().showCard(PanelName.TRABAJADOR_VIEW); + } +} diff --git a/src/main/java/xyz/danielcortes/controllers/usuario/UsuarioViewController.java b/src/main/java/xyz/danielcortes/controllers/usuario/UsuarioViewController.java new file mode 100644 index 0000000..57d6c75 --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/usuario/UsuarioViewController.java @@ -0,0 +1,88 @@ +package xyz.danielcortes.controllers.usuario; + +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.PanelName; +import xyz.danielcortes.models.Trabajador; +import xyz.danielcortes.repository.UsuarioRepository; +import xyz.danielcortes.views.usuario.UsuarioViewPanel; + +public class UsuarioViewController extends BaseController { + + private Trabajador trabajador; + private UsuarioViewPanel view; + private UsuarioRepository repository; + + public UsuarioViewController(UsuarioViewPanel view, LaunchController parentController) { + super(parentController); + this.view = view; + + this.repository = new UsuarioRepository(); + this.setupListeners(); + } + + @Override + public LaunchController getParentController() { + return this.parentController; + } + + @Override + public void show() { + this.view.getUserField().requestFocus(); + this.fillUsuario(); + } + + @Override + public BasePanel getView() { + return this.view; + } + + public void setTrabajador(Trabajador trabajador) { + this.trabajador = trabajador; + } + + public void fillUsuario() { + this.view.getUserField().setText(this.trabajador.getUsuario().getNombre()); + } + + private void setupListeners() { + this.view.getVolverButton().addActionListener(e -> volver()); + this.view.getEditarButton().addActionListener(e -> editar()); + this.view.getEliminarButton().addActionListener(e -> eliminar()); + } + + private void editar() { + UsuarioUpdateController controller = (UsuarioUpdateController) this.getParentController().getCard(PanelName.USUARIO_UPDATE); + controller.setTrabajador(trabajador); + this.getParentController().showCard(PanelName.USUARIO_UPDATE); + } + + private void eliminar(){ + if (this.trabajador.getUsuario() == null) + return; + + int option = JOptionPane.showConfirmDialog( + null, + "¿Estas seguro de que deseas eliminar el usuario de este trabajador?", + "Confirmacion", + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE + ); + if (option == JOptionPane.NO_OPTION) + return; + + this.repository.delete(this.trabajador.getUsuario()); + this.trabajador.setUsuario(null); + this.volver(); + } + + private void volver() { + TrabajadorViewController controller = (TrabajadorViewController) this.getParentController().getCard(PanelName.TRABAJADOR_VIEW); + controller.setTrabajador(trabajador); + this.getParentController().showCard(PanelName.TRABAJADOR_VIEW); + } + +} diff --git a/src/main/java/xyz/danielcortes/framework/Hash.java b/src/main/java/xyz/danielcortes/framework/Hash.java index f5394f5..784b3b6 100644 --- a/src/main/java/xyz/danielcortes/framework/Hash.java +++ b/src/main/java/xyz/danielcortes/framework/Hash.java @@ -2,6 +2,7 @@ package xyz.danielcortes.framework; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import java.util.Base64; public class Hash { @@ -15,7 +16,7 @@ public class Hash { } } - public static byte[] sha256(byte[] toHash) { - return sha.digest(toHash); + public static String sha256(byte[] toHash) { + return Base64.getEncoder().encodeToString(sha.digest(toHash)); } } diff --git a/src/main/java/xyz/danielcortes/framework/PanelName.java b/src/main/java/xyz/danielcortes/framework/PanelName.java index b6567d5..4377501 100644 --- a/src/main/java/xyz/danielcortes/framework/PanelName.java +++ b/src/main/java/xyz/danielcortes/framework/PanelName.java @@ -33,5 +33,9 @@ public enum PanelName { TRABAJADOR_CREATE, TRABAJADOR_UPDATE, + USUARIO_VIEW, + USUARIO_CREATE, + USUARIO_UPDATE, + COMPRAR_LIBRO, } diff --git a/src/main/java/xyz/danielcortes/login/LoginController.java b/src/main/java/xyz/danielcortes/login/LoginController.java index 45e26be..313e0e0 100644 --- a/src/main/java/xyz/danielcortes/login/LoginController.java +++ b/src/main/java/xyz/danielcortes/login/LoginController.java @@ -2,7 +2,6 @@ package xyz.danielcortes.login; import java.awt.Dimension; import java.nio.charset.StandardCharsets; -import java.util.Arrays; import java.util.Optional; import javax.swing.JFrame; import javax.swing.JOptionPane; @@ -35,12 +34,6 @@ public class LoginController { private void login() { String name = this.view.getUserField().getText(); - if (name.equals("admin")) { - this.frame.dispose(); - loggedListener.loginTry(new LoggedEvent(this, new Usuario())); - return; - } - Optional optionalUser = this.repository.getByName(name); if (optionalUser.isEmpty()) { JOptionPane.showMessageDialog( @@ -53,8 +46,8 @@ public class LoginController { } Usuario user = optionalUser.get(); - byte[] pass = Hash.sha256(new String(this.view.getPassField().getPassword()).getBytes(StandardCharsets.UTF_8)); - if (Arrays.equals(pass, user.getPassword())) { + String pass = Hash.sha256(new String(this.view.getPassField().getPassword()).getBytes(StandardCharsets.UTF_8)); + if (pass.equals(user.getPassword())) { this.frame.dispose(); loggedListener.loginTry(new LoggedEvent(this, user)); } else { diff --git a/src/main/java/xyz/danielcortes/models/Usuario.java b/src/main/java/xyz/danielcortes/models/Usuario.java index a4c59a6..4efb12e 100644 --- a/src/main/java/xyz/danielcortes/models/Usuario.java +++ b/src/main/java/xyz/danielcortes/models/Usuario.java @@ -1,6 +1,5 @@ package xyz.danielcortes.models; -import java.util.Arrays; import java.util.Objects; import javax.persistence.Column; import javax.persistence.Entity; @@ -22,8 +21,8 @@ public class Usuario { @Column(name = "nombre") private String nombre; - @Column(name = "password", columnDefinition = "varbinary(2000)") - private byte[] password; + @Column(name = "password") + private String password; @OneToOne @JoinColumn(name = "trabajador_id", referencedColumnName = "id") @@ -45,11 +44,11 @@ public class Usuario { this.nombre = nombre; } - public byte[] getPassword() { + public String getPassword() { return password; } - public void setPassword(byte[] password) { + public void setPassword(String password) { this.password = password; } @@ -70,13 +69,12 @@ public class Usuario { Usuario usuario = (Usuario) o; return Objects.equals(id, usuario.id) && Objects.equals(nombre, usuario.nombre) && - Arrays.equals(password, usuario.password); + Objects.equals(password, usuario.password) && + Objects.equals(trabajador, usuario.trabajador); } @Override public int hashCode() { - int result = Objects.hash(id, nombre); - result = 31 * result + Arrays.hashCode(password); - return result; + return Objects.hash(id, nombre, password, trabajador); } } diff --git a/src/main/java/xyz/danielcortes/validator/UsuarioValidator.java b/src/main/java/xyz/danielcortes/validator/UsuarioValidator.java index 18c4f27..90c4fc5 100644 --- a/src/main/java/xyz/danielcortes/validator/UsuarioValidator.java +++ b/src/main/java/xyz/danielcortes/validator/UsuarioValidator.java @@ -1,6 +1,7 @@ package xyz.danielcortes.validator; import xyz.danielcortes.framework.ValidationResult; +import xyz.danielcortes.models.Usuario; import xyz.danielcortes.repository.UsuarioRepository; public class UsuarioValidator { @@ -31,5 +32,12 @@ public class UsuarioValidator { return ValidationResult.NON_ERROR; } + public ValidationResult validateOriginal(Usuario usuario) { + if(usuario == null){ + return new ValidationResult("El usuario no existe"); + } + return ValidationResult.NON_ERROR; + } + } diff --git a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.form b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.form index bf19f46..89c2c4f 100644 --- a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.form +++ b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.form @@ -1,9 +1,9 @@
- + - + @@ -67,22 +67,22 @@ - + - + - + - + @@ -122,6 +122,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.java b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.java index 916cfaf..9ad15f0 100644 --- a/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.java +++ b/src/main/java/xyz/danielcortes/views/trabajador/TrabajadorViewPanel.java @@ -22,6 +22,10 @@ public class TrabajadorViewPanel extends BasePanel { private JPanel contentPane; private JTextField rutField; private DatePicker fechaContratoPicker; + private JButton usuarioButton; + private JButton direccionesButton; + private JButton correosButton; + private JButton telefonosButton; public JTextField getNombreField() { return nombreField; @@ -52,6 +56,23 @@ public class TrabajadorViewPanel extends BasePanel { return fechaContratoPicker; } + + public JButton getUsuarioButton() { + return usuarioButton; + } + + public JButton getDireccionesButton() { + return direccionesButton; + } + + public JButton getCorreosButton() { + return correosButton; + } + + public JButton getTelefonosButton() { + return telefonosButton; + } + { // GUI initializer generated by IntelliJ IDEA GUI Designer // >>> IMPORTANT!! <<< @@ -66,7 +87,7 @@ public class TrabajadorViewPanel extends BasePanel { */ private void $$$setupUI$$$() { contentPane = new JPanel(); - contentPane.setLayout(new GridLayoutManager(12, 3, new Insets(20, 20, 20, 20), -1, -1)); + contentPane.setLayout(new GridLayoutManager(13, 3, new Insets(20, 20, 20, 20), -1, -1)); final JLabel label1 = new JLabel(); label1.setText("Nombre:"); contentPane.add(label1, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, @@ -99,19 +120,19 @@ public class TrabajadorViewPanel extends BasePanel { GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(400, -1), null, 0, false)); final Spacer spacer1 = new Spacer(); contentPane.add(spacer1, - new GridConstraints(11, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, + new GridConstraints(12, 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(11, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, + new GridConstraints(12, 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(11, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, + new GridConstraints(12, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false)); volverButton = new JButton(); volverButton.setText("Volver"); - contentPane.add(volverButton, new GridConstraints(10, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, + contentPane.add(volverButton, new GridConstraints(11, 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 JLabel label4 = new JLabel(); @@ -131,6 +152,31 @@ public class TrabajadorViewPanel extends BasePanel { contentPane.add(fechaContratoPicker, new GridConstraints(9, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + final JPanel panel1 = new JPanel(); + panel1.setLayout(new GridLayoutManager(1, 4, new Insets(0, 0, 0, 0), -1, -1)); + contentPane.add(panel1, new GridConstraints(10, 1, 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)); + usuarioButton = new JButton(); + usuarioButton.setText("Usuario"); + panel1.add(usuarioButton, new GridConstraints(0, 0, 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)); + direccionesButton = new JButton(); + direccionesButton.setText("Direcciones"); + panel1.add(direccionesButton, new GridConstraints(0, 3, 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)); + correosButton = new JButton(); + correosButton.setText("Correos"); + panel1.add(correosButton, new GridConstraints(0, 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)); + telefonosButton = new JButton(); + telefonosButton.setText("Telefonos"); + panel1.add(telefonosButton, new GridConstraints(0, 2, 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)); } /** diff --git a/src/main/java/xyz/danielcortes/views/usuario/UsuarioCreatePanel.form b/src/main/java/xyz/danielcortes/views/usuario/UsuarioCreatePanel.form new file mode 100644 index 0000000..e2a6817 --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/usuario/UsuarioCreatePanel.form @@ -0,0 +1,96 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/java/xyz/danielcortes/views/usuario/UsuarioCreatePanel.java b/src/main/java/xyz/danielcortes/views/usuario/UsuarioCreatePanel.java new file mode 100644 index 0000000..7b2da87 --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/usuario/UsuarioCreatePanel.java @@ -0,0 +1,116 @@ +package xyz.danielcortes.views.usuario; + +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.JButton; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JPasswordField; +import javax.swing.JTextField; +import xyz.danielcortes.framework.BasePanel; + +public class UsuarioCreatePanel extends BasePanel { + + private JPanel contentPane; + private JButton guardarButton; + private JTextField userField; + private JPasswordField passField; + private JButton volverButton; + + @Override + public JPanel getContentPane() { + return contentPane; + } + + public JButton getGuardarButton() { + return guardarButton; + } + + public JTextField getUserField() { + return userField; + } + + public JPasswordField getPassField() { + return passField; + } + + 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$$$() { + contentPane = new JPanel(); + contentPane.setLayout(new GridLayoutManager(6, 3, new Insets(20, 20, 20, 20), -1, -1)); + final JLabel label1 = new JLabel(); + label1.setText("Nombre de usuario:"); + 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("Contraseña"); + 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)); + userField = new JTextField(); + userField.setEditable(true); + userField.setEnabled(true); + contentPane.add(userField, + 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)); + passField = new JPasswordField(); + passField.setEditable(true); + passField.setEnabled(true); + contentPane.add(passField, + 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 JPanel panel1 = new JPanel(); + panel1.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1)); + contentPane.add(panel1, new GridConstraints(4, 1, 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)); + guardarButton = new JButton(); + guardarButton.setText("Guardar"); + panel1.add(guardarButton, new GridConstraints(0, 0, 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)); + volverButton = new JButton(); + volverButton.setText("Volver"); + panel1.add(volverButton, new GridConstraints(0, 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 Spacer spacer1 = new Spacer(); + contentPane.add(spacer1, + new GridConstraints(5, 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(5, 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(5, 2, 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; + } + +} diff --git a/src/main/java/xyz/danielcortes/views/usuario/UsuarioUpdatePanel.form b/src/main/java/xyz/danielcortes/views/usuario/UsuarioUpdatePanel.form new file mode 100644 index 0000000..21ba633 --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/usuario/UsuarioUpdatePanel.form @@ -0,0 +1,96 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/java/xyz/danielcortes/views/usuario/UsuarioUpdatePanel.java b/src/main/java/xyz/danielcortes/views/usuario/UsuarioUpdatePanel.java new file mode 100644 index 0000000..197110c --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/usuario/UsuarioUpdatePanel.java @@ -0,0 +1,116 @@ +package xyz.danielcortes.views.usuario; + +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.JButton; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JPasswordField; +import javax.swing.JTextField; +import xyz.danielcortes.framework.BasePanel; + +public class UsuarioUpdatePanel extends BasePanel { + + private JPanel contentPane; + private JButton actualizarButton; + private JTextField userField; + private JPasswordField passField; + private JButton volverButton; + + @Override + public JPanel getContentPane() { + return contentPane; + } + + public JButton getActualizarButton() { + return actualizarButton; + } + + public JTextField getUserField() { + return userField; + } + + public JPasswordField getPassField() { + return passField; + } + + 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$$$() { + contentPane = new JPanel(); + contentPane.setLayout(new GridLayoutManager(6, 3, new Insets(20, 20, 20, 20), -1, -1)); + final JLabel label1 = new JLabel(); + label1.setText("Nombre de usuario:"); + 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("Contraseña"); + 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)); + userField = new JTextField(); + userField.setEditable(true); + userField.setEnabled(true); + contentPane.add(userField, + 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)); + passField = new JPasswordField(); + passField.setEditable(true); + passField.setEnabled(true); + contentPane.add(passField, + 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 JPanel panel1 = new JPanel(); + panel1.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1)); + contentPane.add(panel1, new GridConstraints(4, 1, 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)); + actualizarButton = new JButton(); + actualizarButton.setText("Actualizar"); + panel1.add(actualizarButton, new GridConstraints(0, 0, 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)); + volverButton = new JButton(); + volverButton.setText("Volver"); + panel1.add(volverButton, new GridConstraints(0, 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 Spacer spacer1 = new Spacer(); + contentPane.add(spacer1, + new GridConstraints(5, 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(5, 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(5, 2, 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; + } + +} diff --git a/src/main/java/xyz/danielcortes/views/usuario/UsuarioViewPanel.form b/src/main/java/xyz/danielcortes/views/usuario/UsuarioViewPanel.form new file mode 100644 index 0000000..c4e99d7 --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/usuario/UsuarioViewPanel.form @@ -0,0 +1,86 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/java/xyz/danielcortes/views/usuario/UsuarioViewPanel.java b/src/main/java/xyz/danielcortes/views/usuario/UsuarioViewPanel.java new file mode 100644 index 0000000..3e9dee7 --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/usuario/UsuarioViewPanel.java @@ -0,0 +1,109 @@ +package xyz.danielcortes.views.usuario; + +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.JButton; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; +import xyz.danielcortes.framework.BasePanel; + +public class UsuarioViewPanel extends BasePanel { + + private JPanel contentPane; + private JTextField userField; + private JButton volverButton; + private JButton editarButton; + private JButton eliminarButton; + + @Override + public JPanel getContentPane() { + return contentPane; + } + + public JTextField getUserField() { + return userField; + } + + public JButton getVolverButton() { + return volverButton; + } + + public JButton getEditarButton() { + return editarButton; + } + + public JButton getEliminarButton() { + return eliminarButton; + } + + { +// 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$$$() { + contentPane = new JPanel(); + contentPane.setLayout(new GridLayoutManager(4, 3, new Insets(20, 20, 20, 20), -1, -1)); + final JLabel label1 = new JLabel(); + label1.setText("Nombre de usuario:"); + 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)); + userField = new JTextField(); + userField.setEditable(false); + contentPane.add(userField, + 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 JPanel panel1 = new JPanel(); + panel1.setLayout(new GridLayoutManager(1, 3, new Insets(0, 0, 0, 0), -1, -1)); + contentPane.add(panel1, new GridConstraints(2, 1, 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)); + volverButton = new JButton(); + volverButton.setText("Volver"); + panel1.add(volverButton, new GridConstraints(0, 2, 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)); + editarButton = new JButton(); + editarButton.setText("Editar"); + panel1.add(editarButton, new GridConstraints(0, 0, 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)); + eliminarButton = new JButton(); + eliminarButton.setText("Eliminar"); + panel1.add(eliminarButton, new GridConstraints(0, 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 Spacer spacer1 = new Spacer(); + contentPane.add(spacer1, + new GridConstraints(3, 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(3, 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(3, 2, 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; + } + +}