/* * MIT License * * Copyright (c) 2018-2019 Daniel Cortes * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ 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 rows; private NumberFormat nf; public EgresosTableModel() { super(); this.columns = new String[]{"N°", "Descripcion", "Valor", "Tipo"}; this.rows = new ArrayList<>(); this.nf = NumberFormat.getIntegerInstance(); } @Override public String getColumnName(int col) { return columns[col]; } @Override public int getColumnCount() { return columns.length; } @Override public int getRowCount() { return rows.size(); } public void addRow(Egreso egreso) { rows.add(egreso); this.fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1); } public void removeRow(int row) { this.rows.remove(row); this.fireTableRowsDeleted(row, row); } public void removeRows() { int rowCount = getRowCount(); if (rowCount > 0) { this.rows.clear(); this.fireTableRowsDeleted(0, rowCount - 1); } } public void setEgreso(int editingId, Egreso egreso) { this.rows.set(editingId, egreso); this.fireTableRowsUpdated(0, getRowCount() - 1); } @Override public Object getValueAt(int row, int col) { switch (col) { case 0: return rows.get(row).getNro(); case 1: return rows.get(row).getDescripcion(); case 2: return nf.format(rows.get(row).getValor()); case 3: return rows.get(row).getTipoEgreso(); } return null; } public Egreso getEgreso(int row) { return rows.get(row); } }