Tecnicamente esto es la version final ya

No hay mucho ams que hacer,  la entrega es en una hora aprox
This commit is contained in:
Daniel Cortés
2019-07-09 18:48:04 -04:00
parent 30aa429616
commit 365db38212
59 changed files with 1245 additions and 263 deletions

View File

@@ -8,7 +8,6 @@
<option value="noActionIfCompileErrors" />
<option value="organizeImports" />
<option value="reformat" />
<option value="rearrange" />
<option value="unqualifiedFieldAccess" />
<option value="unqualifiedMethodAccess" />
<option value="missingOverrideAnnotation" />

View File

@@ -1,119 +1,7 @@
start transaction;
set foreign_key_checks = 0;
set autocommit = 0;
INSERT INTO `autor`
VALUES (1, 'Howard Philips', 'Lovecraft', NULL, '2019-06-12 20:18:57'),
(2, 'Stephen', 'King', NULL, '2019-06-12 20:18:57'),
(3, 'Brandon', 'Sanderson', NULL, '2019-06-12 20:18:57');
INSERT INTO `categoria`
VALUES (1, 'Terror', '2019-06-12 20:18:57'),
(2, 'Aventura', '2019-06-12 20:18:57'),
(3, 'Fantasia', '2019-06-12 20:18:57');
INSERT INTO `cliente`
VALUES (1, '21786653-7', 'Cliente', '1', '1', '2019-06-17', '2019-06-13 20:01:33'),
(2, '17181388-3', 'Cliente', '2', '2', '2019-06-13', '2019-06-13 20:04:02');
INSERT INTO `compra`
VALUES (1, 1, 2, '2019-07-03 23:03:36');
INSERT INTO `correo`
VALUES (1, 'HOOLA', '2019-06-13 21:25:41'),
(2, 'skrd159@gmail.com', '2019-06-13 21:32:13');
INSERT INTO `distribuidor`
VALUES (2, 1, '14166920-6', '2019-06-13 07:08:17'),
(3, 2, '8425080-5', '2019-06-13 07:08:23'),
(4, 1, '21629388-6', '2019-06-13 07:08:25'),
(5, 1, '13510176-1', '2019-06-13 07:08:27');
INSERT INTO `editorial`
VALUES (1, 'Editorial N1', '2019-06-12 20:18:57'),
(2, 'Editorial N2', '2019-06-12 20:18:57'),
(3, 'Editorial N3', '2019-06-12 20:18:57');
INSERT INTO `ejemplar`
VALUES (1, 1, 3, '123', '2019-07-03 23:03:36');
INSERT INTO `ejemplar_compra`
VALUES (1, 1);
INSERT INTO `empresa`
VALUES (1, 'Empresa 1', '2019-06-13 04:39:50'),
(2, 'Empresa 2', '2019-06-13 04:39:52');
INSERT INTO `estado`
VALUES (1, 'Vendido', '2019-06-12 20:18:57'),
(2, 'Arrendado', '2019-06-12 20:18:57'),
(3, 'Disponible', '2019-06-12 20:18:57');
INSERT INTO `factura`
VALUES (1, '159', 5000, '2019-07-03 00:00:00', '2019-07-03 23:03:36');
INSERT INTO `idioma`
VALUES (1, 'Español', '2019-06-12 20:18:57'),
(2, 'Ingles', '2019-06-12 20:18:57'),
(3, 'Portuges', '2019-06-12 20:18:57'),
(4, 'Aleman', '2019-06-12 20:18:57'),
(5, 'Ruso', '2019-06-12 20:18:57'),
(6, 'Japones', '2019-06-12 20:18:57');
INSERT INTO `libro`
VALUES (1, 1, '0-765-31178-X', 2006, 541, 'Mistborn: The Final Empire', 10000,
'2019-06-12 20:18:57'),
(2, 1, '0-765-31688-9', 2007, 590, 'Mistborn: The Well of Ascension', 10000,
'2019-06-12 20:18:57'),
(3, 1, '978-0-7653-1689-9', 2008, 572, 'Mistborn: The Hero of Ages', 10000,
'2019-06-12 20:18:57'),
(4, 2, '1231231231232', 1931, 100, 'The Shadow over Innsmouth', 10000,
'2019-06-12 20:18:57'),
(5, 2, '1231231231232', 1933, 100, 'The Dreams in the Witch House', 10000,
'2019-06-12 20:18:57'),
(6, 2, '1231231231232', 1936, 100, 'At the Mountains of Madness', 10000,
'2019-06-12 20:18:57'),
(7, 3, '0385086954', 1974, 199, 'Carrie', 10000, '2019-06-12 20:18:57'),
(8, 3, '978-0-670-26077-5', 1979, 428, 'The Dead Zone', 10000, '2019-06-12 20:18:57'),
(9, 3, '0-670-81302-8', 1986, 1138, 'It', 10000, '2019-06-12 20:18:57');
INSERT INTO `libro_autor`
VALUES (1, 3),
(2, 3),
(3, 3),
(4, 1),
(5, 1),
(6, 1),
(7, 2),
(8, 2),
(9, 2);
INSERT INTO `libro_categoria`
VALUES (1, 3),
(2, 3),
(3, 3),
(4, 1),
(5, 1),
(6, 1),
(7, 1),
(8, 1),
(9, 1);
INSERT INTO `libro_idioma`
VALUES (1, 2),
(2, 2),
(3, 2),
(4, 2),
(5, 2),
(6, 2),
(7, 2),
(8, 2),
(9, 2);
INSERT INTO `libro_orden_compra`
VALUES (1, 1);
INSERT INTO `orden_compra`
VALUES (1, 'Recibida', 1, 2, '2019-07-03 23:03:36');
INSERT INTO `trabajador`
VALUES (2, '19763899-0', 'Daniel', 'Cortes', 'Pincheira', '2019-06-13', '2019-06-13 20:04:42'),
(3, '10768789-0', 'Trabajador', 'N', '2', '2019-06-13', '2019-06-13 20:05:17'),
(4, '9717478-4', 'Trabajador', 'N', '3', '2019-06-13', '2019-06-13 20:05:27');
INSERT INTO `trabajador_correo`
VALUES (4, 1),
(2, 2);
INSERT INTO `usuario`
VALUES (2, 'admin', 0x243168097E0BA82B896F348BABCEB600A8DCA30488C6F238F97FD8737BD00B27,
0x3564ECCCD85CF0583F9C090602E998B7, 2, '2019-06-13 20:04:53');
INSERT INTO `arriendo` VALUES (1,2,1,500,'2019-07-07','2019-07-23','2019-07-07',100,'2019-07-07 18:28:15'); INSERT INTO `autor` VALUES (1,'Howard Philips','Lovecraft',NULL,'2019-06-13 00:18:57'),(2,'Stephen','King',NULL,'2019-06-13 00:18:57'),(3,'Brandon','Sanderson',NULL,'2019-06-13 00:18:57'); INSERT INTO `boleta` VALUES (1,'b1595951-87dd-4b4c-9d02-777f9be98ea2',10000,'2019-07-07 00:00:00','2019-07-07 18:40:52'); INSERT INTO `categoria` VALUES (1,'Terror','2019-06-13 00:18:57'),(2,'Aventura','2019-06-13 00:18:57'),(3,'Fantasia','2019-06-13 00:18:57'); INSERT INTO `cliente` VALUES (1,'21786653-7','Cliente','1','1','2019-06-17','2019-06-14 00:01:33'),(2,'17181388-3','Cliente','2','2','2019-06-13','2019-06-14 00:04:02'); INSERT INTO `compra` VALUES (1,1,2,'2019-07-04 03:03:36'),(2,2,4,'2019-07-09 22:35:37'); INSERT INTO `correo` VALUES (1,'HOOLA','2019-06-14 01:25:41'),(2,'skrd159@gmail.com','2019-06-14 01:32:13'); INSERT INTO `distribuidor` VALUES (2,1,'14166920-6','2019-06-13 11:08:17'),(3,2,'8425080-5','2019-06-13 11:08:23'),(4,1,'21629388-6','2019-06-13 11:08:25'),(5,1,'13510176-1','2019-06-13 11:08:27'); INSERT INTO `editorial` VALUES (1,'Editorial N1','2019-06-13 00:18:57'),(2,'Editorial N2','2019-06-13 00:18:57'),(3,'Editorial N3','2019-06-13 00:18:57'); INSERT INTO `ejemplar` VALUES (1,1,1,'123','2019-07-04 03:03:36'),(2,3,3,'a','2019-07-09 22:35:37'),(3,3,3,'b','2019-07-09 22:35:37'),(4,3,3,'c','2019-07-09 22:35:37'),(5,3,3,'d','2019-07-09 22:35:37'),(6,3,3,'e','2019-07-09 22:35:37'),(7,3,3,'f','2019-07-09 22:35:37'),(8,3,3,'g','2019-07-09 22:35:37'),(9,3,3,'h','2019-07-09 22:35:37'),(10,3,3,'i','2019-07-09 22:35:37'),(11,3,3,'j','2019-07-09 22:35:37'); INSERT INTO `ejemplar_arriendo` VALUES (1,1); INSERT INTO `ejemplar_compra` VALUES (1,1),(2,2),(3,2),(4,2),(5,2),(6,2),(7,2),(8,2),(9,2),(10,2),(11,2); INSERT INTO `ejemplar_venta` VALUES (1,1); INSERT INTO `empresa` VALUES (1,'Empresa 1','2019-06-13 08:39:50'),(2,'Empresa 2','2019-06-13 08:39:52'); INSERT INTO `estado` VALUES (1,'Vendido','2019-06-13 00:18:57'),(2,'Arrendado','2019-06-13 00:18:57'),(3,'Disponible','2019-06-13 00:18:57'); INSERT INTO `factura` VALUES (1,'159',5000,'2019-07-03 00:00:00','2019-07-04 03:03:36'),(2,'1000',15000,'2019-07-09 00:00:00','2019-07-09 22:35:37'); INSERT INTO `idioma` VALUES (1,'Español','2019-06-13 00:18:57'),(2,'Ingles','2019-06-13 00:18:57'),(3,'Portuges','2019-06-13 00:18:57'),(4,'Aleman','2019-06-13 00:18:57'),(5,'Ruso','2019-06-13 00:18:57'),(6,'Japones','2019-06-13 00:18:57'); INSERT INTO `libro` VALUES (1,1,'0-765-31178-X',2006,541,'Mistborn: The Final Empire',10000,'2019-06-13 00:18:57'),(2,1,'0-765-31688-9',2007,590,'Mistborn: The Well of Ascension',10000,'2019-06-13 00:18:57'),(3,1,'978-0-7653-1689-9',2008,572,'Mistborn: The Hero of Ages',10000,'2019-06-13 00:18:57'),(4,2,'1231231231232',1931,100,'The Shadow over Innsmouth',10000,'2019-06-13 00:18:57'),(5,2,'1231231231232',1933,100,'The Dreams in the Witch House',10000,'2019-06-13 00:18:57'),(6,2,'1231231231232',1936,100,'At the Mountains of Madness',10000,'2019-06-13 00:18:57'),(7,3,'0385086954',1974,199,'Carrie',10000,'2019-06-13 00:18:57'),(8,3,'978-0-670-26077-5',1979,428,'The Dead Zone',10000,'2019-06-13 00:18:57'),(9,3,'0-670-81302-8',1986,1138,'It',10000,'2019-06-13 00:18:57'); INSERT INTO `libro_autor` VALUES (1,3),(2,3),(3,3),(4,1),(5,1),(6,1),(7,2),(8,2),(9,2); INSERT INTO `libro_categoria` VALUES (1,3),(2,3),(3,3),(4,1),(5,1),(6,1),(7,1),(8,1),(9,1); INSERT INTO `libro_idioma` VALUES (1,2),(2,2),(3,2),(4,2),(5,2),(6,2),(7,2),(8,2),(9,2); INSERT INTO `libro_orden_compra` VALUES (1,1),(3,2),(3,2),(3,2),(3,2),(3,2),(3,2),(3,2),(3,2),(3,2),(3,2); INSERT INTO `orden_compra` VALUES (1,'Recibida',1,2,'2019-07-04 03:03:36'),(2,'Recibida',2,4,'2019-07-09 22:35:37'); INSERT INTO `trabajador` VALUES (2,'19763899-0','Daniel','Cortes','Pincheira','2019-06-13','2019-06-14 00:04:42'),(3,'10768789-0','Trabajador','N','2','2019-06-13','2019-06-14 00:05:17'),(4,'9717478-4','Trabajador','N','3','2019-06-13','2019-06-14 00:05:27'),(5,'10232662-8','Profe','Profe','Profe','2019-07-09','2019-07-09 22:36:25'); INSERT INTO `trabajador_correo` VALUES (4,1),(2,2); INSERT INTO `usuario` VALUES (2,'admin',0x243168097E0BA82B896F348BABCEB600A8DCA30488C6F238F97FD8737BD00B27,0x3564ECCCD85CF0583F9C090602E998B7,2,'2019-06-14 00:04:53'),(3,'profe',0xC73B34E9EBCFC48BAF2578FF9C863980B09414391C768406AA38CC46479B01F5,0xECAE61B1271D610C178F26F261BC116C,5,'2019-07-09 22:36:41'); INSERT INTO `venta` VALUES (1,1,2,1,'2019-07-07 18:40:52');
set autocommit = 1;
set foreign_key_checks = 1;
commit;
commit;

19
dump.sh
View File

@@ -5,4 +5,21 @@ if [ -z "$1" ]; then
exit 1
fi
mysqldump -u root -p --compact --hex-blob -t "$1"
1>&2 printf "Enter password: "
stty_orig=$(stty -g) # save original terminal setting
stty -echo # turn-off echoing.
read -r PASS # read the password
stty "${stty_orig}" # restore terminal setting.
1>&2 printf "\n"
set -e
dump=$(mysqldump -u root -p${PASS} --compact --hex-blob -t "$1")
echo "start transaction;"
echo "set foreign_key_checks = 0;"
echo "set autocommit = 0;"
echo ${dump}
echo "set autocommit = 1;"
echo "set foreign_key_checks = 1;"
echo "commit;"

View File

@@ -7,6 +7,10 @@ import xyz.danielcortes.repository.CorreoRepository;
import xyz.danielcortes.validator.CorreoValidator;
import xyz.danielcortes.views.correo.CorreoCreatePanel;
/**
* Controller de correo abstracto para poder extenderlo por los controllers de
* distintos modelos que necesiten crear correos para si mismos
*/
public abstract class AbstractCorreoCreateController extends BaseController {
protected CorreoCreatePanel view;
@@ -21,6 +25,9 @@ public abstract class AbstractCorreoCreateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getCorreoField().addActionListener(e -> this.save());
this.view.getGuardarButton().addActionListener(e -> this.save());
@@ -36,6 +43,12 @@ public abstract class AbstractCorreoCreateController extends BaseController {
return this.parentController;
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Pone el foco en el field de correo y limpia el texto que pudiera tener
* previamente
*/
@Override
public void show() {
this.view.getCorreoField().requestFocus();

View File

@@ -11,6 +11,11 @@ import xyz.danielcortes.repository.CorreoRepository;
import xyz.danielcortes.validator.CorreoValidator;
import xyz.danielcortes.views.correo.CorreoSearchPanel;
/**
*
* Controller de correo abstracto para poder extenderlo por los controllers de
* distintos modelos que necesiten crear correos para si mismos
*/
public abstract class AbstractCorreoSearchController extends BaseController {
protected CorreoSearchPanel view;
@@ -25,6 +30,9 @@ public abstract class AbstractCorreoSearchController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getCrearButton().addActionListener(e -> this.create());
this.view.getSearchField().addActionListener(e -> this.search());
@@ -47,6 +55,9 @@ public abstract class AbstractCorreoSearchController extends BaseController {
protected abstract void volver();
/**
* Metodo que se ejecuta al mostrar la vista
*/
@Override
public void show() {
this.reload();
@@ -57,6 +68,9 @@ public abstract class AbstractCorreoSearchController extends BaseController {
return this.view;
}
/**
* Llena la tabla con datos y limpia la seleccion sobre esta
*/
public void reload() {
this.loadCorreosTable();
this.view.getCorreosTable().clearSelection();
@@ -64,11 +78,21 @@ public abstract class AbstractCorreoSearchController extends BaseController {
protected abstract void loadCorreosTable();
/**
* Carga la tabla de correos con los datos entregados en la lista
* @param correos Correos con los que rellenar la tabla
*/
protected void loadCorreosTable(List<Correo> correos) {
BaseTableModel<Correo> model = this.view.getCorreoModel();
model.setRows(correos);
}
/**
* Obtiene el correo seleccionado actualmente en la tabla
*
* @return El correo seleccionado, si no habia ninguno seleccionado,
* retorna null y muestra un mensaje de error
*/
protected Correo getSelectedCorreo() {
int selectedRow = this.view.getCorreosTable().getSelectedRow();
if (selectedRow == -1) {

View File

@@ -24,12 +24,20 @@ public abstract class AbstractCorreoUpdateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getCorreoField().addActionListener(e -> this.update());
this.view.getActualizarButton().addActionListener(e -> this.update());
this.view.getVolverButton().addActionListener(e -> this.volver());
}
/**
* Actualiza un correo con los datos ingresados en la vista
*
* Antes de actualizar valida los datos entregados
*/
private void update() {
String sCorreo = this.view.getCorreoField().getText();
@@ -57,6 +65,11 @@ public abstract class AbstractCorreoUpdateController extends BaseController {
return this.parentController;
}
/**
* Metodo que es llamado al momento de mostrar la vista
*
* Pone el foco en el field de correo y llena los datos de este.
*/
@Override
public void show() {
this.view.getCorreoField().requestFocus();
@@ -68,6 +81,9 @@ public abstract class AbstractCorreoUpdateController extends BaseController {
return this.view;
}
/**
* Llena el campo de correo
*/
protected void fillCorreo() {
this.view.getCorreoField().setText(this.correo.getCorreo());
}

View File

@@ -28,16 +28,25 @@ public abstract class AbstractCorreoViewController extends BaseController {
return this.parentController;
}
/**
* Metodo llamado al momento de crear la vista
*
* Llena el campo de correo
*/
@Override
public void show() {
this.fillCorreo();
}
@Override
public BasePanel getView() {
return this.view;
}
/**
* Llena el campo de correo
*/
protected void fillCorreo() {
this.view.getCorreoField().setText(this.correo.getCorreo());
}

View File

@@ -21,6 +21,9 @@ public abstract class AbstractDireccionCreateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getGuardarButton().addActionListener(e -> this.save());
this.view.getNumeroField().addActionListener(e -> this.save());
@@ -36,6 +39,11 @@ public abstract class AbstractDireccionCreateController extends BaseController {
return this.parentController;
}
/**
* Metodo llamado al momento de crear la vista
*
* Pone el foco en el field de calle y reseta el contenido de los campos de texto
*/
@Override
public void show() {
this.view.getCalleField().requestFocus();

View File

@@ -25,6 +25,9 @@ public abstract class AbstractDireccionSearchController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getCrearButton().addActionListener(e -> this.create());
this.view.getSearchField().addActionListener(e -> this.search());
@@ -57,6 +60,9 @@ public abstract class AbstractDireccionSearchController extends BaseController {
return this.view;
}
/**
* Carga los datos de la tabla y limpia la seleccion en esta
*/
public void reload() {
this.loadDireccionesTable();
this.view.getDireccionesTable().clearSelection();
@@ -64,17 +70,28 @@ public abstract class AbstractDireccionSearchController extends BaseController {
protected abstract void loadDireccionesTable();
/**
* Carga la tabla de direcciones con los elementos entregados en la lista
*
* @param direccions Direcciones con los llenar la tabla
*/
protected void loadDireccionesTable(List<Direccion> direccions) {
BaseTableModel<Direccion> model = this.view.getDireccionModel();
model.setRows(direccions);
}
/**
* Obtiene la direccion seleccionada
*
* @return La direccion seleccionada, si no hay ninguna seleccionada, muestra
* un mensaje de error y retorna null
*/
protected Direccion getSelectedDireccion() {
int selectedRow = this.view.getDireccionesTable().getSelectedRow();
if (selectedRow == -1) {
JOptionPane.showMessageDialog(
null,
"No hay abstract_direccion seleccionada",
"No hay direccion seleccionada",
"Error",
JOptionPane.ERROR_MESSAGE
);

View File

@@ -24,12 +24,18 @@ public abstract class AbstractDireccionUpdateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
protected void setupListeners() {
this.view.getNumeroField().addActionListener(e -> this.update());
this.view.getActualizarButton().addActionListener(e -> this.update());
this.view.getVolverButton().addActionListener(e -> this.volver());
}
/**
* Actualiza
*/
protected void update() {
String calle = this.view.getCalleField().getText();
String numero = this.view.getNumeroField().getText();

View File

@@ -40,6 +40,9 @@ public class ArrendarArrendarController extends BaseController {
this.setupListeners();
}
/**
* Crear los listeners para la vista
*/
private void setupListeners() {
this.view.getAgregarButton().addActionListener(e -> this.agregar());
this.view.getRemoverButton().addActionListener(e -> this.remover());
@@ -47,6 +50,11 @@ public class ArrendarArrendarController extends BaseController {
this.view.getCancelarButton().addActionListener(e -> this.cancelar());
}
/**
* Agrega el ejemplar seleccionado en el JComboBox al JTable
*
* Si no hay ninguno, o no hay ninguno seleccionado mostrara un mensaje de error
*/
private void agregar() {
if (this.view.getEjemplarComboModel().getSize() == 0) {
JOptionPane.showMessageDialog(
@@ -73,6 +81,11 @@ public class ArrendarArrendarController extends BaseController {
this.view.getEjemplarTableModel().addRow(ejemplar);
}
/**
* Remueve el ejemplar seleccionado en la JTable y lo agrega al JCombobox
*
* Si no hay ninguno, o no hay ninguno seleccionado mostrara un mensaje de error
*/
private void remover() {
if (this.view.getEjemplarTableModel().getRowCount() == 0) {
JOptionPane.showMessageDialog(
@@ -92,6 +105,10 @@ public class ArrendarArrendarController extends BaseController {
this.view.getEjemplarTableModel().removeRow(ejemplar);
}
/**
* Crea un nuevo arriendo, primero validando los datos entregados y luego creando
* El arriendo tambien cambiando el estado del ejemplar a "Arrendado"
*/
private void arrendar() {
Cliente cliente = (Cliente) this.view.getClienteCombo().getSelectedItem();
ValidationResult clienteValidation = this.validator.validateCliente(cliente);
@@ -152,10 +169,19 @@ public class ArrendarArrendarController extends BaseController {
this.parentController.showCard(PanelName.ARRENDAR_SEARCH);
}
/**
* Vuelve a la la vista de ARRENDAR_SEARCH
*/
private void cancelar() {
this.parentController.showCard(PanelName.ARRENDAR_SEARCH);
}
/**
* Obtiene el ejemplar seleccionado actualmente en la tabla
*
* Si no hay ninguno seleccionado retorna null y muestra un mensaje de error
* @return Ejemplar seleccionado, si no hay, retorna null
*/
private Ejemplar getSelectedEjemplar() {
int selectedRow = this.view.getEjemplaresTable().getSelectedRow();
if (selectedRow == -1) {
@@ -171,6 +197,11 @@ public class ArrendarArrendarController extends BaseController {
return this.view.getEjemplarTableModel().getRow(selectedRow);
}
/**
* Metodo a ejecutar cuando se va a mostrar la vista
* Rellena la lista de ejemplares, la lista de clientes, limpia la tabla y
* coloca ceros en los campos de texto
*/
@Override
public void show() {
Estado disponible = this.estadoRepository.getByNombre("Disponible");

View File

@@ -33,6 +33,9 @@ public class ArrendarSearchController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getArrendarButton().addActionListener(e -> this.getParentController().showCard(PanelName.ARRENDAR_ARRENDAR));
this.view.getBuscarField().addActionListener(e -> this.search());
@@ -41,12 +44,22 @@ public class ArrendarSearchController extends BaseController {
this.view.getRecibirButton().addActionListener(e -> this.recibir());
}
/**
* Realiza una busqueda en los elementos del repositorios con el
* termino ingresado en el campo de busqueda como filtro
*/
private void search() {
String term = this.view.getBuscarField().getText();
List<Arriendo> arriendos = this.arrendarRepository.search(term);
this.loadArriendosTable(arriendos);
}
/**
* Llama a mostrar la vista de ARRENDAR_VIEW para
* mostrar el arriendo seleccionado en la tabla
*
* Si getSelectedArriendo retorna null no se hace nada
*/
private void view() {
Arriendo arriendo = this.getSelectedArriendo();
if (arriendo == null)
@@ -57,6 +70,17 @@ public class ArrendarSearchController extends BaseController {
this.getParentController().showCard(PanelName.ARRENDAR_VIEW);
}
/**
* Recibe el arriendo seleccionado
*
* Calcula cual es la multa a pagar y muestra un dialog con los datos
*
* Si se acepta el dialogo se cambiara el estado de los ejemplares arrendados
* a disponible y al arriendo se le colocara la fecha de devolucion real a
* <code>LocalDate.now()</code>
*
* Si se cancela el dialogo no se hace nada
*/
private void recibir() {
Arriendo arriendo = this.getSelectedArriendo();
if (arriendo == null)
@@ -92,11 +116,21 @@ public class ArrendarSearchController extends BaseController {
}
}
/**
* Carga la tabla de arriendos con la lista entregada
* @param arriendos Arriendos con los que llenar la tabla
*/
private void loadArriendosTable(List<Arriendo> arriendos) {
BaseTableModel<Arriendo> model = this.view.getArriendosTableModel();
model.setRows(arriendos);
}
/**
* Obtiene el arriendo seleccionado actualmente en la tabla
*
* @return El arriendo seleccionado, si no hay ninguno seleccionado muestra
* un mensaje de error y retorna null
*/
private Arriendo getSelectedArriendo() {
int selectedRow = this.view.getArriendosTable().getSelectedRow();
if (selectedRow == -1) {
@@ -112,18 +146,24 @@ public class ArrendarSearchController extends BaseController {
return this.view.getArriendosTableModel().getRow(selectedRow);
}
/**
* Metodo a ejecutar cuando la vista se muestra
*
* Carga la tabla, limpia el texto en buscar field y le da foco ademas de
* limpiar lo seleccionado de la tabla
*/
@Override
public void show() {
this.reload();
}
public void reload() {
this.loadArriendosTable();
this.view.getBuscarButton().requestFocus();
this.view.getBuscarField().requestFocus();
this.view.getBuscarField().setText("");
this.view.getArriendosTable().clearSelection();
}
/**
* Carga la tabla de arriendos con todos los elementos del repositorio
*/
private void loadArriendosTable() {
List<Arriendo> arriendos = this.arrendarRepository.getAll();
this.loadArriendosTable(arriendos);

View File

@@ -14,13 +14,15 @@ public class ArrendarViewController extends BaseController {
public ArrendarViewPanel view;
public Arriendo arriendo;
public ArrendarViewController(ArrendarViewPanel view, LaunchController parentController) {
super(parentController);
this.view = view;
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> this.parentController.showCard(PanelName.ARRENDAR_SEARCH));
}
@@ -29,6 +31,11 @@ public class ArrendarViewController extends BaseController {
this.arriendo = arriendo;
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Rellena todos los campos de la vista con los datos del arriendo
*/
@Override
public void show() {
if (this.arriendo != null) {

View File

@@ -24,12 +24,20 @@ public class AutorCreateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getApellidoMaternoField().addActionListener(e -> this.save());
this.view.getGuardarButton().addActionListener(e -> this.save());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.AUTOR_SEARCH));
}
/**
* Crea un nuevo autor con los datos ingresados en la vista
*
* Luego de guardarlo reseta los campos de la vista
*/
private void save() {
String nombre = this.view.getNombreField().getText();
ValidationResult nombreValidation = this.validator.validateNombre(nombre);
@@ -64,6 +72,11 @@ public class AutorCreateController extends BaseController {
this.view.getNombreField().requestFocus();
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Vacia el contenido de los inputfield
*/
@Override
public void show() {
this.view.getNombreField().setText("");

View File

@@ -27,6 +27,9 @@ public class AutorSearchController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getCrearButton().addActionListener(e -> this.getParentController().showCard(PanelName.AUTOR_CREATE));
this.view.getSearchField().addActionListener(e -> this.search());
@@ -36,12 +39,22 @@ public class AutorSearchController extends BaseController {
this.view.getEliminarButton().addActionListener(e -> this.delete());
}
/**
* Realiza una busqueda en los elementos del repositorios con el
* termino ingresado en el campo de busqueda como filtro
*/
private void search() {
String term = this.view.getSearchField().getText();
List<Autor> autores = this.autorRepository.search(term);
this.loadAutorTable(autores);
}
/**
* Llama a mostrar la vista de AUTOR_VIEW para
* mostrar el autor seleccionado en la tabla
*
* Si getSelectedAutor retorna null no se hace nada
*/
private void view() {
Autor autor = this.getSelectedAutor();
if (autor != null) {
@@ -51,6 +64,12 @@ public class AutorSearchController extends BaseController {
}
}
/**
* Llama a mostrar la vista de AUTOR_UPDATE para editar el autor seleccionado
* en la tabla
*
* Si getSelectedAutor retorna null no hace nada
*/
private void edit() {
Autor autor = this.getSelectedAutor();
if (autor != null) {
@@ -60,6 +79,12 @@ public class AutorSearchController extends BaseController {
}
}
/**
* Elimina un autor despues de validar que es posible eliminarlo y si el
* usuario acepta el dialog
*
* Recarga la tabla una vez eliminado
*/
private void delete() {
Autor autor = this.getSelectedAutor();
if (autor == null)
@@ -82,14 +107,25 @@ public class AutorSearchController extends BaseController {
return;
this.autorRepository.delete(autor);
this.reload();
this.view.getAutorModel().fireTableDataChanged();
}
/**
* Carga la tabla de autores con la lista entregada
* @param autores Autores con los que llenar la tabla
*/
private void loadAutorTable(List<Autor> autores) {
BaseTableModel<Autor> model = this.view.getAutorModel();
model.setRows(autores);
}
/**
* Obtiene el autor seleccionado actualmente en la tabla
*
* @return El autor seleccionado, si no hay ninguno seleccionado muestra un
* mensaje de error y retorna null
*/
private Autor getSelectedAutor() {
int selectedRow = this.view.getAutorTable().getSelectedRow();
if (selectedRow == -1) {
@@ -105,20 +141,24 @@ public class AutorSearchController extends BaseController {
return this.view.getAutorModel().getRow(selectedRow);
}
public void reload() {
this.loadAutorTable();
this.view.getSearchField().requestFocus();
this.view.getAutorTable().clearSelection();
}
/**
* Carga la tabla de autores con todos los elementos del repositorio
*/
private void loadAutorTable() {
List<Autor> autores = this.autorRepository.getAll();
this.loadAutorTable(autores);
}
/**
* Metodo a ejecutar cuando la vista se muestra
*
* Carga la tabla y pone el foco en el campo de busqueda
*/
@Override
public void show() {
this.reload();
this.loadAutorTable();
this.view.getSearchField().requestFocus();
this.view.getAutorTable().clearSelection();
}
@Override

View File

@@ -25,12 +25,22 @@ public class AutorUpdateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getApellidoPaternoField().addActionListener(e -> this.update());
this.view.getActualizarButton().addActionListener(e -> this.update());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.AUTOR_SEARCH));
}
/**
* Actualiza el contenido de un autor con los datos otorgados en la vista
*
* Primero valida si los datos son correctos para luego actualizar y volver a
* la vista de AUTOR_SEARCH
*/
private void update() {
ValidationResult autorValidation = this.validator.validateOriginal(this.autor);
if (autorValidation.hasError()) {
@@ -73,19 +83,21 @@ public class AutorUpdateController extends BaseController {
this.autor = autor;
}
/**
* Metodo que se llama al mostrar la visat
*
* Rellena los datos del autor y pone el foco en el field de nombre
*/
@Override
public void show() {
this.fillAutor();
this.view.getNombreField().requestFocus();
}
private void fillAutor() {
if (this.autor == null)
return;
this.view.getNombreField().setText(this.autor.getNombre());
this.view.getApellidoPaternoField().setText(this.autor.getApellidoPaterno());
this.view.getApellidoMaternoField().setText(this.autor.getApellidoMaterno());
this.view.getNombreField().requestFocus();
}
@Override

View File

@@ -18,18 +18,22 @@ public class AutorViewController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> {
this.getParentController().showCard(PanelName.AUTOR_SEARCH);
});
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Rellena los datos del autor en la vista
*/
@Override
public void show() {
this.fillAutor();
}
private void fillAutor() {
if (this.autor == null)
return;

View File

@@ -25,12 +25,19 @@ public class CategoriaCreateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getNombreField().addActionListener(e -> this.save());
this.view.getGuardarButton().addActionListener(e -> this.save());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.CATEGORIA_SEARCH));
}
/**
* Guarda una nueva categoria con los datos entregados en la vista
* Despues de guardar limpia los fields y coloca el foco en el field de nombre
*/
private void save() {
String nombre = this.view.getNombreField().getText();
ValidationResult nombreValidation = this.validator.validateNombre(nombre);
@@ -48,6 +55,10 @@ public class CategoriaCreateController extends BaseController {
this.view.getNombreField().requestFocus();
}
/**
* Metodo a ejecutar cuando la vista es mostrada
* Coloca el foco en el campo de nombre
*/
@Override
public void show() {
this.view.getNombreField().requestFocus();

View File

@@ -29,11 +29,17 @@ public class CategoriaSearchController extends BaseController {
}
/**
* Carga la tabla de categorias con todas las categorias en el repositorio
*/
private void loadCategoriaTable() {
List<Categoria> categorias = this.categoriaRepository.getAll();
this.loadCategoriaTable(categorias);
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getCrearButton().addActionListener(e -> this.getParentController().showCard(PanelName.CATEGORIA_CREATE));
this.view.getSearchField().addActionListener(e -> this.search());
@@ -43,17 +49,30 @@ public class CategoriaSearchController extends BaseController {
this.view.getEliminarButton().addActionListener(e -> this.delete());
}
/**
* Carga la tabla de categorias con las categorias de la lista entregada
*
* @param categorias Categorias con las que se cargara la tabla
*/
private void loadCategoriaTable(List<Categoria> categorias) {
BaseTableModel<Categoria> model = this.view.getCategoriaModel();
model.setRows(categorias);
}
/**
* Realiza una busqueda en los elementos del repositorios con el
* termino ingresado en el campo de busqueda como filtro
*/
private void search() {
String term = this.view.getSearchField().getText();
List<Categoria> categorias = this.categoriaRepository.search(term);
this.loadCategoriaTable(categorias);
}
/**
* Llama a la vista de CATEGORIA_VIEW para mostrar la categoria seleccionada
* en la tabla, si no hay ninguna seleccionada no hace nada
*/
private void view() {
Categoria categoria = this.getSelectedCategoria();
if (categoria != null) {
@@ -63,6 +82,11 @@ public class CategoriaSearchController extends BaseController {
}
}
/**
* Llama a la vista de CATEORIA_UPDATE para editar el autor seleccionado en
* la tabla
* Si no hay un autor seleccionado no hace nada
*/
private void edit() {
Categoria categoria = this.getSelectedCategoria();
if (categoria != null) {
@@ -72,6 +96,10 @@ public class CategoriaSearchController extends BaseController {
}
}
/**
* Elimina la categoria seleccionada despues de validar que es posible eliminarlo
* y si el usuario acepta el dialog, recarga la tabla una vez eliminado
*/
private void delete() {
Categoria categoria = this.getSelectedCategoria();
if (categoria == null)
@@ -94,9 +122,14 @@ public class CategoriaSearchController extends BaseController {
return;
this.categoriaRepository.delete(categoria);
this.reload();
this.view.getCategoriaModel().fireTableDataChanged();
}
/**
* Obtiene la categoria actualmente seleccionada en la tabla
*
* Si no hay ninguna seleccionada muestra un mensaje de error y retorna null
*/
private Categoria getSelectedCategoria() {
int selectedRow = this.view.getCategoriaTable().getSelectedRow();
if (selectedRow == -1) {
@@ -112,17 +145,18 @@ public class CategoriaSearchController extends BaseController {
return this.view.getCategoriaModel().getRow(selectedRow);
}
public void reload() {
/**
* Metodo que se ejecuta al mostrar la vista
*
* Carga la tabla y pone el foco en el campo de busqueda
*/
@Override
public void show() {
this.loadCategoriaTable();
this.view.getCategoriaTable().clearSelection();
this.view.getSearchField().requestFocus();
}
@Override
public void show() {
this.reload();
}
@Override
public BasePanel getView() {
return this.view;

View File

@@ -17,6 +17,7 @@ public class CategoriaUpdateController extends BaseController {
private CategoriaRepository categoriaRepository;
private CategoriaValidator validator;
public CategoriaUpdateController(CategoriaUpdatePanel view, LaunchController parent) {
super(parent);
this.view = view;
@@ -25,12 +26,21 @@ public class CategoriaUpdateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getNombreField().addActionListener(e -> this.update());
this.view.getUpdateButton().addActionListener(e -> this.update());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.CATEGORIA_SEARCH));
}
/**
* Actualiza una categoria con los datos ingresados en la vista
*
* Primero valida los datos y luego actualiza la categoria, tras esto se pasa
* a la vista de CATEGORIA_SEARCH
*/
private void update() {
ValidationResult originalValidation = this.validator.validateOriginal(this.categoria);
if (originalValidation.hasError()) {
@@ -52,16 +62,19 @@ public class CategoriaUpdateController extends BaseController {
this.getParentController().showCard(PanelName.CATEGORIA_SEARCH);
}
/**
* Metodo que se ejecuta al momento de mostrar la vista
*
* Primero llena los datos de la categoria y luego coloca el foco en el field de nombre
*/
@Override
public void show() {
this.fillCategoria();
this.view.getNombreField().requestFocus();
if(this.categoria != null) {
this.view.getNombreField().setText(this.categoria.getNombre());
this.view.getNombreField().requestFocus();
}
}
private void fillCategoria() {
if (this.categoria != null)
this.view.getNombreField().setText(this.categoria.getNombre());
}
@Override
public BasePanel getView() {

View File

@@ -18,6 +18,9 @@ public class CategoriaViewController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.CATEGORIA_SEARCH));
}
@@ -26,12 +29,13 @@ public class CategoriaViewController extends BaseController {
this.categoria = categoria;
}
/**
* Metodo que se ejecuta al momento de mostrar la vista
*
* Rellena los datos de la categoria
*/
@Override
public void show() {
this.fillCategoria();
}
private void fillCategoria() {
if (this.categoria != null)
this.view.getNombreField().setText(this.categoria.getNombre());
}

View File

@@ -25,11 +25,19 @@ public class ClienteCreateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getGuardarButton().addActionListener(e -> this.save());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.CLIENTE_SEARCH));
}
/**
* Guarda un nuevo cliente con los datos entregados en la vista
*
* Primero valida los datos de la vista antes de guardarse
*/
private void save() {
String rut = this.view.getRutField().getText();
ValidationResult rutValidation = this.validator.validateRut(rut);
@@ -78,6 +86,11 @@ public class ClienteCreateController extends BaseController {
this.getParentController().showCard(PanelName.CLIENTE_SEARCH);
}
/**
* Metodo a ejecutar cuando la vista se muestra
*
* Coloca el foco en el campo de rut
*/
@Override
public void show() {
this.view.getRutField().requestFocus();

View File

@@ -36,6 +36,9 @@ public class ClienteSearchController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getCrearButton().addActionListener(e -> this.getParentController().showCard(PanelName.CLIENTE_CREATE));
this.view.getSearchField().addActionListener(e -> this.search());
@@ -45,12 +48,20 @@ public class ClienteSearchController extends BaseController {
this.view.getEliminarButton().addActionListener(e -> this.delete());
}
/**
* Realiza una busqueda en los elementos del repositorios con el
* termino ingresado en el campo de busqueda como filtro
*/
private void search() {
String term = this.view.getSearchField().getText();
List<Cliente> clientees = this.clienteRespository.search(term);
this.loadClienteTable(clientees);
}
/**
* Llama a la vista de CLIENTE_VIEW, para ver los datos del cliente
* si no hay cliente seleccionado no hace nada
*/
private void view() {
Cliente cliente = this.getSelectedCliente();
if (cliente != null) {
@@ -60,6 +71,10 @@ public class ClienteSearchController extends BaseController {
}
}
/**
* Llama a la vista CLIENTE_UPDATE, para editar los datos del cliente
* si no hay cliente seleccionado no hace nada
*/
private void edit() {
Cliente cliente = this.getSelectedCliente();
if (cliente != null) {
@@ -69,6 +84,14 @@ public class ClienteSearchController extends BaseController {
}
}
/**
* Elimina al cliente seleccionado, preguntando por confirmacion al usuario
*
* Junto con eliminarlo a el, elimina todos los correos, direcciones y
* telefonos que tenga asociados
*
* Si no hay ninguno seleccionado no hace nada
*/
private void delete() {
Cliente cliente = this.getSelectedCliente();
if (cliente == null)
@@ -89,14 +112,24 @@ public class ClienteSearchController extends BaseController {
this.direccionRepository.delete(cliente.getDirecciones());
this.telefonoRepository.delete(cliente.getTelefonos());
this.clienteRespository.delete(cliente);
this.reload();
this.view.getClienteModel().fireTableDataChanged();
}
private void loadClienteTable(List<Cliente> clientees) {
/**
* Carga la tabla de clientes con los entregados
*
* @param clientes Lista de clientes con los que cargar la tabla
*/
private void loadClienteTable(List<Cliente> clientes) {
BaseTableModel<Cliente> model = this.view.getClienteModel();
model.setRows(clientees);
model.setRows(clientes);
}
/**
* Obtiene el cliente seleccionado
*
* @return Al cliente seleccionado, si no hay ninguno seleccionado retorna null
*/
private Cliente getSelectedCliente() {
int selectedRow = this.view.getClienteTable().getSelectedRow();
if (selectedRow == -1) {
@@ -111,20 +144,27 @@ public class ClienteSearchController extends BaseController {
return this.view.getClienteModel().getRow(selectedRow);
}
private void reload() {
this.loadClienteTable();
this.view.getClienteTable().clearSelection();
this.view.getSearchField().requestFocus();
}
/**
* Carga la tabla de clientes con todos los existentes en el repositorio
*/
private void loadClienteTable() {
List<Cliente> clientees = this.clienteRespository.getAll();
this.loadClienteTable(clientees);
}
/**
* Metodo a ejecutar cuando se muestra la vista
*
* Carga los datos de la tabla y pone el foco en el campo de search ademas de
* limpiar el contenido que tenia previamente
*/
@Override
public void show() {
this.reload();
this.loadClienteTable();
this.view.getClienteTable().clearSelection();
this.view.getSearchField().requestFocus();
this.view.getSearchField().setText("");
}
@Override

View File

@@ -26,11 +26,21 @@ public class ClienteUpdateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getActualizarButton().addActionListener(e -> this.update());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.CLIENTE_SEARCH));
}
/**
* Actualiza el cliente entregado con los datos ingresados en la vista
*
* Primero comprueba que todos sean correctos, luego los actualiza y vuelve
* a la vista de CLIENTE_SEARCH
*/
private void update() {
String rut = this.view.getRutField().getText();
ValidationResult rutValidation = this.clienteValidator.validateRut(rut);
@@ -78,18 +88,19 @@ public class ClienteUpdateController extends BaseController {
this.getParentController().showCard(PanelName.CLIENTE_SEARCH);
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
/**
* Metodo a ejecutar cuando la vista se muestra
*
* Carga los datos del cliente y pone el foco en el campo de rut
*/
@Override
public void show() {
this.fillCliente();
this.view.getRutField().requestFocus();
}
private void fillCliente() {
if (this.clienteRespository == null)
if (this.cliente == null)
return;
this.view.getRutField().setText(this.cliente.getRut());
@@ -97,8 +108,10 @@ public class ClienteUpdateController extends BaseController {
this.view.getApellidoPaternoField().setText(this.cliente.getApellidoPaterno());
this.view.getApellidoMaternoField().setText(this.cliente.getApellidoMaterno());
this.view.getFechaNacimientoField().setDate(this.cliente.getFechaNacimiento());
this.view.getRutField().requestFocus();
}
@Override
public BasePanel getView() {
return this.view;

View File

@@ -22,6 +22,9 @@ public class ClienteViewController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.CLIENTE_SEARCH));
this.view.getCorreosButton().addActionListener(e -> this.gotoCorreosView());
@@ -29,12 +32,18 @@ public class ClienteViewController extends BaseController {
this.view.getDireccionesButton().addActionListener(e -> this.gotoDireccionView());
}
/**
* Muestra la vista de CLIENTE_CORREO_SEARCH
*/
private void gotoCorreosView() {
ClienteCorreoSearchController controller = (ClienteCorreoSearchController) this.getParentController().getCard(PanelName.CLIENTE_CORREO_SEARCH);
controller.setCliente(this.cliente);
this.getParentController().showCard(PanelName.CLIENTE_CORREO_SEARCH);
}
/**
* Muestra la vista de CLIENTE_TELEFONO_SEARCH
*/
private void gotoTelefonoView() {
ClienteTelefonoSearchController controller = (ClienteTelefonoSearchController) this.getParentController()
.getCard(PanelName.CLIENTE_TELEFONO_SEARCH);
@@ -42,6 +51,9 @@ public class ClienteViewController extends BaseController {
this.getParentController().showCard(PanelName.CLIENTE_TELEFONO_SEARCH);
}
/**
* Muestra la vista de CLIENTE_DIRECCION_SEARCH
*/
private void gotoDireccionView() {
ClienteDireccionSearchController controller = (ClienteDireccionSearchController) this.getParentController()
.getCard(PanelName.CLIENTE_DIRECCION_SEARCH);
@@ -49,12 +61,13 @@ public class ClienteViewController extends BaseController {
this.getParentController().showCard(PanelName.CLIENTE_DIRECCION_SEARCH);
}
/**
* Metodo a ejecutar cuando la vista se muestra
*
* Carga los datos del cliente
*/
@Override
public void show() {
this.fillCliente();
}
private void fillCliente() {
if (this.cliente == null)
return;

View File

@@ -28,11 +28,20 @@ public class DistribuidorCreateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getGuardarButton().addActionListener(e -> this.save());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.DISTRIBUIDOR_SEARCH));
}
/**
* Crea un distribuidor con los datos entregados en la vista
*
* Valida los datos antes de crearlo y tras esto vuelve a la vista
* de DISTRIBUIDOR_SEARCH
*/
private void save() {
String rut = this.view.getRutField().getText();
ValidationResult rutValidation = this.validator.validateRut(rut);
@@ -57,16 +66,18 @@ public class DistribuidorCreateController extends BaseController {
this.getParentController().showCard(PanelName.DISTRIBUIDOR_SEARCH);
}
/**
* Metodo a ejecutar cuando la vista se muestra
*
* Carga el combo de empesa, selecciona el primero por default y pone el foco
* en el field de rut
*/
@Override
public void show() {
this.fillEmpresasCombobox();
this.view.getEmpresaCombobox().setSelectedIndex(0);
this.view.getRutField().requestFocus();
}
private void fillEmpresasCombobox() {
this.view.getEmpresaModel().removeAllElements();
this.view.getEmpresaModel().addAll(this.empresaRepository.getAll());
this.view.getEmpresaCombobox().setSelectedIndex(0);
this.view.getRutField().requestFocus();
}
@Override

View File

@@ -37,6 +37,9 @@ public class DistribuidorSearchController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getCrearButton().addActionListener(e -> this.getParentController().showCard(PanelName.DISTRIBUIDOR_CREATE));
this.view.getSearchField().addActionListener(e -> this.search());
@@ -46,12 +49,20 @@ public class DistribuidorSearchController extends BaseController {
this.view.getEliminarButton().addActionListener(e -> this.delete());
}
/**
* Realiza una busqueda en los elementos del repositorios con el termino ingresado en el campo de busqueda como filtro
*/
private void search() {
String term = this.view.getSearchField().getText();
List<Distribuidor> distribuidores = this.distribuidorRepository.search(term);
this.loadDistribuidorTable(distribuidores);
}
/**
* Muestra la vista de DISTRIBUIDOR_VIEW para ver los datos del distribuidor seleccionado
* <p>
* Si no hay distribuidor seleccionado no hace nada
*/
private void view() {
Distribuidor distribuidor = this.getSelectedDistribuidor();
if (distribuidor != null) {
@@ -61,6 +72,11 @@ public class DistribuidorSearchController extends BaseController {
}
}
/**
* Muestra la vista de DISTRIBUIDOR_UPDATE para editar los datos del distribuidor seleccionado
* <p>
* Si no hay ninguno seleccionado no hace nada
*/
private void edit() {
Distribuidor distribuidor = this.getSelectedDistribuidor();
if (distribuidor != null) {
@@ -70,6 +86,11 @@ public class DistribuidorSearchController extends BaseController {
}
}
/**
* Elimina el distribuidor seleccionado, antes de hacerlo pregunta al usuario por confirmacion
* <p>
* Junto con eliminar al distribuidor se eleminaran sus correos, direcciones y telefonos
*/
private void delete() {
Distribuidor distribuidor = this.getSelectedDistribuidor();
if (distribuidor == null)
@@ -90,14 +111,24 @@ public class DistribuidorSearchController extends BaseController {
this.direccionRepository.delete(distribuidor.getDirecciones());
this.telefonoRepository.delete(distribuidor.getTelefonos());
this.distribuidorRepository.delete(distribuidor);
this.reload();
this.view.getDistribuidorModel().fireTableDataChanged();
}
/**
* Carga la tabla de distribuidores con los entregados en la lista
*
* @param distribuidores Lista de distribuidores que se cargaran en la tabla
*/
private void loadDistribuidorTable(List<Distribuidor> distribuidores) {
BaseTableModel<Distribuidor> model = this.view.getDistribuidorModel();
model.setRows(distribuidores);
}
/**
* Obtiene el distribuidor seleccionado en la tabla
*
* @return El distribuidor seleccionado, en caso de que no alla ninguno seleccionado, mostrara un mensaje de error y retornara null
*/
private Distribuidor getSelectedDistribuidor() {
int selectedRow = this.view.getDistribuidorTable().getSelectedRow();
if (selectedRow == -1) {
@@ -112,22 +143,27 @@ public class DistribuidorSearchController extends BaseController {
return this.view.getDistribuidorModel().getRow(selectedRow);
}
private void reload() {
/**
* Metodo que se ejecuta al momento de mostrar la vista
* <p>
* Carga la tabla con datos y limpia el contenido de la busqueda y coloca el foco en este campo
*/
@Override
public void show() {
this.loadDistribuidorTable();
this.view.getDistribuidorTable().clearSelection();
this.view.getSearchField().requestFocus();
this.view.getSearchField().setText("");
}
/**
* Carga la tabla de distribuidores con todos los existentes en el repositorio
*/
private void loadDistribuidorTable() {
List<Distribuidor> distribuidores = this.distribuidorRepository.getAll();
this.loadDistribuidorTable(distribuidores);
}
@Override
public void show() {
this.reload();
}
@Override
public BasePanel getView() {
return this.view;

View File

@@ -29,11 +29,20 @@ public class DistribuidorUpdateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getActualizarButton().addActionListener(e -> this.update());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.DISTRIBUIDOR_SEARCH));
}
/**
* Actualiza el distribuidor entregado con los datos ingresados en la vista
*
* Valida los datos antes de actualizar y luego vuelve a la vista de
* DISTRIBUIDOR_SEARCH
*/
private void update() {
ValidationResult originalValidation = this.distribuidorValidator.validateOriginal(this.distribuidor);
if (originalValidation.hasError()) {
@@ -67,6 +76,12 @@ public class DistribuidorUpdateController extends BaseController {
this.distribuidor = distribuidor;
}
/**
* Metodo que se ejecuta al momento de mostrar la vista
*
* Llena el combobox, carga los datos del distribuidor y pone el
* foco en el campo de rut
*/
@Override
public void show() {
this.fillEmpresaCombobox();

View File

@@ -21,6 +21,9 @@ public class DistribuidorViewController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.DISTRIBUIDOR_SEARCH));
this.view.getCorreosButton().addActionListener(e -> this.gotoCorreosView());
@@ -28,6 +31,9 @@ public class DistribuidorViewController extends BaseController {
this.view.getDireccionesButton().addActionListener(e -> this.gotoDireccionView());
}
/**
* Va hacia la vista de DISTRIBUIDOR_CORREO_SEARCH
*/
private void gotoCorreosView() {
DistribuidorCorreoSearchController controller = (DistribuidorCorreoSearchController) this.getParentController()
.getCard(PanelName.DISTRIBUIDOR_CORREO_SEARCH);
@@ -35,6 +41,10 @@ public class DistribuidorViewController extends BaseController {
this.getParentController().showCard(PanelName.DISTRIBUIDOR_CORREO_SEARCH);
}
/**
* Va hacia la vista de DISTRIBUIDOR_TELEFONO_SEARCH
*/
private void gotoTelefonoView() {
DistribuidorTelefonoSearchController controller = (DistribuidorTelefonoSearchController) this.getParentController()
.getCard(PanelName.DISTRIBUIDOR_TELEFONO_SEARCH);
@@ -42,6 +52,9 @@ public class DistribuidorViewController extends BaseController {
this.getParentController().showCard(PanelName.DISTRIBUIDOR_TELEFONO_SEARCH);
}
/**
* Va hacia la vista de DISTRIBUIDOR_DIRECCION_SEARCH
*/
private void gotoDireccionView() {
DistribuidorDireccionSearchController controller = (DistribuidorDireccionSearchController) this.getParentController()
.getCard(PanelName.DISTRIBUIDOR_DIRECCION_SEARCH);
@@ -49,12 +62,13 @@ public class DistribuidorViewController extends BaseController {
this.getParentController().showCard(PanelName.DISTRIBUIDOR_DIRECCION_SEARCH);
}
/**
* Metodo que se ejecuta al momento de mostrar la vista
*
* Carga los datos del distribuidor
*/
@Override
public void show() {
this.fillDistribuidor();
}
private void fillDistribuidor() {
if (this.distribuidor == null)
return;

View File

@@ -25,12 +25,20 @@ public class EditorialCreateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getGuardarButton().addActionListener(e -> this.save());
this.view.getNombreField().addActionListener(e -> this.save());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.EDITORIAL_SEARCH));
}
/**
* Crea una nueva editorial con los datos entregados en la vista
* <p>
* Primero valida que todo sea correcto antes de guardar despues de guardar limpia los campos y coloca el foco en el field de nombre
*/
private void save() {
String nombre = this.view.getNombreField().getText();
ValidationResult nombreValidation = this.validator.validateNombre(nombre);
@@ -48,8 +56,14 @@ public class EditorialCreateController extends BaseController {
this.view.getNombreField().requestFocus();
}
/**
* Metodo que se ejecuta al mostrar la vista
* <p>
* Coloca el foco en el field de nombre
*/
@Override
public void show() {
this.view.getNombreField().setText("");
this.view.getNombreField().requestFocus();
}

View File

@@ -28,11 +28,17 @@ public class EditorialSearchController extends BaseController {
this.setupListeners();
}
/**
* Carga la tabla de editorial con todos los datos del repositorio
*/
private void loadEditorialTable() {
List<Editorial> editoriales = this.editorialRepository.getAll();
this.loadEditorialTable(editoriales);
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getCrearButton().addActionListener(e -> this.getParentController().showCard(PanelName.EDITORIAL_CREATE));
this.view.getBuscarButton().addActionListener(e -> this.search());
@@ -42,17 +48,28 @@ public class EditorialSearchController extends BaseController {
this.view.getVerButton().addActionListener(e -> this.view());
}
/**
* Carga la tabla editorial con los elementos de la lista entregada
*
* @param editoriales Lista de editoriales con que llenar la tabla
*/
private void loadEditorialTable(List<Editorial> editoriales) {
BaseTableModel<Editorial> model = this.view.getEditorialModel();
model.setRows(editoriales);
}
/**
* Realiza una busqueda en los elementos del repositorios con el termino ingresado en el campo de busqueda como filtro
*/
private void search() {
String term = this.view.getBuscarField().getText();
List<Editorial> editoriales = this.editorialRepository.search(term);
this.loadEditorialTable(editoriales);
}
/**
* Elimina ua editorial Primero validando si se puede hacer, luego se pide confirmacion al usuario
*/
private void delete() {
Editorial editorial = this.getSelectedEditorial();
if (editorial == null)
@@ -74,9 +91,14 @@ public class EditorialSearchController extends BaseController {
return;
this.editorialRepository.delete(editorial);
this.reload();
this.view.getEditorialModel().fireTableDataChanged();
}
/**
* Muestra la vista de EDITORIAL_UPDATE para modificar la editorial seleccionada
* <p>
* Si no hay ninguna seleccionada no hace nada
*/
private void edit() {
Editorial editorial = this.getSelectedEditorial();
if (editorial != null) {
@@ -86,6 +108,11 @@ public class EditorialSearchController extends BaseController {
}
}
/**
* Muestra la vista de EDITORIAL_VIEW para ver la editorial seleccionada
* <p>
* Si no hay ninguna seleccionada no hace nada
*/
private void view() {
Editorial editorial = this.getSelectedEditorial();
if (editorial != null) {
@@ -95,6 +122,11 @@ public class EditorialSearchController extends BaseController {
}
}
/**
* Obtiene la editorial seleccionada en la tabla
*
* @return La editorial seleccionada, si no hay ninguna seleccionada muestra un mensaje de error y retorna null
*/
private Editorial getSelectedEditorial() {
int selectedRow = this.view.getEditorialTable().getSelectedRow();
if (selectedRow == -1) {
@@ -110,15 +142,17 @@ public class EditorialSearchController extends BaseController {
return this.view.getEditorialModel().getRow(selectedRow);
}
public void reload() {
/**
* Metodo que se ejecuta al momento de mostrar la vista
* <p>
* Carga la tabla de editorial, limpia la seleccion de esta, limpia el contenido del campo buscar y le coloca el foco a este
*/
@Override
public void show() {
this.loadEditorialTable();
this.view.getEditorialTable().clearSelection();
this.view.getBuscarField().requestFocus();
}
@Override
public void show() {
this.reload();
this.view.getBuscarField().setText("");
}
@Override

View File

@@ -25,12 +25,20 @@ public class EditorialUpdateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getNombreField().addActionListener(e -> this.update());
this.view.getActualizarButton().addActionListener(e -> this.update());
this.view.getVolverButton().addActionListener(e -> this.parentController.showCard(PanelName.EDITORIAL_SEARCH));
}
/**
* Actualiza la editorial
* Primero valida si los datos son correctos para luego actualizarla y volver
* a la vista de EDITORIAL_SEARCH
*/
private void update() {
ValidationResult originalValidation = this.validator.validateOriginal(this.editorial);
if (originalValidation.hasError()) {
@@ -52,6 +60,11 @@ public class EditorialUpdateController extends BaseController {
this.getParentController().showCard(PanelName.EDITORIAL_SEARCH);
}
/**
* Metodo que se ejecuta al momento de mostrar la vista
*
* Rellena con los datos de la editorial la vista y coloca el foco en el field de nombre
*/
@Override
public void show() {
if (this.editorial == null)

View File

@@ -18,18 +18,22 @@ public class EditorialViewController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> {
this.getParentController().showCard(PanelName.EDITORIAL_SEARCH);
});
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Rellena los datos de la editorial en la vista
*/
@Override
public void show() {
this.fillEditorial();
}
private void fillEditorial() {
if (this.editorial == null)
return;

View File

@@ -25,12 +25,22 @@ public class EmpresaCreateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getGuardarButton().addActionListener(e -> this.save());
this.view.getNombreField().addActionListener(e -> this.save());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.EMPRESA_SEARCH));
}
/**
* Guarda una empresa con los datos entregados por la vista
*
* Crearla valida los datos y luego limpia los campos de texto y le coloca
* el foco al field de nombre
*
*/
private void save() {
String nombre = this.view.getNombreField().getText();
ValidationResult nombreValidation = this.validator.validateNombre(nombre);

View File

@@ -27,11 +27,17 @@ public class EmpresaSearchController extends BaseController {
this.setupListeners();
}
/**
* Carga la tabla de empresa con todos los datos del repositorio
*/
private void loadEmpresaTable() {
List<Empresa> empresas = this.empresaRepository.getAll();
this.loadEmpresaTable(empresas);
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getCrearButton().addActionListener(e -> this.getParentController().showCard(PanelName.EMPRESA_CREATE));
this.view.getBuscarButton().addActionListener(e -> this.search());
@@ -41,17 +47,28 @@ public class EmpresaSearchController extends BaseController {
this.view.getVerButton().addActionListener(e -> this.view());
}
/**
* Carga la tabla de empresas con los elementos de la lista entregada
*
* @param empresas Lista de empresas con que llenar la tabla
*/
private void loadEmpresaTable(List<Empresa> empresas) {
BaseTableModel<Empresa> model = this.view.getEmpresaModel();
model.setRows(empresas);
}
/**
* Realiza una busqueda en los elementos del repositorios con el termino ingresado en el campo de busqueda como filtro
*/
private void search() {
String term = this.view.getBuscarField().getText();
List<Empresa> empresaes = this.empresaRepository.search(term);
this.loadEmpresaTable(empresaes);
}
/**
* Elimina la empresa seleccionada primero pidiendo confirmacion al usuario
*/
private void delete() {
Empresa empresa = this.getSelectedEmpresa();
if (empresa == null)
@@ -68,9 +85,14 @@ public class EmpresaSearchController extends BaseController {
return;
this.empresaRepository.delete(empresa);
this.reload();
this.view.getEmpresaModel().fireTableDataChanged();
}
/**
* Muestra la vista de EMPRESA_UPDATED para editar la empresa seleccionada
* <p>
* Si no hay ninguna empresa seleccionada no hace nada
*/
private void edit() {
Empresa empresa = this.getSelectedEmpresa();
if (empresa != null) {
@@ -80,6 +102,11 @@ public class EmpresaSearchController extends BaseController {
}
}
/**
* w* Muestra la vista de EMPRESA_VIEW para ver la empresa seleccionada
* <p>
* Si no hay ninguna empresa seleccionada no hace nada
*/
private void view() {
Empresa empresa = this.getSelectedEmpresa();
if (empresa != null) {
@@ -89,6 +116,11 @@ public class EmpresaSearchController extends BaseController {
}
}
/**
* Obtiene la empresa seleccionada en la tabla
*
* @return La empresa seleccionada, si no hay ninguna seleccionada muestra un mensaje de error y luego retorna null
*/
private Empresa getSelectedEmpresa() {
int selectedRow = this.view.getEmpresaTable().getSelectedRow();
if (selectedRow == -1) {
@@ -104,15 +136,17 @@ public class EmpresaSearchController extends BaseController {
return this.view.getEmpresaModel().getRow(selectedRow);
}
public void reload() {
this.loadEmpresaTable();
this.view.getEmpresaTable().clearSelection();
this.view.getBuscarField().requestFocus();
}
/**
* Metodo que se ejecuta al momento de mostrar la vista Carga la tabla de empresas, limpia la seleccion en esta, limpia el contendio del campo
* buscar y le coloca el foco a este
*/
@Override
public void show() {
this.reload();
this.loadEmpresaTable();
this.view.getEmpresaTable().clearSelection();
this.view.getBuscarField().setText("");
this.view.getBuscarField().requestFocus();
}
@Override

View File

@@ -25,12 +25,21 @@ public class EmpresaUpdateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getNombreField().addActionListener(e -> this.update());
this.view.getActualizarButton().addActionListener(e -> this.update());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.EMPRESA_SEARCH));
}
/**
* Actualiza la empresa
*
* Primero valida si los datos son validos y luego de actualizar vuelve a
* la vista de EMPRESA_SEARCH
*/
private void update() {
ValidationResult originalValidation = this.validator.validateOriginal(this.empresa);
if (originalValidation.hasError()) {
@@ -52,6 +61,11 @@ public class EmpresaUpdateController extends BaseController {
this.getParentController().showCard(PanelName.EMPRESA_SEARCH);
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Carga los datos de la empresa y coloca el foco en el campo de nombre
*/
@Override
public void show() {
if (this.empresa == null)

View File

@@ -18,18 +18,22 @@ public class EmpresaViewController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> {
this.getParentController().showCard(PanelName.EMPRESA_SEARCH);
});
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Carga los datos de la empresa
*/
@Override
public void show() {
this.fillEmpresa();
}
private void fillEmpresa() {
if (this.empresa == null)
return;

View File

@@ -25,12 +25,21 @@ public class IdiomaCreateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getNombreField().addActionListener(e -> this.save());
this.view.getGuardarButton().addActionListener(e -> this.save());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.IDIOMA_SEARCH));
}
/**
* Guarda el idioma con los datos entregados en la vista
*
* Primero valida que sean correctos y luego de guardar limpia el contenido
* del campo de nombre y coloca el foco en el
*/
private void save() {
String nombre = this.view.getNombreField().getText();
ValidationResult nombreValidation = this.validator.validateNombre(nombre);
@@ -48,6 +57,11 @@ public class IdiomaCreateController extends BaseController {
this.view.getNombreField().requestFocus();
}
/**
* Metodo que se ejecuta al momento mostrar la vista
*
* Coloca el foco en el field de nombre
*/
@Override
public void show() {
this.view.getNombreField().requestFocus();

View File

@@ -28,11 +28,17 @@ public class IdiomaSearchController extends BaseController {
this.setupListeners();
}
/**
* Carga la tabla de idiomas con todos los elementos del repositorio
*/
private void loadIdiomaTable() {
List<Idioma> idiomas = this.idiomaRepository.getAll();
this.loadIdiomaTable(idiomas);
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getCrearButton().addActionListener(e -> this.getParentController().showCard(PanelName.IDIOMA_CREATE));
this.view.getBuscarButton().addActionListener(e -> this.search());
@@ -42,17 +48,28 @@ public class IdiomaSearchController extends BaseController {
this.view.getVerButton().addActionListener(e -> this.view());
}
/**
* Carga la tabla de idiomas con los entregados en la lista
*
* @param idiomas Lista de idiomas que se cargaran a la tabla
*/
private void loadIdiomaTable(List<Idioma> idiomas) {
BaseTableModel<Idioma> model = this.view.getIdiomaTableModel();
model.setRows(idiomas);
}
/**
* Realiza una busqueda en los elementos del repositorios con el termino ingresado en el campo de busqueda como filtro
*/
private void search() {
String term = this.view.getBuscarField().getText();
List<Idioma> idiomas = this.idiomaRepository.search(term);
this.loadIdiomaTable(idiomas);
}
/**
* Elimina un idioma, solo tras comprobar que es eliminable y preguntar al usuario por confirmacion
*/
private void delete() {
Idioma idioma = this.getSelectedIdioma();
if (idioma == null)
@@ -75,9 +92,14 @@ public class IdiomaSearchController extends BaseController {
return;
this.idiomaRepository.delete(idioma);
this.reload();
this.view.getIdiomaTableModel().fireTableDataChanged();
}
/**
* Muestra la vista de IDIOMA_UPDATE para editar el idioma seleccionado
* <p>
* Si no hay ninguno seleccionado no hace nada
*/
private void edit() {
Idioma idioma = this.getSelectedIdioma();
if (idioma != null) {
@@ -87,6 +109,11 @@ public class IdiomaSearchController extends BaseController {
}
}
/**
* Muestra la vista de IDIOMA_VIEW para ver el idioma seleccionado
* <p>
* Si no hay ninguno seleccionado no hace nada
*/
private void view() {
Idioma idioma = this.getSelectedIdioma();
if (idioma != null) {
@@ -96,6 +123,11 @@ public class IdiomaSearchController extends BaseController {
}
}
/**
* Obtiene el idioma seleccionado
*
* @return El Idioma seleccionado, si no hay ninguno seleccionado muestra un mensaje de error y retorna null
*/
private Idioma getSelectedIdioma() {
int selectedRow = this.view.getIdiomaTable().getSelectedRow();
if (selectedRow == -1) {
@@ -110,15 +142,18 @@ public class IdiomaSearchController extends BaseController {
return this.view.getIdiomaTableModel().getRow(selectedRow);
}
public void reload() {
this.loadIdiomaTable();
this.view.getBuscarField().requestFocus();
this.view.getIdiomaTable().clearSelection();
}
/**
* Metodo que se ejecuta al momento de mostrar la vista
* <p>
* Carga la tabla de idioma y coloca el foco el field de buscar ademas de limpiar la seleccion en la tabla y el texto en el field de buscar
*/
@Override
public void show() {
this.reload();
this.loadIdiomaTable();
this.view.getBuscarField().setText("");
this.view.getBuscarField().requestFocus();
this.view.getIdiomaTable().clearSelection();
}
@Override

View File

@@ -25,12 +25,21 @@ public class IdiomaUpdateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getNombreField().addActionListener(e -> this.update());
this.view.getActualizarButton().addActionListener(e -> this.update());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.IDIOMA_SEARCH));
}
/**
* Actualiza el Idioma con los datos entregados en la vista
*
* Valida los datos antes de actualizar y luego vuelve a la vista de
* IDIOMA_SEARCH
*/
private void update() {
ValidationResult originalValidation = this.validator.validateOriginal(this.idioma);
if (originalValidation.hasError()) {
@@ -49,18 +58,18 @@ public class IdiomaUpdateController extends BaseController {
this.idioma.setNombre(nombre);
this.idiomaRepository.update(this.idioma);
this.view.getNombreField().setText("");
this.getParentController().showCard(PanelName.IDIOMA_SEARCH);
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Llena el campo de nombre y pone el foco en el
*/
@Override
public void show() {
this.fillIdioma();
this.view.getNombreField().requestFocus();
}
private void fillIdioma() {
this.view.getNombreField().setText(this.idioma.getNombre());
this.view.getNombreField().requestFocus();
}
@Override

View File

@@ -18,18 +18,22 @@ public class IdiomaViewController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> {
this.getParentController().showCard(PanelName.IDIOMA_SEARCH);
});
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Carga los datos del idioma
*/
@Override
public void show() {
this.fillIdioma();
}
private void fillIdioma() {
if (this.idioma == null)
return;

View File

@@ -53,6 +53,9 @@ public class LibroCreateController extends BaseController {
this.setupListeners();
}
/**
* Carga la lista de idiomas con los existentes en el repositorio
*/
private void loadIdiomasList() {
List<Idioma> idiomas = this.idiomaRepository.getAll();
DefaultListModel<Idioma> model = this.view.getIdiomasModel();
@@ -62,6 +65,9 @@ public class LibroCreateController extends BaseController {
}
}
/**
* Carga la lista de categorias con las existentes en el repositorio
*/
private void loadCategoriasList() {
List<Categoria> categorias = this.categoriaRepository.getAll();
DefaultListModel<Categoria> model = this.view.getCategoriasModel();
@@ -71,6 +77,9 @@ public class LibroCreateController extends BaseController {
}
}
/**
* Carga la lista de autores con las existentes en el repositorio
*/
private void loadAutorList() {
List<Autor> autores = this.autorRepository.getAll();
DefaultListModel<Autor> model = this.view.getAutoresModel();
@@ -80,6 +89,9 @@ public class LibroCreateController extends BaseController {
}
}
/**
* Carga el combobox de editoriales con los existentes en el repositorio
*/
private void loadEditorialCombo() {
List<Editorial> editoriales = this.editorialRepository.getAll();
JComboBox<Editorial> combobox = this.view.getEditorialCombo();
@@ -89,6 +101,9 @@ public class LibroCreateController extends BaseController {
}
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> {
this.getParentController().showCard(PanelName.LIBRO_SEARCH);
@@ -96,6 +111,13 @@ public class LibroCreateController extends BaseController {
this.view.getGuardarButton().addActionListener(e -> this.save());
}
/**
* Guarda un nuevo libro con los datos ingresados en la vista
*
* Primero valida que todos los datos sean correctos y luego crea el libro
*
* Al terminar vuelve a la vista de LIBRO_SEARCH
*/
private void save() {
String isbn = this.view.getIsbnField().getText();
ValidationResult isbnValidation = this.validator.validateISBN(isbn);
@@ -177,12 +199,13 @@ public class LibroCreateController extends BaseController {
this.getParentController().showCard(PanelName.LIBRO_SEARCH);
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Carga la vista con datos para crear el libro y pone el foco en el field de isbn
*/
@Override
public void show() {
this.reload();
}
private void reload() {
this.loadIdiomasList();
this.loadCategoriasList();
this.loadAutorList();
@@ -191,6 +214,10 @@ public class LibroCreateController extends BaseController {
this.view.getIsbnField().requestFocus();
}
/**
* Limpia todos los campos de la vista
*/
private void cleanInput() {
this.view.getIsbnField().setText("");
this.view.getTituloField().setText("");

View File

@@ -27,11 +27,17 @@ public class LibroSearchController extends BaseController {
this.setupListeners();
}
/**
* Carga la tabla con todo los libros del repositorio
*/
private void loadLibroTable() {
List<Libro> libros = this.libroRepository.getAll();
this.loadLibroTable(libros);
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getCrearButton().addActionListener(e -> this.getParentController().showCard(PanelName.LIBRO_CREATE));
this.view.getBuscarButton().addActionListener(e -> this.search());
@@ -41,17 +47,28 @@ public class LibroSearchController extends BaseController {
this.view.getVerButton().addActionListener(e -> this.view());
}
/**
* Carga la tabla de libros con los entregados en la lista
*
* @param libros Libros con que llenar la tabla
*/
private void loadLibroTable(List<Libro> libros) {
BaseTableModel<Libro> model = this.view.getLibrosModel();
model.setRows(libros);
}
/**
* Realiza una busqueda en los elementos del repositorios con el termino ingresado en el campo de busqueda como filtro
*/
private void search() {
String term = this.view.getBuscarField().getText();
List<Libro> libros = this.libroRepository.search(term);
this.loadLibroTable(libros);
}
/**
* Elimina un libro, primero pidiendo confirmacion al usuario
*/
private void delete() {
Libro libro = this.getSelectedLibro();
if (libro == null)
@@ -68,9 +85,14 @@ public class LibroSearchController extends BaseController {
return;
this.libroRepository.delete(libro);
this.reload();
this.view.getLibrosModel().fireTableDataChanged();
}
/**
* Muestra la vista de LIBRO_UPDATE para actualizar el libro seleccionado
*
* Si no hay libro seleccionado no hace nada
*/
private void edit() {
Libro libro = this.getSelectedLibro();
if (libro != null) {
@@ -80,6 +102,11 @@ public class LibroSearchController extends BaseController {
}
}
/**
* Muestra la vista de LIBRO_VIEW para ver el libro seleccionado
*
* Si no hay libro seleccionado no hace nada
*/
private void view() {
Libro libro = this.getSelectedLibro();
if (libro != null) {
@@ -89,6 +116,12 @@ public class LibroSearchController extends BaseController {
}
}
/**
* Obtiene el libro seleccionado
*
* @return El libro seleccionado, si no hay ninguno, muestra un mensaje de
* error y retorna null
*/
private Libro getSelectedLibro() {
int selectedRow = this.view.getLibrosTable().getSelectedRow();
if (selectedRow == -1) {
@@ -103,15 +136,19 @@ public class LibroSearchController extends BaseController {
return this.view.getLibrosModel().getRow(selectedRow);
}
public void reload() {
this.loadLibroTable();
this.view.getBuscarField().requestFocus();
this.view.getLibrosTable().clearSelection();
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Carga la tabla de libros, limpia su seleccion, limpia el contenido de el
* campo de buscar y coloca el foco sobre el
*/
@Override
public void show() {
this.reload();
this.loadLibroTable();
this.view.getLibrosTable().clearSelection();
this.view.getBuscarField().setText("");
this.view.getBuscarField().requestFocus();
}
@Override

View File

@@ -48,11 +48,18 @@ public class LibroUpdateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getActualizarButton().addActionListener(e -> this.update());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.LIBRO_SEARCH));
}
/**
* Actualiza el libro, validando los datos antes de hacerlo y luego volviendo
* a la vista de LIBRO_SEARCH
*/
private void update() {
ValidationResult libroValidation = this.validator.validateLibro(this.libro);
if (libroValidation.hasError()) {
@@ -144,12 +151,13 @@ public class LibroUpdateController extends BaseController {
this.libro = libro;
}
/**
* Metodo que se llama al momento de mostrar la vista
*
* Carga todos los datos del libro y coloca el foco sobre el isbn
*/
@Override
public void show() {
this.reload();
}
private void reload() {
this.loadAutorList();
this.loadCategoriasList();
this.loadEditorialCombo();
@@ -158,6 +166,10 @@ public class LibroUpdateController extends BaseController {
this.view.getIsbnField().requestFocus();
}
/**
* Carga la lista de autores con los existentes en el repositorio
*/
private void loadAutorList() {
List<Autor> autores = this.autorRepository.getAll();
DefaultListModel<Autor> model = this.view.getAutoresModel();
@@ -167,6 +179,9 @@ public class LibroUpdateController extends BaseController {
}
}
/**
* Carga la lista de categorias con las existentes en el repositorio
*/
private void loadCategoriasList() {
List<Categoria> categorias = this.categoriaRepository.getAll();
DefaultListModel<Categoria> model = this.view.getCategoriasModel();
@@ -176,6 +191,9 @@ public class LibroUpdateController extends BaseController {
}
}
/**
* Carga el combobox de editorial con las existentes en el repositorio
*/
private void loadEditorialCombo() {
List<Editorial> editoriales = this.editorialRepository.getAll();
JComboBox<Editorial> combobox = this.view.getEditorialCombo();
@@ -185,6 +203,9 @@ public class LibroUpdateController extends BaseController {
}
}
/**
* Carga la lista de idiomas con los existentes en la base de datos
*/
private void loadIdiomasList() {
List<Idioma> idiomas = this.idiomaRepository.getAll();
DefaultListModel<Idioma> model = this.view.getIdiomasModel();
@@ -194,6 +215,9 @@ public class LibroUpdateController extends BaseController {
}
}
/**
* Carga los datos del libro en la vista
*/
private void fillLibro() {
if (this.libro == null)
return;

View File

@@ -36,24 +36,31 @@ public class LibroViewController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> {
this.getParentController().showCard(PanelName.LIBRO_SEARCH);
});
}
/**
* Metodo que se ejecuta al momento de mostrar la vista
*
* Carga los datos del libro en la vista
*/
@Override
public void show() {
this.reload();
}
private void reload() {
this.loadAutorList();
this.loadCategoriasList();
this.loadIdiomasList();
this.fillLibro();
}
/**
* Carga la lista de autores con los que tiene el libro
*/
private void loadAutorList() {
DefaultListModel<Autor> model = this.view.getAutoresModel();
model.clear();
@@ -62,6 +69,9 @@ public class LibroViewController extends BaseController {
}
}
/**
* Carga la lista de categorias con los que tiene el libro
*/
private void loadCategoriasList() {
DefaultListModel<Categoria> model = this.view.getCategoriasModel();
model.clear();
@@ -70,6 +80,9 @@ public class LibroViewController extends BaseController {
}
}
/**
* Carga la tabla de idiomas con los que tiene el libro
*/
private void loadIdiomasList() {
DefaultListModel<Idioma> model = this.view.getIdiomasModel();
model.clear();
@@ -78,6 +91,9 @@ public class LibroViewController extends BaseController {
}
}
/**
* Carga los datos del libro en los fields de la vista
*/
private void fillLibro() {
if (this.libro == null)
return;

View File

@@ -47,6 +47,9 @@ public class OrdenCompraAceptarController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getPrecioNetoField().getDocument().addDocumentListener((ChangeListener) e -> this.calculatePrice());
this.view.getAsignarButton().addActionListener(e -> this.asignar());
@@ -54,6 +57,10 @@ public class OrdenCompraAceptarController extends BaseController {
this.view.getVolverButton().addActionListener(e -> this.volver());
}
/**
* Calcula el iva y el precio bruto a partir del neto, luego de esto
* los muestra en la vista
*/
private void calculatePrice() {
try {
int neto = Integer.parseInt(this.view.getPrecioNetoField().getText());
@@ -67,12 +74,26 @@ public class OrdenCompraAceptarController extends BaseController {
}
}
/**
* Va a la vista de ORDEN_COMPRA_ASIGNAR
*/
private void asignar() {
OrdenCompraAsignarController controller = (OrdenCompraAsignarController) this.parentController.getCard(PanelName.ORDEN_COMPRA_ASIGNAR);
controller.setOrdenCompra(this.ordenCompra);
this.getParentController().showCard(PanelName.ORDEN_COMPRA_ASIGNAR);
}
/**
* Acepta la orden de compra
*
* Obtiene los valores asignados en la vista de ORDEN_COMPRA_ASIGNAR
*
* Luego valida todos los datos ingresados en la vista
*
* Tras esto crea una factura, la compra y actualiza la orden de compra a recibida
*
* Al terminar vuelve a la vista ORDEN_COMRPA_SEARCH
*/
private void save() {
OrdenCompraAsignarController controller = (OrdenCompraAsignarController) this.parentController.getCard(PanelName.ORDEN_COMPRA_ASIGNAR);
List<Ejemplar> ejemplares = controller.getEjemplares();
@@ -128,6 +149,9 @@ public class OrdenCompraAceptarController extends BaseController {
this.getParentController().showCard(PanelName.ORDEN_COMPRA_SEARCH);
}
/**
* Va a la vista de ORDERN_COMPRA_SEARCH
*/
private void volver() {
OrdenCompraAsignarController controller = (OrdenCompraAsignarController) this.parentController.getCard(PanelName.ORDEN_COMPRA_ASIGNAR);
controller.setEjemplares(null);
@@ -139,6 +163,11 @@ public class OrdenCompraAceptarController extends BaseController {
this.ordenCompra = ordenCompra;
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Pone el foco en el boton de buscar, y coloca valores por default en los campos de texto
*/
@Override
public void show() {
this.view.getAsignarButton().requestFocus();

View File

@@ -30,6 +30,10 @@ public class OrdenCompraAsignarController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getSiguienteButton().addActionListener(e -> this.siguiente());
this.view.getAnteriorButton().addActionListener(e -> this.anterior());
@@ -37,6 +41,9 @@ public class OrdenCompraAsignarController extends BaseController {
this.view.getSerieField().getDocument().addDocumentListener((ChangeListener) e -> this.saveCurrent());
}
/**
* Avanza la lista al siguiente ejemplar
*/
private void siguiente() {
if (this.currentIndex + 1 < this.ejemplares.size()) {
this.currentIndex++;
@@ -44,6 +51,9 @@ public class OrdenCompraAsignarController extends BaseController {
}
}
/**
* Retrocede la lista al anterior ejemplar
*/
private void anterior() {
if (this.currentIndex - 1 >= 0) {
this.currentIndex--;
@@ -51,17 +61,29 @@ public class OrdenCompraAsignarController extends BaseController {
}
}
/**
* Vuelve a la vista de ORDEN_COMPRA_ACEPTAR
*/
private void save() {
OrdenCompraAceptarController controller = (OrdenCompraAceptarController) this.parentController.getCard(PanelName.ORDEN_COMPRA_ACEPTAR);
controller.setOrdenCompra(this.ordenCompra);
this.parentController.showCard(PanelName.ORDEN_COMPRA_ACEPTAR);
}
/**
* Guarda el valor ingresado como serie al ejemplar correspondiente
*/
private void saveCurrent() {
String serie = this.view.getSerieField().getText();
this.ejemplares.get(this.currentIndex).setSerie(serie);
}
/**
* Actualiza el campo de libro y la serie con los datos de el index actual
* ademas de actualizar los labels indicando a que altura de la lista se va
* lo ultimo que hace es activar o desactivar los botones de siguiente y
* anterior segun corresponda
*/
private void actualizar() {
this.view.getLibroField().setText(this.ejemplares.get(this.currentIndex).getLibro().toString());
this.view.getSerieField().setText(this.ejemplares.get(this.currentIndex).getSerie());
@@ -71,6 +93,12 @@ public class OrdenCompraAsignarController extends BaseController {
this.view.getAnteriorButton().setEnabled(this.currentIndex > 0);
}
/**
* Metodo que se ejecuta al momento de mostrar la vista
*
* Llama a crear la lista de ejemplares si no existe y rellena los campos de
* la vista con el primero de la lista
*/
@Override
public void show() {
if (this.ejemplares == null) {
@@ -83,6 +111,10 @@ public class OrdenCompraAsignarController extends BaseController {
this.actualizar();
}
/**
* Crea una lista con ejemplares base para cada libro en la lista de la
* orden de compra
*/
private void createEjemplaresBase() {
this.ejemplares = new ArrayList<>();
List<Libro> libros = this.ordenCompra.getLibros();

View File

@@ -34,6 +34,9 @@ public class OrdenCompraCrearController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
public void setupListeners() {
this.view.getGuardarButton().addActionListener(e -> this.save());
this.view.getVolverButton().addActionListener(e -> this.volver());
@@ -41,6 +44,10 @@ public class OrdenCompraCrearController extends BaseController {
this.view.getAgregarButton().addActionListener(e -> this.agregar());
}
/**
* Guarda una nueva orden de compra, primero validando si todos los datos
* son correctos y luego de crearlo vuelve a la vista de ORDEN_COMPRA_SEARCH
*/
private void save() {
List<Libro> libros = this.view.getLibroTableModel().getRows();
ValidationResult librosValidation = this.validator.validateLibros(libros);
@@ -65,10 +72,16 @@ public class OrdenCompraCrearController extends BaseController {
this.parentController.showCard(PanelName.ORDEN_COMPRA_SEARCH);
}
/**
* Vuelve a la vista de ORDEN_COMPRA_SEARCH
*/
private void volver() {
this.parentController.showCard(PanelName.ORDEN_COMPRA_SEARCH);
}
/**
* Quita el libro seleccionado de la tabla
*/
private void remove() {
Libro libro = this.getSelectedLibro();
if (libro == null)
@@ -77,6 +90,10 @@ public class OrdenCompraCrearController extends BaseController {
this.view.getLibroTableModel().removeRow(libro);
}
/**
* Agrega el libro seleccionado en el combobox a la tabla, esto lo hace la
* cantidad de veces seleccionada en el spinner
*/
private void agregar() {
Libro libro = (Libro) this.view.getLibrosCombo().getSelectedItem();
if (libro == null)
@@ -88,6 +105,12 @@ public class OrdenCompraCrearController extends BaseController {
}
}
/**
* Obtiene el libro seleciconado en la tabla
*
* @return El libro seleccionado, si no hay ninguno seleccionado muestra un
* mensaje de error y retorna null
*/
private Libro getSelectedLibro() {
int selectedRow = this.view.getLibrosTable().getSelectedRow();
if (selectedRow == -1) {
@@ -102,6 +125,11 @@ public class OrdenCompraCrearController extends BaseController {
return this.view.getLibroTableModel().getRow(selectedRow);
}
/**
* Metodo que se ejecuta al momento de mostrar la vista
*
* Rellena los combo box y coloca valores por default en el resto de campos
*/
@Override
public void show() {
this.fillLibros();
@@ -112,11 +140,17 @@ public class OrdenCompraCrearController extends BaseController {
this.view.getLibrosTable().clearSelection();
}
/**
* Rellena el combobox de libros
*/
private void fillLibros() {
this.view.getLibrosComboModel().removeAllElements();
this.view.getLibrosComboModel().addAll(this.libroRepository.getAll());
}
/**
* Rellena el combobox de distribuidores
*/
private void fillDistribuidor() {
this.view.getDistribuidorComboModel().removeAllElements();
this.view.getDistribuidorComboModel().addAll(this.distribuidorRepository.getAll());

View File

@@ -23,6 +23,9 @@ public class OrdenCompraSearchController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getBuscarButton().addActionListener(e -> this.search());
this.view.getSearchField().addActionListener(e -> this.search());
@@ -33,12 +36,23 @@ public class OrdenCompraSearchController extends BaseController {
this.view.getAceptarButton().addActionListener(e -> this.aceptar());
}
/**
* Realiza una busqueda en los elementos del repositorios con el termino ingresado en el campo de busqueda como filtro
*/
private void search() {
String term = this.view.getSearchField().getText();
List<OrdenCompra> ordenCompras = this.repository.search(term);
this.loadComprarTable(ordenCompras);
}
/**
* Va a la vista de ORDEN_COMPRA_VIEW o a la vista de
* ORDEN_COMPRA_VIEW_ACEPTED dependiendo si la orden de compra
* seleccionada fue aceptada
*
*
* Si no hay ninguna orden de compra seleccionada no hace nada
*/
private void view() {
OrdenCompra ordenCompra = this.getSelectedOrdenCompra();
if (ordenCompra == null) {
@@ -56,6 +70,12 @@ public class OrdenCompraSearchController extends BaseController {
}
}
/**
* Cancela una orden de compra mostrando mensajes de error si es que la orden
* no esta en estado "En Curso"
*
* Luego de validar esto cambia el estado de la orden de compra a Cancelada
*/
private void cancelar() {
OrdenCompra ordenCompra = this.getSelectedOrdenCompra();
if (ordenCompra == null)
@@ -101,6 +121,10 @@ public class OrdenCompraSearchController extends BaseController {
}
}
/**
* Va a la vista de ORDEN_COMPRA_ACEPTAR, mostrando mensajes de error si
* la orden de compra no esta en estado "En Curso"
*/
private void aceptar() {
OrdenCompra ordenCompra = this.getSelectedOrdenCompra();
if (ordenCompra == null)
@@ -136,11 +160,22 @@ public class OrdenCompraSearchController extends BaseController {
this.getParentController().showCard(PanelName.ORDEN_COMPRA_ACEPTAR);
}
/**
* Carga la tabla de orden de compra con los entregados en la lista
*
* @param ordenCompra Lista de orden de compra con la que cargar la tabla
*/
private void loadComprarTable(List<OrdenCompra> ordenCompra) {
BaseTableModel<OrdenCompra> model = this.view.getModel();
model.setRows(ordenCompra);
}
/**
* Obtiene la orden de compra seleccionada
*
* @return La orden de compra seleccionada, si no hay ninguna seleccionada
* muestra un mensaje de error y retorna null
*/
private OrdenCompra getSelectedOrdenCompra() {
int selectedRow = this.view.getTable().getSelectedRow();
if (selectedRow == -1) {
@@ -156,17 +191,22 @@ public class OrdenCompraSearchController extends BaseController {
return this.view.getModel().getRow(selectedRow);
}
/**
* Metodo que se ejecuta al momento de mostrar la vista
*
* Carga los datos de la tabla, limpia la seleccion en esta, luego limpia el
* contenido del campo de busqueda y coloca el foco en el
*/
@Override
public void show() {
this.reload();
}
public void reload() {
this.loadComprarTable();
this.view.getSearchField().requestFocus();
this.view.getTable().clearSelection();
}
/**
* Carga la tabla de orden de compra con todos los elementos del repositorio
*/
private void loadComprarTable() {
List<OrdenCompra> ordenCompra = this.repository.getAll();
this.loadComprarTable(ordenCompra);

View File

@@ -18,6 +18,9 @@ public class OrdenCompraViewAceptedController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> this.parentController.showCard(PanelName.ORDEN_COMPRA_SEARCH));
}
@@ -26,6 +29,11 @@ public class OrdenCompraViewAceptedController extends BaseController {
this.ordenCompra = ordenCompra;
}
/**
* Metodo que se ejecuta cuando se muestra la vista
*
* Carga la vista con los datos de la orden de compra
*/
@Override
public void show() {
this.view.getDistribuidorField().setText(this.ordenCompra.getDistribuidor().getRut());
@@ -44,6 +52,9 @@ public class OrdenCompraViewAceptedController extends BaseController {
return this.view;
}
/**
* Carga la tabla con los ejemplares obtenidos del orden de compra
*/
private void fillTable() {
if (this.ordenCompra != null) {
this.view.getEjemplaresTableModel().setRows(this.ordenCompra.getCompra().getEjemplares());

View File

@@ -18,6 +18,9 @@ public class OrdenCompraViewController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> this.parentController.showCard(PanelName.ORDEN_COMPRA_SEARCH));
}
@@ -26,6 +29,11 @@ public class OrdenCompraViewController extends BaseController {
this.ordenCompra = ordenCompra;
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Carga el campo del distribuidor y la tabla
*/
@Override
public void show() {
this.view.getDistribuidorField().setText(this.ordenCompra.getDistribuidor().getRut());
@@ -37,6 +45,9 @@ public class OrdenCompraViewController extends BaseController {
return this.view;
}
/**
* Llena la tabla con los libros solicitados en la orden de compra
*/
private void fillTable() {
if (this.ordenCompra != null) {
this.view.getLibroTableModel().setRows(this.ordenCompra.getLibros());

View File

@@ -25,11 +25,19 @@ public class TrabajadorCreateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getGuardarButton().addActionListener(e -> this.save());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.TRABAJADOR_SEARCH));
}
/**
* Guarda un nuevo trabajador con los datos de la vista
* Valida los datos ingresados antes de guardarlo y luego de esto vuelve a
* la vista de TRABAJADOR_SEARCH
*/
private void save() {
String rut = this.view.getRutField().getText();
ValidationResult rutValidation = this.validator.validateRut(rut);
@@ -78,6 +86,11 @@ public class TrabajadorCreateController extends BaseController {
this.getParentController().showCard(PanelName.TRABAJADOR_SEARCH);
}
/**
* Metodo que se ejecuta al momento de mostrar la vista
*
* Coloca el foco en el campo de rut
*/
@Override
public void show() {
this.view.getRutField().requestFocus();

View File

@@ -43,6 +43,9 @@ public class TrabajadorSearchController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getCrearButton().addActionListener(e -> this.getParentController().showCard(PanelName.TRABAJADOR_CREATE));
this.view.getSearchField().addActionListener(e -> this.search());
@@ -52,12 +55,20 @@ public class TrabajadorSearchController extends BaseController {
this.view.getEliminarButton().addActionListener(e -> this.delete());
}
/**
* Realiza una busqueda en los elementos del repositorios con el termino ingresado en el campo de busqueda como filtro
*/
private void search() {
String term = this.view.getSearchField().getText();
List<Trabajador> trabajadores = this.trabajadorRespository.search(term);
this.loadTrabajadorTable(trabajadores);
}
/**
* Va a la vista de TRABAJADOR_VIEW para ver el trabajador seleccionado
*
* Si no hay trabajador seleccionado no hace nada
*/
private void view() {
Trabajador trabajador = this.getSelectedTrabajador();
if (trabajador != null) {
@@ -67,6 +78,11 @@ public class TrabajadorSearchController extends BaseController {
}
}
/**
* Va a la vista de TRABAJADOR_UPDATE para editar el trabajador seleccionado
*
* Si no hay ninguno seleccionado no hace nada
*/
private void edit() {
Trabajador trabajador = this.getSelectedTrabajador();
if (trabajador != null) {
@@ -76,6 +92,11 @@ public class TrabajadorSearchController extends BaseController {
}
}
/**
* Elimina el trabajador seleccionado, pide confirmacion del usuario antes de hacerlo
*
* Junto con eliminar el trabajador elimina todos sus direcciones, telefonos y correos.
*/
private void delete() {
Trabajador trabajador = this.getSelectedTrabajador();
if (trabajador == null)
@@ -96,14 +117,25 @@ public class TrabajadorSearchController extends BaseController {
this.telefonoRepository.delete(trabajador.getTelefonos());
this.correoRepository.delete(trabajador.getCorreos());
this.trabajadorRespository.delete(trabajador);
this.reload();
this.view.getTrabajadorModel().fireTableDataChanged();
}
/**
* Carga la tabla de trabajadores con la lista entregada
*
* @param trabajadores Lista de trabajadores con la que llenar la tabla
*/
private void loadTrabajadorTable(List<Trabajador> trabajadores) {
BaseTableModel<Trabajador> model = this.view.getTrabajadorModel();
model.setRows(trabajadores);
}
/**
* Obtiene el trabajador seleccionado
*
* @return El trabajador seleccionado, si no hay ninguno seleccionado muestra
* un mensaje de error y retorna null
*/
private Trabajador getSelectedTrabajador() {
int selectedRow = this.view.getTrabajadorTable().getSelectedRow();
if (selectedRow == -1) {
@@ -118,20 +150,27 @@ public class TrabajadorSearchController extends BaseController {
return this.view.getTrabajadorModel().getRow(selectedRow);
}
private void reload() {
this.loadTrabajadorTable();
this.view.getSearchField().requestFocus();
this.view.getTrabajadorTable().clearSelection();
}
/**
* Carga la tabla de trabajadores con todos los existentes en el respositorio
*/
private void loadTrabajadorTable() {
List<Trabajador> trabajadores = this.trabajadorRespository.getAll();
this.loadTrabajadorTable(trabajadores);
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Carga la tabla de trabajadores y limpia su seleccion, luego limpia el
* texto de el field de buscar y coloca el foco en el.
*/
@Override
public void show() {
this.reload();
this.loadTrabajadorTable();
this.view.getTrabajadorTable().clearSelection();
this.view.getSearchField().setText("");
this.view.getSearchField().requestFocus();
}
@Override

View File

@@ -26,11 +26,18 @@ public class TrabajadorUpdateController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getActualizarButton().addActionListener(e -> this.update());
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.TRABAJADOR_SEARCH));
}
/**
* Actualiza el trabajador, antes de eso valida todos los datos y tras
* terminar vuelve a la vista de TRABAJADOR_SEARCH
*/
private void update() {
String rut = this.view.getRutField().getText();
ValidationResult rutValidation = this.trabajadorValidator.validateRut(rut);
@@ -82,14 +89,22 @@ public class TrabajadorUpdateController extends BaseController {
this.trabajador = trabajador;
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Carga los datos del trabajador y coloca el foco en el campo de rut
*/
@Override
public void show() {
this.fillTrabajador();
this.view.getRutField().requestFocus();
}
/**
* Llena la vista con los datos del trabajador
*/
private void fillTrabajador() {
if (this.trabajadorRespository == null)
if (this.trabajador == null)
return;
this.view.getRutField().setText(this.trabajador.getRut());

View File

@@ -24,6 +24,9 @@ public class TrabajadorViewController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners de la vista
*/
private void setupListeners() {
this.view.getVolverButton().addActionListener(e -> this.getParentController().showCard(PanelName.TRABAJADOR_SEARCH));
this.view.getCorreosButton().addActionListener(e -> this.gotoCorreosView());
@@ -32,6 +35,9 @@ public class TrabajadorViewController extends BaseController {
this.view.getDireccionesButton().addActionListener(e -> this.gotoDireccionView());
}
/**
* Va a la vista de TRABAJADOR_CORREO_SEARCH
*/
private void gotoCorreosView() {
TrabajadorCorreoSearchController controller = (TrabajadorCorreoSearchController) this.getParentController()
.getCard(PanelName.TRABAJADOR_CORREO_SEARCH);
@@ -39,6 +45,12 @@ public class TrabajadorViewController extends BaseController {
this.getParentController().showCard(PanelName.TRABAJADOR_CORREO_SEARCH);
}
/**
* Va a a la vista de USUARIO_VIEW o USUARIO_CREATE dependiendo si el
* trabajador tiene un usuario o no
*
* Se le pide confirmacion al usuario si es que quiere crear la cuenta de usuario
*/
private void gotoUsuarioView() {
if (this.trabajador.getUsuario() == null) {
int result = JOptionPane.showConfirmDialog(
@@ -60,6 +72,9 @@ public class TrabajadorViewController extends BaseController {
}
}
/**
* Va a la vista de TRABAJADOR_TELEFONO_SEARCH
*/
private void gotoTelefonoView() {
TrabajadorTelefonoSearchController controller = (TrabajadorTelefonoSearchController) this.getParentController()
.getCard(PanelName.TRABAJADOR_TELEFONO_SEARCH);
@@ -67,6 +82,9 @@ public class TrabajadorViewController extends BaseController {
this.getParentController().showCard(PanelName.TRABAJADOR_TELEFONO_SEARCH);
}
/**
* Va a la vista de TRABAJADOR_DIRECCION_SEARCH
*/
private void gotoDireccionView() {
TrabajadorDireccionSearchController controller = (TrabajadorDireccionSearchController) this.getParentController()
.getCard(PanelName.TRABAJADOR_DIRECCION_SEARCH);
@@ -74,11 +92,19 @@ public class TrabajadorViewController extends BaseController {
this.getParentController().showCard(PanelName.TRABAJADOR_DIRECCION_SEARCH);
}
/**
* Metodo que se ejecuta al mostrar la vista
*
* Carga los datos del trabajador
*/
@Override
public void show() {
this.fillTrabajador();
}
/**
* Carga los datos del trabajador en la vista
*/
private void fillTrabajador() {
if (this.trabajador == null)
return;

View File

@@ -10,6 +10,9 @@ import xyz.danielcortes.models.Venta;
import xyz.danielcortes.repository.VentaRepository;
import xyz.danielcortes.views.vender.VenderSearchPanel;
/**
* Controlador para el panel <code>VenderSearchPanel</code>
*/
public class VenderSearchController extends BaseController {
private VenderSearchPanel view;
@@ -22,6 +25,9 @@ public class VenderSearchController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getBuscarButton().addActionListener(e -> this.search());
this.view.getBuscarField().addActionListener(e -> this.search());
@@ -29,16 +35,25 @@ public class VenderSearchController extends BaseController {
this.view.getVerButton().addActionListener(e -> this.ver());
}
/**
* Realiza una busqueda en las entidades que existen en el repositorio
*/
private void search() {
String term = this.view.getBuscarField().getText();
List<Venta> ventas = this.repository.search(term);
this.loadTable(ventas);
}
/**
* Llama a mostrar la vista de venta
*/
private void vender() {
this.parentController.showCard(PanelName.VENDER_VENDER);
}
/**
* Llama a la vista de ver, solo si existe una fila seleccionada en la tabla
*/
private void ver() {
Venta venta = this.getSelectedVenta();
if (venta == null)
@@ -49,10 +64,20 @@ public class VenderSearchController extends BaseController {
this.parentController.showCard(PanelName.VENDER_VER);
}
/**
* Carga la tabla con los elementos de una lista
*
* @param ventas Lista de ventas a poner a la tabla
*/
private void loadTable(List<Venta> ventas) {
this.view.getVentaTableModel().setRows(ventas);
}
/**
* Obtiene la venta seleccionada en la tabla, si no hay nada seleccionado muestra un mensaje de error
*
* @return Se retornara la venta seleccionada, si no hay ninguna seleccionada retornara null
*/
private Venta getSelectedVenta() {
int selectedRow = this.view.getVentasTable().getSelectedRow();
if (selectedRow == -1) {
@@ -68,13 +93,22 @@ public class VenderSearchController extends BaseController {
return this.view.getVentaTableModel().getRow(selectedRow);
}
/**
* Metodo a ejecutar cuando se va a mostrar la vista
* <p>
* En este caso se necesita cargar la tabla, limpar la seleccion en la tabla, limpiar el texto en el field de buscar y darle focus a ese campo
*/
@Override
public void show() {
this.loadTable();
this.view.getVentasTable().clearSelection();
this.view.getBuscarField().setText("");
this.view.getBuscarField().requestFocus();
}
/**
* Carga la tabla con todos los elementos que existen en el repositorio
*/
private void loadTable() {
List<Venta> ventas = this.repository.getAll();
this.loadTable(ventas);

View File

@@ -47,6 +47,9 @@ public class VenderVenderController extends BaseController {
this.setupListeners();
}
/**
* Crea los listeners para la vista
*/
private void setupListeners() {
this.view.getAgregarButton().addActionListener(e -> this.agregar());
this.view.getRemoverButton().addActionListener(e -> this.remover());
@@ -54,6 +57,11 @@ public class VenderVenderController extends BaseController {
this.view.getVenderButton().addActionListener(e -> this.vender());
}
/**
* Agrega el ejemplar seleccionado en el combobox a la tabla
* <p>
* Si no hay ninguno seleccionado o por alguna razon es nulo, mostrara un mensaje de error
*/
private void agregar() {
if (this.view.getEjemplaresComboModel().getSize() == 0) {
JOptionPane.showMessageDialog(
@@ -80,6 +88,11 @@ public class VenderVenderController extends BaseController {
this.updatePrice();
}
/**
* Remueve el ejemplar seleccionado en el combobox y lo agregara a la tabla
* <p>
* Si no hay ninguno seleccionado o no hay ninguno que agregar mostrara un mensaje de error
*/
private void remover() {
if (this.view.getEjemplaresTableModel().getRowCount() == 0) {
JOptionPane.showMessageDialog(
@@ -99,6 +112,9 @@ public class VenderVenderController extends BaseController {
this.updatePrice();
}
/**
* Realiza la venta despues de validar todos los datos Crea la venta, la boleta y cambia el estado de los ejemplares a "Vendido"
*/
private void vender() {
Cliente cliente = (Cliente) this.view.getClienteCombo().getSelectedItem();
ValidationResult clienteValidation = this.ventaValidator.validateCliente(cliente);
@@ -141,6 +157,9 @@ public class VenderVenderController extends BaseController {
this.parentController.showCard(PanelName.VENDER_SEARCH);
}
/**
* Actualiza el precio mostrado en los campos de precioNeto, Iva y PrecioBruto dado los ejemplares en la tabla
*/
private void updatePrice() {
this.precioNeto = (float) this.view.getEjemplaresTableModel().getRows().stream()
.mapToInt(ejemplar -> ejemplar.getLibro().getPrecioReferencia())
@@ -153,6 +172,9 @@ public class VenderVenderController extends BaseController {
this.view.getPrecioBrutoField().setText(String.valueOf(precioBruto));
}
/**
* Obtiene el ejemplar seleccionado en la tabla Si no hay ninguno seleccionado retorana null y muestra un mensaje de error
*/
private Ejemplar getSelectedEjemplar() {
int selectedRow = this.view.getEjemplaresTable().getSelectedRow();
if (selectedRow == -1) {
@@ -168,6 +190,12 @@ public class VenderVenderController extends BaseController {
return this.view.getEjemplaresTableModel().getRow(selectedRow);
}
/**
* Metodo a ejecutar cuando se muestra la vista
* <p>
* En este caso se necesita rellenar la lista de clientes, la lista de ejemplares, limpiar la tabla, colocar ceros en los campos de precio y
* resetear el precioNeto global
*/
@Override
public void show() {
this.fillCliente();
@@ -179,6 +207,9 @@ public class VenderVenderController extends BaseController {
this.precioNeto = 0;
}
/**
* Llena el combobox de los clientes con todos los existentes en el repositorio
*/
private void fillCliente() {
List<Cliente> cliente = this.clienteRepository.getAll();
this.view.getClienteComboModel().removeAllElements();
@@ -186,6 +217,9 @@ public class VenderVenderController extends BaseController {
this.view.getClienteCombo().setSelectedIndex(0);
}
/**
* Llena el combobox de ejemplares con todos los existentes en el repositorio
*/
private void fillEjemplares() {
Estado disponible = this.estadoRepository.getByNombre("Disponible");
List<Ejemplar> ejemplares = this.ejemplarRepository.getByEstado(disponible);

View File

@@ -18,10 +18,19 @@ public class VenderVerController extends BaseController {
this.setupListener();
}
/**
* Crea los listeners para la vista
*/
private void setupListener() {
this.view.getVolverButton().addActionListener(e -> this.parentController.showCard(PanelName.VENDER_SEARCH));
}
/**
* Metodo a ejecutar cuando se va a mostrar la vista
* <p>
* En este caso, cuando la venta no es nula, llena la tabla de ejemplares, coloca los precios, y rellena los datos de cliente, trabajador y folio,
* segun los datos que tiene guardada la venta
*/
@Override
public void show() {
if (this.venta != null) {

View File

@@ -228,4 +228,5 @@ public class ArrendarViewPanel extends BasePanel {
public JComponent $$$getRootComponent$$$() {
return contentPane;
}
}