NumberFormatTextField agregado en el campo value de ingresos y formateado los campos integer en los tablemodels
This commit is contained in:
BIN
dist/caja.jar
vendored
BIN
dist/caja.jar
vendored
Binary file not shown.
BIN
dist/database.sqlite
vendored
BIN
dist/database.sqlite
vendored
Binary file not shown.
@@ -158,7 +158,7 @@ public class IngresosController {
|
||||
this.normalizeInputs();
|
||||
this.hideErrorMessages();
|
||||
|
||||
String valor = this.view.getValorField().getText();
|
||||
int valor = this.view.getValorField().getValue();
|
||||
String nroZInicial = this.view.getNroZInicialField().getText();
|
||||
String nroZFinal = this.view.getNroZFinalField().getText();
|
||||
String nroInicial = this.view.getNroInicialField().getText();
|
||||
@@ -208,7 +208,7 @@ public class IngresosController {
|
||||
this.editing = true;
|
||||
|
||||
this.view.getTipoCombo().setSelectedItem(ingreso.getTipoIngreso());
|
||||
this.view.getValorField().setText(String.valueOf(ingreso.getValor()));
|
||||
this.view.getValorField().setValue(ingreso.getValor());
|
||||
this.view.getNroZInicialField().setText(String.valueOf(ingreso.getNroZInicial()));
|
||||
this.view.getNroZFinalField().setText(String.valueOf(ingreso.getNroZFinal()));
|
||||
this.view.getNroInicialField().setText(String.valueOf(ingreso.getNroInicial()));
|
||||
@@ -221,7 +221,7 @@ public class IngresosController {
|
||||
*/
|
||||
private void updateTotalIngresos(){
|
||||
int total = this.ingresoDAO.getTotalIngreso(this.caja);
|
||||
this.view.getTotalIngresoField().setText(String.valueOf(total));
|
||||
this.view.getTotalIngresoField().setValue(total);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -243,12 +243,12 @@ public class IngresosController {
|
||||
* Guarda un ingreso tras llamar a validar el input
|
||||
* Luego de guardar agrega a la tabla el ingreso, llama a limpiar los campos de input y a actualizar el total de ingresos
|
||||
*/
|
||||
private void guardarIngreso(String valor, String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja){
|
||||
if(this.validateInput(valor, nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, caja)){
|
||||
private void guardarIngreso(int valor, String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja){
|
||||
if(this.validateInput(nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, caja)){
|
||||
Ingreso ingreso = new Ingreso();
|
||||
ingreso.setTipoIngreso(tipoIngreso);
|
||||
ingreso.setCaja(caja);
|
||||
ingreso.setValor(Integer.valueOf(valor));
|
||||
ingreso.setValor(valor);
|
||||
ingreso.setNroZInicial(nroZInicial);
|
||||
ingreso.setNroZFinal(nroZFinal);
|
||||
ingreso.setNroInicial(nroInicial);
|
||||
@@ -267,10 +267,10 @@ public class IngresosController {
|
||||
* Tras esto actualiza el ingreso en la tabla, llama a actualizar el total de ingresos, a limpiar los campos de input y a desactivar la flag de editing.
|
||||
*
|
||||
*/
|
||||
private void editarIngreso(String valor, String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja){
|
||||
if(this.validateInput(valor, nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, caja)){
|
||||
private void editarIngreso(int valor, String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja){
|
||||
if(this.validateInput(nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, caja)){
|
||||
this.editingIngreso.setTipoIngreso(tipoIngreso);
|
||||
this.editingIngreso.setValor(Integer.valueOf(valor));
|
||||
this.editingIngreso.setValor(valor);
|
||||
this.editingIngreso.setNroZInicial(nroZInicial);
|
||||
this.editingIngreso.setNroZFinal(nroZFinal);
|
||||
this.editingIngreso.setNroInicial(nroInicial);
|
||||
@@ -287,10 +287,9 @@ public class IngresosController {
|
||||
* Llama a los metodos necesarios para validar el input
|
||||
* @return true cuando todas las validaciones retoran true, si no, false
|
||||
*/
|
||||
private boolean validateInput(String valor, String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja) {
|
||||
private boolean validateInput(String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja) {
|
||||
this.hideErrorMessages();
|
||||
|
||||
boolean valorValidation = this.validateValor(valor);
|
||||
boolean nroZInicialValidation = this.validateNroZInicial(nroZInicial);
|
||||
boolean nroZFinalValidation = this.validateNroZFinal(nroZFinal);
|
||||
boolean nroInicialValidation = this.validateNroInicial(nroInicial);
|
||||
@@ -298,7 +297,7 @@ public class IngresosController {
|
||||
boolean tipoIngresoValidation = this.validateTipoIngreso(tipoIngreso);
|
||||
boolean cajaValidation = this.validateCaja(caja);
|
||||
|
||||
return valorValidation && tipoIngresoValidation && cajaValidation;
|
||||
return nroZInicialValidation && nroZFinalValidation && nroInicialValidation && nroFinalValidation && tipoIngresoValidation && cajaValidation;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -310,44 +309,6 @@ public class IngresosController {
|
||||
return caja != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Valida la variable valor contra los casos
|
||||
* - Es null
|
||||
* - Esta vacio
|
||||
* - Los caracteres no son solamente digitos
|
||||
* - El largo del string es mayor a 10
|
||||
* 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 validateValor(String valor) {
|
||||
if (valor == null) {
|
||||
this.view.getErrorValor().setText("Hubo un problema con los datos");
|
||||
this.view.getErrorValor().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (valor.isEmpty()) {
|
||||
this.view.getErrorValor().setText("El campo esta vacio");
|
||||
this.view.getErrorValor().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!valor.chars().allMatch(Character::isDigit)) {
|
||||
this.view.getErrorValor().setText("Deben ser numeros");
|
||||
this.view.getErrorValor().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
if(valor.length() > 10){
|
||||
this.view.getErrorValor().setText("El numero ingresado es demasiado largo");
|
||||
this.view.getErrorValor().setVisible(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Valida la variable nroInicial contra los casos
|
||||
* - Es null
|
||||
@@ -456,7 +417,6 @@ public class IngresosController {
|
||||
*/
|
||||
private void hideErrorMessages() {
|
||||
this.view.getErrorTipoIngreso().setVisible(false);
|
||||
this.view.getErrorValor().setVisible(false);
|
||||
this.view.getErrorNroZInicial().setVisible(false);
|
||||
this.view.getErrorNroZFinal().setVisible(false);
|
||||
this.view.getErrorNroInicial().setVisible(false);
|
||||
@@ -468,6 +428,7 @@ public class IngresosController {
|
||||
*/
|
||||
private void clearInputs() {
|
||||
this.view.getTipoCombo().setSelectedIndex(0);
|
||||
this.view.getValorField().setValue(0);
|
||||
this.view.getValorField().setText("");
|
||||
this.view.getNroZInicialField().setText("");
|
||||
this.view.getNroZFinalField().setText("");
|
||||
@@ -479,7 +440,6 @@ public class IngresosController {
|
||||
* Ejecuta un trim sobre todos los jtextfield
|
||||
*/
|
||||
private void normalizeInputs(){
|
||||
this.view.getValorField().setText(this.view.getValorField().getText().trim());
|
||||
this.view.getNroZInicialField().setText(this.view.getNroZInicialField().getText().trim());
|
||||
this.view.getNroZFinalField().setText(this.view.getNroZFinalField().getText().trim());
|
||||
this.view.getNroInicialField().setText(this.view.getNroInicialField().getText().trim());
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
<text value="Valor"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="375b0" class="javax.swing.JTextField" binding="valorField">
|
||||
<component id="482fa" class="danielcortes.xyz.views.components.NumberFormatedTextField" binding="valorField">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="150" height="-1"/>
|
||||
@@ -223,7 +223,7 @@
|
||||
<text value="Total Ingresos"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="d9f4a" class="javax.swing.JTextField" binding="totalIngresoField">
|
||||
<component id="69973" class="danielcortes.xyz.views.components.NumberFormatedTextField" binding="totalIngresoField">
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="150" height="-1"/>
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.intellij.uiDesigner.core.GridLayoutManager;
|
||||
import com.intellij.uiDesigner.core.Spacer;
|
||||
import danielcortes.xyz.models.tipo_ingreso.TipoIngreso;
|
||||
import danielcortes.xyz.views.components.IngresosTableModel;
|
||||
import danielcortes.xyz.views.components.NumberFormatedTextField;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.TableRowSorter;
|
||||
@@ -39,8 +40,8 @@ public class IngresosView {
|
||||
private JTable ingresosTable;
|
||||
private JButton guardarButton;
|
||||
private JButton eliminarButton;
|
||||
private JTextField totalIngresoField;
|
||||
private JTextField valorField;
|
||||
private NumberFormatedTextField totalIngresoField;
|
||||
private NumberFormatedTextField valorField;
|
||||
private JComboBox<TipoIngreso> tipoCombo;
|
||||
private JLabel errorTipoIngreso;
|
||||
private JLabel errorValor;
|
||||
@@ -85,11 +86,11 @@ public class IngresosView {
|
||||
return eliminarButton;
|
||||
}
|
||||
|
||||
public JTextField getTotalIngresoField() {
|
||||
public NumberFormatedTextField getTotalIngresoField() {
|
||||
return totalIngresoField;
|
||||
}
|
||||
|
||||
public JTextField getValorField() {
|
||||
public NumberFormatedTextField getValorField() {
|
||||
return valorField;
|
||||
}
|
||||
|
||||
@@ -183,7 +184,7 @@ public class IngresosView {
|
||||
final JLabel label2 = new JLabel();
|
||||
label2.setText("Valor");
|
||||
panel2.add(label2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
|
||||
valorField = new JTextField();
|
||||
valorField = new NumberFormatedTextField();
|
||||
panel2.add(valorField, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
|
||||
final JLabel label3 = new JLabel();
|
||||
label3.setText("N° Inicial");
|
||||
@@ -244,7 +245,7 @@ public class IngresosView {
|
||||
final JLabel label7 = new JLabel();
|
||||
label7.setText("Total Ingresos");
|
||||
panel4.add(label7, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
|
||||
totalIngresoField = new JTextField();
|
||||
totalIngresoField = new NumberFormatedTextField();
|
||||
totalIngresoField.setEditable(false);
|
||||
panel4.add(totalIngresoField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
|
||||
final JPanel panel5 = new JPanel();
|
||||
|
||||
@@ -27,16 +27,21 @@ package danielcortes.xyz.views.components;
|
||||
import danielcortes.xyz.models.egreso.Egreso;
|
||||
|
||||
import javax.swing.table.AbstractTableModel;
|
||||
import java.text.NumberFormat;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class EgresosTableModel extends AbstractTableModel {
|
||||
private String[] columns;
|
||||
private ArrayList<Egreso> rows;
|
||||
private NumberFormat nf;
|
||||
|
||||
|
||||
public EgresosTableModel(){
|
||||
super();
|
||||
this.columns = new String[]{"N°", "Descripcion", "Valor", "Tipo"};
|
||||
this.rows = new ArrayList<>();
|
||||
this.nf = NumberFormat.getIntegerInstance();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -86,7 +91,7 @@ public class EgresosTableModel extends AbstractTableModel {
|
||||
case 1:
|
||||
return rows.get(row).getDescripcion();
|
||||
case 2:
|
||||
return rows.get(row).getValor();
|
||||
return nf.format(rows.get(row).getValor());
|
||||
case 3:
|
||||
return rows.get(row).getTipoEgreso();
|
||||
}
|
||||
@@ -97,12 +102,4 @@ public class EgresosTableModel extends AbstractTableModel {
|
||||
return rows.get(row);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<?> getColumnClass(int columnIndex) {
|
||||
if (rows.isEmpty()) {
|
||||
return Object.class;
|
||||
}
|
||||
return getValueAt(0, columnIndex).getClass();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -27,16 +27,19 @@ package danielcortes.xyz.views.components;
|
||||
import danielcortes.xyz.models.ingreso.Ingreso;
|
||||
|
||||
import javax.swing.table.AbstractTableModel;
|
||||
import java.text.NumberFormat;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class IngresosTableModel extends AbstractTableModel {
|
||||
private String[] columns;
|
||||
private ArrayList<Ingreso> rows;
|
||||
private NumberFormat nf;
|
||||
|
||||
public IngresosTableModel() {
|
||||
super();
|
||||
this.columns = new String[]{"Valor","N° Z Inicial", "N° Z Final", "N° Inicial", "N° Final", "Tipo"};
|
||||
this.rows = new ArrayList<>();
|
||||
this.nf = NumberFormat.getIntegerInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -76,7 +79,7 @@ public class IngresosTableModel extends AbstractTableModel {
|
||||
public Object getValueAt(int row, int col) {
|
||||
switch (col) {
|
||||
case 0:
|
||||
return this.rows.get(row).getValor();
|
||||
return nf.format(this.rows.get(row).getValor());
|
||||
case 1:
|
||||
return this.rows.get(row).getNroZInicial();
|
||||
case 2:
|
||||
|
||||
Reference in New Issue
Block a user