From b5720e75f1968e577073a9cbde1343cca064e6c3 Mon Sep 17 00:00:00 2001 From: Daniel Cortes Date: Thu, 20 Dec 2018 01:36:57 -0300 Subject: [PATCH] =?UTF-8?q?First!!=20:3=20Existe=20una=20peque=C3=B1a=20ba?= =?UTF-8?q?se=20de=20proyecto=20por=20ahora?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- caja.iml | 19 ++ database/create.sql | 28 +++ pom.xml | 40 ++++ src/main/java/danielcortes/xyz/Main.java | 38 ++++ .../xyz/controllers/CajaController.java | 78 ++++++++ .../xyz/data/MysqlConnection.java | 24 +++ .../java/danielcortes/xyz/models/Egreso.java | 67 +++++++ .../danielcortes/xyz/models/EgresoDAO.java | 14 ++ .../danielcortes/xyz/models/TipoEgreso.java | 33 ++++ .../xyz/models/TipoEgresoDAO.java | 12 ++ .../xyz/models/mysql/MysqlEgresoDAO.java | 172 ++++++++++++++++++ .../xyz/models/mysql/MysqlTipoEgresoDAO.java | 107 +++++++++++ .../java/danielcortes/xyz/views/CajaView.form | 129 +++++++++++++ .../java/danielcortes/xyz/views/CajaView.java | 64 +++++++ .../views/components/EgresosTableModel.java | 18 ++ .../xyz/views/components/TableModel.java | 20 ++ src/main/resources/data.template.json | 10 + 17 files changed, 873 insertions(+) create mode 100644 caja.iml create mode 100644 database/create.sql create mode 100644 pom.xml create mode 100644 src/main/java/danielcortes/xyz/Main.java create mode 100644 src/main/java/danielcortes/xyz/controllers/CajaController.java create mode 100644 src/main/java/danielcortes/xyz/data/MysqlConnection.java create mode 100644 src/main/java/danielcortes/xyz/models/Egreso.java create mode 100644 src/main/java/danielcortes/xyz/models/EgresoDAO.java create mode 100644 src/main/java/danielcortes/xyz/models/TipoEgreso.java create mode 100644 src/main/java/danielcortes/xyz/models/TipoEgresoDAO.java create mode 100644 src/main/java/danielcortes/xyz/models/mysql/MysqlEgresoDAO.java create mode 100644 src/main/java/danielcortes/xyz/models/mysql/MysqlTipoEgresoDAO.java create mode 100644 src/main/java/danielcortes/xyz/views/CajaView.form create mode 100644 src/main/java/danielcortes/xyz/views/CajaView.java create mode 100644 src/main/java/danielcortes/xyz/views/components/EgresosTableModel.java create mode 100644 src/main/java/danielcortes/xyz/views/components/TableModel.java create mode 100644 src/main/resources/data.template.json diff --git a/caja.iml b/caja.iml new file mode 100644 index 0000000..5ea7b5b --- /dev/null +++ b/caja.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/database/create.sql b/database/create.sql new file mode 100644 index 0000000..baa21f9 --- /dev/null +++ b/database/create.sql @@ -0,0 +1,28 @@ +drop table if exists egresos; +drop table if exists tipos_egreso; + +create table egresos( + id int(10) unsigned primary key auto_increment, + nro varchar(191) not null, + descripcion varchar(191) not null, + valor int(10) not null, + tipo_id int(10) not null +); + +create table tipos_egreso( + id int(10) unsigned primary key auto_increment, + nombre varchar(191) not null +); + +insert into tipos_egreso (nombre) values +('Guia Materia Prima'), +('Factura Materia Prima'), +('Factura Gastos Generales'), +('Pago Partime'), +('Gasto Menor Materia Prima'), +('Gasto General Sin Respaldo'), +('Gasto General Con Boleta'), +('Anticipo Arriendo'), +('Anticipo Personal'), +('Retiros Gerencia'), +('Otro'); diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..cea5533 --- /dev/null +++ b/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + danielcortes.xyz + caja + 0.1 + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + 8 + + + + + + + com.google.code.gson + gson + 2.8.5 + + + mysql + mysql-connector-java + 8.0.13 + + + com.github.lgooddatepicker + LGoodDatePicker + 10.3.1 + + + + diff --git a/src/main/java/danielcortes/xyz/Main.java b/src/main/java/danielcortes/xyz/Main.java new file mode 100644 index 0000000..305477c --- /dev/null +++ b/src/main/java/danielcortes/xyz/Main.java @@ -0,0 +1,38 @@ +package danielcortes.xyz; + +import danielcortes.xyz.controllers.CajaController; +import danielcortes.xyz.models.EgresoDAO; +import danielcortes.xyz.models.TipoEgresoDAO; +import danielcortes.xyz.models.mysql.MysqlEgresoDAO; +import danielcortes.xyz.models.mysql.MysqlTipoEgresoDAO; +import danielcortes.xyz.views.CajaView; + +import javax.swing.*; + +public class Main { + private static final String lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"; + public static void main(String[] args) { + try { + UIManager.setLookAndFeel(lookAndFeel); + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) { + e.printStackTrace(); + } + + + CajaView view = new CajaView(); + JFrame frame = new JFrame("Caja"); + frame.setContentPane(view.getUI()); + frame.setContentPane(view.contentPanel); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setSize(1300,700); + frame.setLocationRelativeTo(null); + + EgresoDAO egresoDAO = new MysqlEgresoDAO(); + TipoEgresoDAO tipoEgresoDAO = new MysqlTipoEgresoDAO(); + CajaController cajaController = new CajaController(view, egresoDAO, tipoEgresoDAO); + + frame.setVisible(true); + + + } +} diff --git a/src/main/java/danielcortes/xyz/controllers/CajaController.java b/src/main/java/danielcortes/xyz/controllers/CajaController.java new file mode 100644 index 0000000..3a65606 --- /dev/null +++ b/src/main/java/danielcortes/xyz/controllers/CajaController.java @@ -0,0 +1,78 @@ +package danielcortes.xyz.controllers; + +import danielcortes.xyz.models.Egreso; +import danielcortes.xyz.models.EgresoDAO; +import danielcortes.xyz.models.TipoEgreso; +import danielcortes.xyz.models.TipoEgresoDAO; +import danielcortes.xyz.views.CajaView; + +import javax.swing.*; + + +public class CajaController { + private CajaView view; + private EgresoDAO egresoDAO; + private TipoEgresoDAO tipoEgresoDAO; + + public CajaController(CajaView view, EgresoDAO egresoDAO, TipoEgresoDAO tipoEgresoDAO){ + this.view = view; + this.egresoDAO = egresoDAO; + this.tipoEgresoDAO = tipoEgresoDAO; + this.setUpViewEvents(); + this.fillEgresosTable(); + this.fillEgresosTipo(); + this.updateTotalEgresos(); + } + + private void fillEgresosTipo() { + JComboBox tipoCombo = view.getTipoCombo(); + for(TipoEgreso tipoEgreso : this.tipoEgresoDAO.findAll()){ + tipoCombo.addItem(tipoEgreso); + } + } + + private void fillEgresosTable() { + for(Egreso egreso: this.egresoDAO.findAll()){ + TipoEgreso tipoEgreso = tipoEgresoDAO.findById(egreso.getTipo()).get(0); + view.getEgresosTableModel().addRow(new String[]{ + egreso.getNro(), + egreso.getDescripcion(), + String.valueOf(egreso.getValor()), + tipoEgreso.getNombre() + }); + } + } + + private void setUpViewEvents(){ + this.view.getGuardarButton().addActionListener(e -> { + String nro = this.view.getNroField().getText(); + String descripcion = this.view.getDescripcionField().getText(); + String valor = this.view.getValorField().getText(); + TipoEgreso tipo = (TipoEgreso) this.view.getTipoCombo().getSelectedItem(); + this.addToTable(nro, descripcion, valor, tipo.getNombre()); + this.createEgreso(nro, descripcion, valor, tipo.getId()); + this.updateTotalEgresos(); + }); + + } + + private void addToTable(String nro, String descripcion, String valor, String tipo){ + view.getEgresosTableModel().addRow(new String[]{nro,descripcion,valor,tipo}); + } + + private void updateTotalEgresos(){ + int total = this.egresoDAO.getTotalEgreso(); + this.view.getTotalEgresosField().setText(String.valueOf(total)); + } + + private void createEgreso(String nro, String descripcion, String valor, int tipo){ + Egreso egreso = new Egreso(); + egreso.setValor(Integer.valueOf(valor)); + egreso.setDescripcion(descripcion); + egreso.setNro(nro); + egreso.setTipo(tipo); + egresoDAO.insertEgreso(egreso); + + } + +} diff --git a/src/main/java/danielcortes/xyz/data/MysqlConnection.java b/src/main/java/danielcortes/xyz/data/MysqlConnection.java new file mode 100644 index 0000000..65f925c --- /dev/null +++ b/src/main/java/danielcortes/xyz/data/MysqlConnection.java @@ -0,0 +1,24 @@ +package danielcortes.xyz.data; + +import com.mysql.cj.jdbc.MysqlDataSource; +import java.sql.*; + +public class MysqlConnection { + private MysqlDataSource dataSource; + + public MysqlConnection(){ + this.dataSource = new MysqlDataSource(); + this.configureDataSource(); + } + + private void configureDataSource(){ + this.dataSource.setUser("root"); + this.dataSource.setPassword("lagging"); + this.dataSource.setServerName("localhost"); + this.dataSource.setDatabaseName("caja"); + } + + public Connection getConnection() throws SQLException{ + return this.dataSource.getConnection(); + } +} diff --git a/src/main/java/danielcortes/xyz/models/Egreso.java b/src/main/java/danielcortes/xyz/models/Egreso.java new file mode 100644 index 0000000..3784f21 --- /dev/null +++ b/src/main/java/danielcortes/xyz/models/Egreso.java @@ -0,0 +1,67 @@ +package danielcortes.xyz.models; + +public class Egreso { + + private int id; + private String nro; + private String descripcion; + private int valor; + private int tipo; + + public Egreso(int id, String nro, String descripcion, int valor, int tipo) { + this.id = id; + this.nro = nro; + this.descripcion = descripcion; + this.valor = valor; + this.tipo = tipo; + } + + public Egreso(String nro, String descripcion, int valor, int tipo) { + this.nro = nro; + this.descripcion = descripcion; + this.valor = valor; + this.tipo = tipo; + } + + public Egreso(){} + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getNro() { + return nro; + } + + public void setNro(String nro) { + this.nro = nro; + } + + public String getDescripcion() { + return descripcion; + } + + public void setDescripcion(String descripcion) { + this.descripcion = descripcion; + } + + public int getValor() { + return valor; + } + + public void setValor(int valor) { + this.valor = valor; + } + + public int getTipo() { + return tipo; + } + + public void setTipo(int tipo) { + this.tipo = tipo; + } +} diff --git a/src/main/java/danielcortes/xyz/models/EgresoDAO.java b/src/main/java/danielcortes/xyz/models/EgresoDAO.java new file mode 100644 index 0000000..8a2f31d --- /dev/null +++ b/src/main/java/danielcortes/xyz/models/EgresoDAO.java @@ -0,0 +1,14 @@ +package danielcortes.xyz.models; + +import java.util.List; + +public interface EgresoDAO { + List findAll(); + List findById(int id); + List findByNro(String nro); + boolean insertEgreso(Egreso egreso); + boolean updateEgreso(Egreso egreso); + boolean deleteEgreso(Egreso egreso); + int getTotalEgreso(); + +} diff --git a/src/main/java/danielcortes/xyz/models/TipoEgreso.java b/src/main/java/danielcortes/xyz/models/TipoEgreso.java new file mode 100644 index 0000000..284d2eb --- /dev/null +++ b/src/main/java/danielcortes/xyz/models/TipoEgreso.java @@ -0,0 +1,33 @@ +package danielcortes.xyz.models; + +public class TipoEgreso { + private int id; + private String nombre; + + public TipoEgreso(int id, String nombre) { + this.nombre = nombre; + } + + public TipoEgreso(){} + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + @Override + public String toString(){ + return this.nombre; + } +} diff --git a/src/main/java/danielcortes/xyz/models/TipoEgresoDAO.java b/src/main/java/danielcortes/xyz/models/TipoEgresoDAO.java new file mode 100644 index 0000000..981d801 --- /dev/null +++ b/src/main/java/danielcortes/xyz/models/TipoEgresoDAO.java @@ -0,0 +1,12 @@ +package danielcortes.xyz.models; + +import java.util.List; + +public interface TipoEgresoDAO { + List findAll(); + List findById(int id); + List findByNombre(String nombre); + boolean insertTipoEgreso(TipoEgreso tipoEgreso); + boolean updateTipoEgreso(TipoEgreso tipoEgreso); + boolean deleteTipoEgreso(TipoEgreso tipoEgreso); +} diff --git a/src/main/java/danielcortes/xyz/models/mysql/MysqlEgresoDAO.java b/src/main/java/danielcortes/xyz/models/mysql/MysqlEgresoDAO.java new file mode 100644 index 0000000..aa9b8f6 --- /dev/null +++ b/src/main/java/danielcortes/xyz/models/mysql/MysqlEgresoDAO.java @@ -0,0 +1,172 @@ +package danielcortes.xyz.models.mysql; + +import danielcortes.xyz.data.MysqlConnection; +import danielcortes.xyz.models.Egreso; +import danielcortes.xyz.models.EgresoDAO; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class MysqlEgresoDAO implements EgresoDAO { + private MysqlConnection mysqlConnection; + + public MysqlEgresoDAO(){ + this.mysqlConnection = new MysqlConnection(); + } + + @Override + public List findAll() { + List egresoList = new ArrayList<>(); + try { + Connection conn = mysqlConnection.getConnection(); + PreparedStatement ps = conn.prepareStatement("select * from egresos"); + ResultSet rs = ps.executeQuery(); + + egresoList = this.EgresosFromResultSet(rs); + + rs.close(); + ps.close(); + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + return egresoList; + } + + @Override + public List findById(int id) { + List egresoList = new ArrayList<>(); + try { + Connection conn = mysqlConnection.getConnection(); + PreparedStatement ps = conn.prepareStatement("select * from egresos where id = ?"); + ps.setInt(1,id); + ResultSet rs = ps.executeQuery(); + + egresoList = this.EgresosFromResultSet(rs); + + rs.close(); + ps.close(); + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + return egresoList; + } + + @Override + public List findByNro(String nro) { + List egresoList = new ArrayList<>(); + try { + Connection conn = mysqlConnection.getConnection(); + PreparedStatement ps = conn.prepareStatement("select * from egresos where nro = ?"); + ps.setString(1, nro); + ResultSet rs = ps.executeQuery(); + + egresoList = this.EgresosFromResultSet(rs); + + rs.close(); + ps.close(); + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + return egresoList; + } + + @Override + public boolean insertEgreso(Egreso egreso) { + int updates; + try { + Connection conn = mysqlConnection.getConnection(); + PreparedStatement ps = conn.prepareStatement("insert into egresos (nro, descripcion, valor, tipo_id) values (?,?,?,?)"); + ps.setString(1,egreso.getNro()); + ps.setString(2,egreso.getDescripcion()); + ps.setInt(3,egreso.getValor()); + ps.setInt(4,egreso.getTipo()); + updates = ps.executeUpdate(); + ps.close(); + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + return false; + } + return updates > 0; + } + + @Override + public boolean updateEgreso(Egreso egreso) { + int updates; + try { + Connection conn = mysqlConnection.getConnection(); + PreparedStatement ps = conn.prepareStatement("update egresos set nro = ?, descripcion = ?, valor = ?, tipo_id = ? where id = ? "); + ps.setString(1,egreso.getNro()); + ps.setString(2,egreso.getDescripcion()); + ps.setInt(3,egreso.getValor()); + ps.setInt(4,egreso.getTipo()); + ps.setInt(5, egreso.getId()); + updates = ps.executeUpdate(); + ps.close(); + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + return false; + } + return updates > 0; + } + + @Override + public boolean deleteEgreso(Egreso egreso) { + int updates; + try { + Connection conn = mysqlConnection.getConnection(); + PreparedStatement ps = conn.prepareStatement("delete from egresos where id = ? "); + ps.setInt(1, egreso.getId()); + updates = ps.executeUpdate(); + ps.close(); + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + return false; + } + return updates > 0; + } + + @Override + public int getTotalEgreso() { + int total = 0; + try { + Connection conn = mysqlConnection.getConnection(); + PreparedStatement ps = conn.prepareStatement("select sum(valor) from egresos"); + ResultSet rs = ps.executeQuery(); + + rs.next(); + total = rs.getInt(1); + + rs.close(); + ps.close(); + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + return total; + } + + + private List EgresosFromResultSet(ResultSet rs) throws SQLException { + ArrayList egresoList = new ArrayList<>(); + while(rs.next()){ + Egreso egreso = new Egreso(); + egreso.setId(rs.getInt("id")); + egreso.setNro(rs.getString("nro")); + egreso.setDescripcion(rs.getString("descripcion")); + egreso.setValor(rs.getInt("valor")); + egreso.setTipo(rs.getInt("tipo_id")); + egresoList.add(egreso); + } + return egresoList; + } +} diff --git a/src/main/java/danielcortes/xyz/models/mysql/MysqlTipoEgresoDAO.java b/src/main/java/danielcortes/xyz/models/mysql/MysqlTipoEgresoDAO.java new file mode 100644 index 0000000..373ebd7 --- /dev/null +++ b/src/main/java/danielcortes/xyz/models/mysql/MysqlTipoEgresoDAO.java @@ -0,0 +1,107 @@ +package danielcortes.xyz.models.mysql; + +import danielcortes.xyz.data.MysqlConnection; +import danielcortes.xyz.models.Egreso; +import danielcortes.xyz.models.TipoEgreso; +import danielcortes.xyz.models.TipoEgresoDAO; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +public class MysqlTipoEgresoDAO implements TipoEgresoDAO { + private MysqlConnection mysqlConnection; + + public MysqlTipoEgresoDAO(){ + this.mysqlConnection = new MysqlConnection(); + } + + @Override + public List findAll() { + List tipoEgresoList = new ArrayList<>(); + try { + Connection conn = mysqlConnection.getConnection(); + PreparedStatement ps = conn.prepareStatement("select * from tipos_egreso"); + ResultSet rs = ps.executeQuery(); + + tipoEgresoList = this.TipoEgresoFromResultSet(rs); + + rs.close(); + ps.close(); + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + return tipoEgresoList; + } + + + @Override + public List findById(int id) { + List tipoEgresoList = new ArrayList<>(); + try { + Connection conn = mysqlConnection.getConnection(); + PreparedStatement ps = conn.prepareStatement("select * from tipos_egreso where id = ?"); + ps.setInt(1, id); + ResultSet rs = ps.executeQuery(); + + tipoEgresoList = this.TipoEgresoFromResultSet(rs); + + rs.close(); + ps.close(); + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + return tipoEgresoList; + } + + @Override + public List findByNombre(String nombre) { + List tipoEgresoList = new ArrayList<>(); + try { + Connection conn = mysqlConnection.getConnection(); + PreparedStatement ps = conn.prepareStatement("select * from tipos_egreso where nombre = ?"); + ps.setString(1, nombre); + ResultSet rs = ps.executeQuery(); + + tipoEgresoList = this.TipoEgresoFromResultSet(rs); + + rs.close(); + ps.close(); + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + return tipoEgresoList; + } + + @Override + public boolean insertTipoEgreso(TipoEgreso tipoEgreso) { + return false; + } + + @Override + public boolean updateTipoEgreso(TipoEgreso tipoEgreso) { + return false; + } + + @Override + public boolean deleteTipoEgreso(TipoEgreso tipoEgreso) { + return false; + } + + private List TipoEgresoFromResultSet(ResultSet rs) throws SQLException { + ArrayList tipoEgresoList = new ArrayList<>(); + while(rs.next()){ + TipoEgreso tipoEgreso = new TipoEgreso(); + tipoEgreso.setId(rs.getInt("id")); + tipoEgreso.setNombre(rs.getString("nombre")); + tipoEgresoList.add(tipoEgreso); + } + return tipoEgresoList; + } +} diff --git a/src/main/java/danielcortes/xyz/views/CajaView.form b/src/main/java/danielcortes/xyz/views/CajaView.form new file mode 100644 index 0000000..9f266a7 --- /dev/null +++ b/src/main/java/danielcortes/xyz/views/CajaView.form @@ -0,0 +1,129 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/java/danielcortes/xyz/views/CajaView.java b/src/main/java/danielcortes/xyz/views/CajaView.java new file mode 100644 index 0000000..5e08118 --- /dev/null +++ b/src/main/java/danielcortes/xyz/views/CajaView.java @@ -0,0 +1,64 @@ +package danielcortes.xyz.views; + +import danielcortes.xyz.models.TipoEgreso; +import danielcortes.xyz.views.components.EgresosTableModel; + +import javax.swing.*; +import javax.swing.plaf.basic.BasicComboBoxRenderer; +import java.awt.*; + +public class CajaView { + public JPanel contentPanel; + private JPanel egresosPanel; + private JTable egresosTable; + private JButton guardarButton; + private JTextField valorField; + private JTextField descripcionField; + private JTextField nroField; + private JTextField totalEgresosField; + private JComboBox tipoCombo; + + private EgresosTableModel egresosTableModel; + + private void createUIComponents() { + createEgresosTable(); + } + + private void createEgresosTable() { + egresosTableModel = new EgresosTableModel(); + egresosTable = new JTable(egresosTableModel); + egresosTable.setAutoCreateRowSorter(true); + } + + public JPanel getUI() { + return contentPanel; + } + + public JButton getGuardarButton() { + return guardarButton; + } + + public JTextField getValorField() { + return valorField; + } + + public JTextField getDescripcionField() { + return descripcionField; + } + + public JTextField getNroField() { + return nroField; + } + + public JTextField getTotalEgresosField() { + return totalEgresosField; + } + + public JComboBox getTipoCombo() { + return tipoCombo; + } + + public EgresosTableModel getEgresosTableModel() { + return egresosTableModel; + } +} diff --git a/src/main/java/danielcortes/xyz/views/components/EgresosTableModel.java b/src/main/java/danielcortes/xyz/views/components/EgresosTableModel.java new file mode 100644 index 0000000..5e64805 --- /dev/null +++ b/src/main/java/danielcortes/xyz/views/components/EgresosTableModel.java @@ -0,0 +1,18 @@ +package danielcortes.xyz.views.components; + +public class EgresosTableModel extends TableModel{ + private String[] columns; + + public EgresosTableModel(){ + super(); + this.columns = new String[]{"N°", "Descripcion", "Valor", "Tipo"}; + } + + public String getColumnName(int col) { + return columns[col]; + } + + public int getColumnCount() { + return columns.length; + } +} diff --git a/src/main/java/danielcortes/xyz/views/components/TableModel.java b/src/main/java/danielcortes/xyz/views/components/TableModel.java new file mode 100644 index 0000000..ca9691e --- /dev/null +++ b/src/main/java/danielcortes/xyz/views/components/TableModel.java @@ -0,0 +1,20 @@ +package danielcortes.xyz.views.components; + +import javax.swing.table.AbstractTableModel; +import java.util.ArrayList; + +public abstract class TableModel extends AbstractTableModel { + private ArrayList rows = new ArrayList<>(); + public int getRowCount() { + return rows.size(); + } + + public void addRow(String[] data){ + rows.add(data); + this.fireTableRowsInserted(0,getRowCount()-1); + } + + public Object getValueAt(int row, int col) { + return rows.get(row)[col]; + } +} diff --git a/src/main/resources/data.template.json b/src/main/resources/data.template.json new file mode 100644 index 0000000..0a1ab36 --- /dev/null +++ b/src/main/resources/data.template.json @@ -0,0 +1,10 @@ +{ + "egresos": [ + { + "nro": "1", + "descripcion": "2", + "valor": 123, + "tipo": 1 + } + ] +} \ No newline at end of file