Se aplico el estilo de codigo de google :3
https://github.com/google/styleguide
This commit is contained in:
@@ -31,357 +31,356 @@ import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
|
||||
import danielcortes.xyz.models.tipo_egreso.TipoEgresoToStringWrapper;
|
||||
import danielcortes.xyz.views.EgresosView;
|
||||
import danielcortes.xyz.views.components.table_model.EgresosTableModel;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import javax.swing.AbstractAction;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.KeyStroke;
|
||||
|
||||
/**
|
||||
* Controlador el cual esta orientado a manejar la vista de EgresosView
|
||||
* Maneja su contenido y las acciones que esta realiza
|
||||
* Controlador el cual esta orientado a manejar la vista de EgresosView Maneja su contenido y las
|
||||
* acciones que esta realiza
|
||||
*/
|
||||
public class EgresosController extends BaseController{
|
||||
private EgresosView view;
|
||||
private Caja caja;
|
||||
public class EgresosController extends BaseController {
|
||||
|
||||
private int editingId;
|
||||
private boolean editing;
|
||||
private Egreso editingEgreso;
|
||||
private EgresosView view;
|
||||
private Caja caja;
|
||||
|
||||
/**
|
||||
* Crea el controlador
|
||||
* Al inicial ejecuta:
|
||||
* - Metodo que genera los eventos para la vista.
|
||||
* - Metodo que llena los tipos de egresos en la vista.
|
||||
* - Actualiza el estado de los botones.
|
||||
*/
|
||||
public EgresosController(EgresosView view) {
|
||||
this.view = view;
|
||||
this.setUpViewEvents();
|
||||
this.fillTipoEgresoCombo();
|
||||
this.updateButtonsEnabled();
|
||||
private int editingId;
|
||||
private boolean editing;
|
||||
private Egreso editingEgreso;
|
||||
|
||||
/**
|
||||
* Crea el controlador Al inicial ejecuta: - Metodo que genera los eventos para la vista. - Metodo
|
||||
* que llena los tipos de egresos en la vista. - Actualiza el estado de los botones.
|
||||
*/
|
||||
public EgresosController(EgresosView view) {
|
||||
this.view = view;
|
||||
this.setUpViewEvents();
|
||||
this.fillTipoEgresoCombo();
|
||||
this.updateButtonsEnabled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Guarda la caja entregada y actualiza los datos de la tabla de egresos y actualiza el field con
|
||||
* el total de egresos.
|
||||
*/
|
||||
public void updateCaja(Caja caja) {
|
||||
this.caja = caja;
|
||||
this.fillEgresosTable();
|
||||
this.updateTotalEgresos();
|
||||
}
|
||||
|
||||
/**
|
||||
* Rellena el ComboBox con los tipos de egresos disponibles
|
||||
*/
|
||||
private void fillTipoEgresoCombo() {
|
||||
JComboBox<TipoEgresoToStringWrapper> tipoCombo = view.getTipoCombo();
|
||||
for (TipoEgreso tipoEgreso : DAOManager.getTipoEgresoDAO().findAll()) {
|
||||
tipoCombo.addItem(new TipoEgresoToStringWrapper(tipoEgreso));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Guarda la caja entregada y actualiza los datos de la tabla de egresos y actualiza el field con el total de egresos.
|
||||
*/
|
||||
public void updateCaja(Caja caja) {
|
||||
this.caja = caja;
|
||||
this.fillEgresosTable();
|
||||
this.updateTotalEgresos();
|
||||
/**
|
||||
* Rellena la tabla de egresos con los egresos correspondientes a la caja seleccionada
|
||||
*/
|
||||
private void fillEgresosTable() {
|
||||
EgresosTableModel egresosTableModel = view.getEgresosTableModel();
|
||||
egresosTableModel.removeRows();
|
||||
for (Egreso egreso : DAOManager.getEgresoDAO().findByCaja(this.caja)) {
|
||||
egresosTableModel.addRow(egreso);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Rellena el ComboBox con los tipos de egresos disponibles
|
||||
*/
|
||||
private void fillTipoEgresoCombo() {
|
||||
JComboBox<TipoEgresoToStringWrapper> tipoCombo = view.getTipoCombo();
|
||||
for (TipoEgreso tipoEgreso : DAOManager.getTipoEgresoDAO().findAll()) {
|
||||
tipoCombo.addItem(new TipoEgresoToStringWrapper(tipoEgreso));
|
||||
/**
|
||||
* Asigna todos los eventos para la vista de egresos. - Cuando se apreta el boton de guardar o se
|
||||
* apreta enter en los fields de descripcion, nro, valor y tipo Se llama al metodo
|
||||
* guardarActionListener. - Cuando se apreta el boton de eliminar se llama al metodos
|
||||
* eliminarActionListener - Cuando se presiona editar o se realizan 2 clicks en la tabla de
|
||||
* egresos se llama a editarActionListener - Cuando se selecciona una fila en la tabla se llama a
|
||||
* updateButtonsEnabled
|
||||
*/
|
||||
private void setUpViewEvents() {
|
||||
moveTo(this.view.getNroField(), this.view.getDescripcionField());
|
||||
moveTo(this.view.getDescripcionField(), this.view.getValorField());
|
||||
moveTo(this.view.getValorField(), this.view.getTipoCombo());
|
||||
doAction(this.view.getTipoCombo(), "save", KeyStroke.getKeyStroke("ENTER"),
|
||||
e -> this.guardarActionListener());
|
||||
|
||||
this.view.getEgresosTable().getSelectionModel()
|
||||
.addListSelectionListener(e -> updateButtonsEnabled());
|
||||
this.view.getGuardarButton().addActionListener(e -> guardarActionListener());
|
||||
this.view.getEliminarButton().addActionListener(e -> eliminarActionListener());
|
||||
this.view.getEditarButton().addActionListener(e -> editarActionListener());
|
||||
|
||||
this.view.getEgresosTable().addMouseListener(new MouseAdapter() {
|
||||
public void mouseClicked(MouseEvent mouseEvent) {
|
||||
JTable table = (JTable) mouseEvent.getSource();
|
||||
if (mouseEvent.getClickCount() == 2 && table.getSelectedRow() != -1) {
|
||||
EgresosController.this.editarActionListener();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Realiza las preparaciones previas a guardar un egreso Primero llama a normalizar los inputs y a
|
||||
* ocultar los mensajes de error Luego si es que esta colocada la flag de editing se llama al
|
||||
* metodo editarEgreso y si no, se llama a guardarEgreso Al terminar esto, se llama a resetear el
|
||||
* focus en los inputs y a actualizar el total de egresos
|
||||
*/
|
||||
private void guardarActionListener() {
|
||||
this.normalizeInputs();
|
||||
this.hideErrorMessages();
|
||||
|
||||
String nro = this.view.getNroField().getText();
|
||||
String descripcion = this.view.getDescripcionField().getText();
|
||||
int valor = this.view.getValorField().getValue();
|
||||
TipoEgreso tipo = (TipoEgreso) this.view.getTipoCombo().getSelectedItem();
|
||||
|
||||
if (editing) {
|
||||
this.editarEgreso(nro, descripcion, valor, tipo, this.caja);
|
||||
} else {
|
||||
this.guardarEgreso(nro, descripcion, valor, tipo, this.caja);
|
||||
}
|
||||
this.resetFocus();
|
||||
}
|
||||
|
||||
/**
|
||||
* Realiza las acciones necesarias para eliminar un egreso Obtiene el egreso seleccionado y lo
|
||||
* elimina, luego llama a actualizar el total de egresos y a actualizar el estado de los botones.
|
||||
*/
|
||||
private void eliminarActionListener() {
|
||||
int selectedID = this.view.getEgresosTable().getSelectedRow();
|
||||
if (selectedID >= 0) {
|
||||
Egreso egreso = this.view.getEgresosTableModel().getEgreso(selectedID);
|
||||
this.view.getEgresosTableModel().removeRow(selectedID);
|
||||
DAOManager.getEgresoDAO().deleteEgreso(egreso);
|
||||
this.updateTotalEgresos();
|
||||
this.updateButtonsEnabled();
|
||||
this.resetFocus();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Realiza lo necesario para comenzar a editar un egreso Llama a esconder los mensajes de error.
|
||||
* Guarda globalmente en la clase el egreso que se esta editando, su id y una flag indicando que
|
||||
* se esta en modo editar. Ademas rellena los campos de input con los valores del egreso que se
|
||||
* esta editando.
|
||||
*/
|
||||
private void editarActionListener() {
|
||||
this.hideErrorMessages();
|
||||
|
||||
int selectedID = this.view.getEgresosTable().getSelectedRow();
|
||||
int selectedModelID = this.view.getEgresosTable().getRowSorter()
|
||||
.convertRowIndexToModel(selectedID);
|
||||
if (selectedModelID >= 0) {
|
||||
Egreso egreso = this.view.getEgresosTableModel().getEgreso(selectedModelID);
|
||||
|
||||
this.editingId = selectedModelID;
|
||||
this.editingEgreso = egreso;
|
||||
this.editing = true;
|
||||
|
||||
this.view.getNroField().setText(egreso.getNro());
|
||||
this.view.getDescripcionField().setText(egreso.getDescripcion());
|
||||
this.view.getValorField().setValue(egreso.getValor());
|
||||
this.view.getTipoCombo().setSelectedItem(egreso.getTipoEgreso());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtiene el total de egresos y los coloca en el campo de totalEgresosField.
|
||||
*/
|
||||
private void updateTotalEgresos() {
|
||||
int total = DAOManager.getEgresoDAO().getTotalEgreso(this.caja);
|
||||
this.view.getTotalEgresosField().setValue(total);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cuando se tiene seleccionada una fila de la tabla activa los botones de eliminar y editar Si no
|
||||
* esta seleccionada los desactiva
|
||||
*/
|
||||
private void updateButtonsEnabled() {
|
||||
if (this.view.getEgresosTable().getSelectedRow() >= 0) {
|
||||
this.view.getEliminarButton().setEnabled(true);
|
||||
this.view.getEditarButton().setEnabled(true);
|
||||
} else {
|
||||
this.view.getEliminarButton().setEnabled(false);
|
||||
this.view.getEditarButton().setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Guarda un egreso tras llamar a validar su input Luego de guardar, agrega el egreso a la tabla,
|
||||
* llama a actualizar el total de egresos y llama a limpiar a los inputs
|
||||
*/
|
||||
private void guardarEgreso(String nro, String descripcion, int valor, TipoEgreso tipo,
|
||||
Caja caja) {
|
||||
if (this.validateInput(nro, descripcion, tipo, caja)) {
|
||||
Egreso egreso = new Egreso();
|
||||
egreso.setValor(valor);
|
||||
egreso.setDescripcion(descripcion);
|
||||
egreso.setNro(nro);
|
||||
egreso.setTipoEgreso(tipo);
|
||||
egreso.setCaja(caja);
|
||||
DAOManager.getEgresoDAO().insertEgreso(egreso);
|
||||
this.view.getEgresosTableModel().addRow(egreso);
|
||||
this.updateTotalEgresos();
|
||||
this.clearInputs();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Actualiza un egreso tras llamar a validar su input Tras esto actualiza el egreso en la tabla,
|
||||
* llama a actualizar el total de egresos y a limpiar los inputs Finalmente setea la flag editing
|
||||
* a false
|
||||
*/
|
||||
private void editarEgreso(String nro, String descripcion, int valor, TipoEgreso tipo, Caja caja) {
|
||||
if (this.validateInput(nro, descripcion, tipo, caja)) {
|
||||
this.editingEgreso.setValor(valor);
|
||||
this.editingEgreso.setDescripcion(descripcion);
|
||||
this.editingEgreso.setNro(nro);
|
||||
this.editingEgreso.setTipoEgreso(tipo);
|
||||
DAOManager.getEgresoDAO().updateEgreso(this.editingEgreso);
|
||||
this.view.getEgresosTableModel().setEgreso(this.editingId, this.editingEgreso);
|
||||
this.updateTotalEgresos();
|
||||
this.clearInputs();
|
||||
this.editing = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* llama a los metodos necesarios para validar los inputs entregados
|
||||
*
|
||||
* @return true cuando todas las validaciones retoran true, si no, false
|
||||
*/
|
||||
private boolean validateInput(String nro, String descripcion, TipoEgreso tipoEgreso, Caja caja) {
|
||||
|
||||
boolean nroValidation = this.validateNro(nro);
|
||||
boolean descripcionValidation = this.validateDescripcion(descripcion);
|
||||
boolean tipoEgresoValidation = this.validateTipoEgreso(tipoEgreso);
|
||||
boolean cajaValidation = this.validateCaja(caja);
|
||||
|
||||
return nroValidation && descripcionValidation && tipoEgresoValidation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Valida la variable nro contra los casos - Es null - Esta vacio Cuando el primer caso sea true,
|
||||
* colocara un mensaje de error correspondiente en el jlabel correspondiente
|
||||
*
|
||||
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
|
||||
*/
|
||||
private boolean validateNro(String nro) {
|
||||
if (nro == null) {
|
||||
this.view.getErrorNumero().setText("Hubo un problema con los datos");
|
||||
this.view.getErrorNumero().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Rellena la tabla de egresos con los egresos correspondientes a la caja seleccionada
|
||||
*/
|
||||
private void fillEgresosTable() {
|
||||
EgresosTableModel egresosTableModel = view.getEgresosTableModel();
|
||||
egresosTableModel.removeRows();
|
||||
for (Egreso egreso : DAOManager.getEgresoDAO().findByCaja(this.caja)) {
|
||||
egresosTableModel.addRow(egreso);
|
||||
}
|
||||
nro = nro.trim();
|
||||
if (nro.isEmpty()) {
|
||||
this.view.getErrorNumero().setText("El campo esta vacio");
|
||||
this.view.getErrorNumero().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Valida la variable descripcion contra los casos - Es null - Esta vacio Cuando el primer caso
|
||||
* sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
|
||||
*
|
||||
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
|
||||
*/
|
||||
private boolean validateDescripcion(String descripcion) {
|
||||
if (descripcion == null) {
|
||||
this.view.getErrorDescripcion().setText("Hubo un problema con los datos");
|
||||
this.view.getErrorDescripcion().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Asigna todos los eventos para la vista de egresos.
|
||||
* - Cuando se apreta el boton de guardar o se apreta enter en los fields de descripcion, nro, valor y tipo
|
||||
* Se llama al metodo guardarActionListener.
|
||||
* - Cuando se apreta el boton de eliminar se llama al metodos eliminarActionListener
|
||||
* - Cuando se presiona editar o se realizan 2 clicks en la tabla de egresos se llama a editarActionListener
|
||||
* - Cuando se selecciona una fila en la tabla se llama a updateButtonsEnabled
|
||||
*/
|
||||
private void setUpViewEvents() {
|
||||
moveTo(this.view.getNroField(), this.view.getDescripcionField());
|
||||
moveTo(this.view.getDescripcionField(), this.view.getValorField());
|
||||
moveTo(this.view.getValorField(), this.view.getTipoCombo());
|
||||
doAction(this.view.getTipoCombo(), "save", KeyStroke.getKeyStroke("ENTER"), e -> this.guardarActionListener());
|
||||
if (descripcion.isEmpty()) {
|
||||
this.view.getErrorDescripcion().setText("El campo esta vacio");
|
||||
this.view.getErrorDescripcion().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
this.view.getEgresosTable().getSelectionModel().addListSelectionListener(e -> updateButtonsEnabled());
|
||||
this.view.getGuardarButton().addActionListener(e -> guardarActionListener());
|
||||
this.view.getEliminarButton().addActionListener(e -> eliminarActionListener());
|
||||
this.view.getEditarButton().addActionListener(e -> editarActionListener());
|
||||
/**
|
||||
* Valida la variable tipoEgreso contra los casos - Es null Cuando este caso sea true, colocara un
|
||||
* mensaje de error correspondiente en el jlabel correspondiente
|
||||
*
|
||||
* @return Si este caso es true se retornara false, si no, se retorna true
|
||||
*/
|
||||
private boolean validateTipoEgreso(TipoEgreso tipoEgreso) {
|
||||
if (tipoEgreso == null) {
|
||||
this.view.getErrorTipoEgreso().setText("Hubo un problema con los datos");
|
||||
this.view.getErrorTipoEgreso().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
this.view.getEgresosTable().addMouseListener(new MouseAdapter() {
|
||||
public void mouseClicked(MouseEvent mouseEvent) {
|
||||
JTable table = (JTable) mouseEvent.getSource();
|
||||
if (mouseEvent.getClickCount() == 2 && table.getSelectedRow() != -1) {
|
||||
EgresosController.this.editarActionListener();
|
||||
}
|
||||
}
|
||||
});
|
||||
/**
|
||||
* Valida la variable caja contra los casos - Es null
|
||||
*
|
||||
* @return Si este caso es true se retornara false, si no, se retorna true
|
||||
*/
|
||||
private boolean validateCaja(Caja caja) {
|
||||
return caja != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Esconde los mensajes de error en la ventana de egresos
|
||||
*/
|
||||
private void hideErrorMessages() {
|
||||
this.view.getErrorTipoEgreso().setVisible(false);
|
||||
this.view.getErrorDescripcion().setVisible(false);
|
||||
this.view.getErrorNumero().setVisible(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Vacia los campos de texto y selecciona la primera opcion en el jcombobox
|
||||
*/
|
||||
private void clearInputs() {
|
||||
this.view.getTipoCombo().setSelectedIndex(0);
|
||||
this.view.getNroField().setText("");
|
||||
this.view.getValorField().setValue(0);
|
||||
this.view.getValorField().setText("");
|
||||
this.view.getDescripcionField().setText("");
|
||||
}
|
||||
|
||||
/**
|
||||
* Ejecuta trim sobre todos los campos de texto
|
||||
*/
|
||||
private void normalizeInputs() {
|
||||
this.view.getNroField().setText(this.view.getNroField().getText().trim());
|
||||
this.view.getDescripcionField().setText(this.view.getDescripcionField().getText().trim());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Setea el focus en el campo nroField
|
||||
*/
|
||||
private void resetFocus() {
|
||||
this.view.getNroField().requestFocus();
|
||||
}
|
||||
|
||||
private class GuardarAction extends AbstractAction {
|
||||
|
||||
EgresosController controller;
|
||||
|
||||
GuardarAction(EgresosController controller) {
|
||||
this.controller = controller;
|
||||
}
|
||||
|
||||
/**
|
||||
* Realiza las preparaciones previas a guardar un egreso
|
||||
* Primero llama a normalizar los inputs y a ocultar los mensajes de error
|
||||
* Luego si es que esta colocada la flag de editing se llama al metodo editarEgreso y si no, se llama a guardarEgreso
|
||||
* Al terminar esto, se llama a resetear el focus en los inputs y a actualizar el total de egresos
|
||||
*/
|
||||
private void guardarActionListener() {
|
||||
this.normalizeInputs();
|
||||
this.hideErrorMessages();
|
||||
|
||||
String nro = this.view.getNroField().getText();
|
||||
String descripcion = this.view.getDescripcionField().getText();
|
||||
int valor = this.view.getValorField().getValue();
|
||||
TipoEgreso tipo = (TipoEgreso) this.view.getTipoCombo().getSelectedItem();
|
||||
|
||||
if (editing) {
|
||||
this.editarEgreso(nro, descripcion, valor, tipo, this.caja);
|
||||
} else {
|
||||
this.guardarEgreso(nro, descripcion, valor, tipo, this.caja);
|
||||
}
|
||||
this.resetFocus();
|
||||
}
|
||||
|
||||
/**
|
||||
* Realiza las acciones necesarias para eliminar un egreso
|
||||
* Obtiene el egreso seleccionado y lo elimina, luego llama a actualizar el total de egresos y a actualizar el estado de los botones.
|
||||
*/
|
||||
private void eliminarActionListener() {
|
||||
int selectedID = this.view.getEgresosTable().getSelectedRow();
|
||||
if (selectedID >= 0) {
|
||||
Egreso egreso = this.view.getEgresosTableModel().getEgreso(selectedID);
|
||||
this.view.getEgresosTableModel().removeRow(selectedID);
|
||||
DAOManager.getEgresoDAO().deleteEgreso(egreso);
|
||||
this.updateTotalEgresos();
|
||||
this.updateButtonsEnabled();
|
||||
this.resetFocus();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Realiza lo necesario para comenzar a editar un egreso
|
||||
* Llama a esconder los mensajes de error.
|
||||
* Guarda globalmente en la clase el egreso que se esta editando, su id y una flag indicando que se esta en modo editar.
|
||||
* Ademas rellena los campos de input con los valores del egreso que se esta editando.
|
||||
*/
|
||||
private void editarActionListener() {
|
||||
this.hideErrorMessages();
|
||||
|
||||
|
||||
int selectedID = this.view.getEgresosTable().getSelectedRow();
|
||||
int selectedModelID = this.view.getEgresosTable().getRowSorter().convertRowIndexToModel(selectedID);
|
||||
if (selectedModelID >= 0) {
|
||||
Egreso egreso = this.view.getEgresosTableModel().getEgreso(selectedModelID);
|
||||
|
||||
this.editingId = selectedModelID;
|
||||
this.editingEgreso = egreso;
|
||||
this.editing = true;
|
||||
|
||||
this.view.getNroField().setText(egreso.getNro());
|
||||
this.view.getDescripcionField().setText(egreso.getDescripcion());
|
||||
this.view.getValorField().setValue(egreso.getValor());
|
||||
this.view.getTipoCombo().setSelectedItem(egreso.getTipoEgreso());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtiene el total de egresos y los coloca en el campo de totalEgresosField.
|
||||
*/
|
||||
private void updateTotalEgresos() {
|
||||
int total = DAOManager.getEgresoDAO().getTotalEgreso(this.caja);
|
||||
this.view.getTotalEgresosField().setValue(total);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cuando se tiene seleccionada una fila de la tabla activa los botones de eliminar y editar
|
||||
* Si no esta seleccionada los desactiva
|
||||
*/
|
||||
private void updateButtonsEnabled() {
|
||||
if (this.view.getEgresosTable().getSelectedRow() >= 0) {
|
||||
this.view.getEliminarButton().setEnabled(true);
|
||||
this.view.getEditarButton().setEnabled(true);
|
||||
} else {
|
||||
this.view.getEliminarButton().setEnabled(false);
|
||||
this.view.getEditarButton().setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Guarda un egreso tras llamar a validar su input
|
||||
* Luego de guardar, agrega el egreso a la tabla, llama a actualizar el total de egresos y llama a limpiar a los inputs
|
||||
*/
|
||||
private void guardarEgreso(String nro, String descripcion, int valor, TipoEgreso tipo, Caja caja) {
|
||||
if (this.validateInput(nro, descripcion, tipo, caja)) {
|
||||
Egreso egreso = new Egreso();
|
||||
egreso.setValor(valor);
|
||||
egreso.setDescripcion(descripcion);
|
||||
egreso.setNro(nro);
|
||||
egreso.setTipoEgreso(tipo);
|
||||
egreso.setCaja(caja);
|
||||
DAOManager.getEgresoDAO().insertEgreso(egreso);
|
||||
this.view.getEgresosTableModel().addRow(egreso);
|
||||
this.updateTotalEgresos();
|
||||
this.clearInputs();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Actualiza un egreso tras llamar a validar su input
|
||||
* Tras esto actualiza el egreso en la tabla, llama a actualizar el total de egresos y a limpiar los inputs
|
||||
* Finalmente setea la flag editing a false
|
||||
*/
|
||||
private void editarEgreso(String nro, String descripcion, int valor, TipoEgreso tipo, Caja caja) {
|
||||
if (this.validateInput(nro, descripcion, tipo, caja)) {
|
||||
this.editingEgreso.setValor(valor);
|
||||
this.editingEgreso.setDescripcion(descripcion);
|
||||
this.editingEgreso.setNro(nro);
|
||||
this.editingEgreso.setTipoEgreso(tipo);
|
||||
DAOManager.getEgresoDAO().updateEgreso(this.editingEgreso);
|
||||
this.view.getEgresosTableModel().setEgreso(this.editingId, this.editingEgreso);
|
||||
this.updateTotalEgresos();
|
||||
this.clearInputs();
|
||||
this.editing = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* llama a los metodos necesarios para validar los inputs entregados
|
||||
*
|
||||
* @return true cuando todas las validaciones retoran true, si no, false
|
||||
*/
|
||||
private boolean validateInput(String nro, String descripcion, TipoEgreso tipoEgreso, Caja caja) {
|
||||
|
||||
boolean nroValidation = this.validateNro(nro);
|
||||
boolean descripcionValidation = this.validateDescripcion(descripcion);
|
||||
boolean tipoEgresoValidation = this.validateTipoEgreso(tipoEgreso);
|
||||
boolean cajaValidation = this.validateCaja(caja);
|
||||
|
||||
return nroValidation && descripcionValidation && tipoEgresoValidation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Valida la variable nro contra los casos
|
||||
* - Es null
|
||||
* - Esta vacio
|
||||
* Cuando el primer caso sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
|
||||
*
|
||||
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
|
||||
*/
|
||||
private boolean validateNro(String nro) {
|
||||
if (nro == null) {
|
||||
this.view.getErrorNumero().setText("Hubo un problema con los datos");
|
||||
this.view.getErrorNumero().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
nro = nro.trim();
|
||||
if (nro.isEmpty()) {
|
||||
this.view.getErrorNumero().setText("El campo esta vacio");
|
||||
this.view.getErrorNumero().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Valida la variable descripcion contra los casos
|
||||
* - Es null
|
||||
* - Esta vacio
|
||||
* Cuando el primer caso sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
|
||||
*
|
||||
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
|
||||
*/
|
||||
private boolean validateDescripcion(String descripcion) {
|
||||
if (descripcion == null) {
|
||||
this.view.getErrorDescripcion().setText("Hubo un problema con los datos");
|
||||
this.view.getErrorDescripcion().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (descripcion.isEmpty()) {
|
||||
this.view.getErrorDescripcion().setText("El campo esta vacio");
|
||||
this.view.getErrorDescripcion().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Valida la variable tipoEgreso contra los casos
|
||||
* - Es null
|
||||
* Cuando este caso sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
|
||||
*
|
||||
* @return Si este caso es true se retornara false, si no, se retorna true
|
||||
*/
|
||||
private boolean validateTipoEgreso(TipoEgreso tipoEgreso) {
|
||||
if (tipoEgreso == null) {
|
||||
this.view.getErrorTipoEgreso().setText("Hubo un problema con los datos");
|
||||
this.view.getErrorTipoEgreso().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Valida la variable caja contra los casos
|
||||
* - Es null
|
||||
*
|
||||
* @return Si este caso es true se retornara false, si no, se retorna true
|
||||
*/
|
||||
private boolean validateCaja(Caja caja) {
|
||||
return caja != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Esconde los mensajes de error en la ventana de egresos
|
||||
*/
|
||||
private void hideErrorMessages() {
|
||||
this.view.getErrorTipoEgreso().setVisible(false);
|
||||
this.view.getErrorDescripcion().setVisible(false);
|
||||
this.view.getErrorNumero().setVisible(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Vacia los campos de texto y selecciona la primera opcion en el jcombobox
|
||||
*/
|
||||
private void clearInputs() {
|
||||
this.view.getTipoCombo().setSelectedIndex(0);
|
||||
this.view.getNroField().setText("");
|
||||
this.view.getValorField().setValue(0);
|
||||
this.view.getValorField().setText("");
|
||||
this.view.getDescripcionField().setText("");
|
||||
}
|
||||
|
||||
/**
|
||||
* Ejecuta trim sobre todos los campos de texto
|
||||
*/
|
||||
private void normalizeInputs() {
|
||||
this.view.getNroField().setText(this.view.getNroField().getText().trim());
|
||||
this.view.getDescripcionField().setText(this.view.getDescripcionField().getText().trim());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Setea el focus en el campo nroField
|
||||
*/
|
||||
private void resetFocus() {
|
||||
this.view.getNroField().requestFocus();
|
||||
}
|
||||
|
||||
private class GuardarAction extends AbstractAction {
|
||||
EgresosController controller;
|
||||
|
||||
GuardarAction(EgresosController controller) {
|
||||
this.controller = controller;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
this.controller.guardarActionListener();
|
||||
}
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
this.controller.guardarActionListener();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user