package nl.helixsoft.gui.table; import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.swing.table.AbstractTableModel; public class ListTableModel<U> extends AbstractTableModel { private final TableRowAdapter<U> rowMapper; private final List<U> rows = new ArrayList<U>(); public String getColumnName(int col) { return rowMapper.getColumnName(col); } public void setList(Collection<U> rows) { this.rows.clear(); this.rows.addAll(rows); this.fireTableStructureChanged(); } public ListTableModel(Collection<U> rows, TableRowAdapter<U> rowMapper) { this.rowMapper = rowMapper; this.rows.addAll(rows); } @Override public int getColumnCount() { return rowMapper.getColumnCount(); } @Override public int getRowCount() { return rows.size(); } @Override public Object getValueAt(int rowIndex, int columnIndex) { return rowMapper.getCell(columnIndex, rows.get(rowIndex)); } public U getRow(int row) { return rows.get(row); } }