package devopsdistilled.operp.client.items.models.impl; import java.util.LinkedList; import java.util.List; import java.util.Vector; import javax.swing.table.AbstractTableModel; import devopsdistilled.operp.server.data.entity.items.Item; public class ItemTableModel extends AbstractTableModel { private static final long serialVersionUID = 637464853861264641L; private final Vector<String> columnNames; List<Item> items; public ItemTableModel() { items = new LinkedList<>(); columnNames = new Vector<>(); columnNames.add("Item ID"); columnNames.add("Item Name"); columnNames.add("Product"); columnNames.add("Brand"); columnNames.add("Price"); } @Override public int getRowCount() { return items.size(); } @Override public int getColumnCount() { return columnNames.size(); } @Override public Object getValueAt(int rowIndex, int columnIndex) { Item selectedItem = items.get(rowIndex); switch (columnIndex) { case 0: return selectedItem.getItemId(); case 1: return selectedItem.getItemName(); case 2: return selectedItem.getProduct(); case 3: return selectedItem.getBrand(); case 4: return selectedItem.getPrice(); default: return null; } } @Override public String getColumnName(int column) { String columnName = null; if (column < columnNames.size() && (column >= 0)) { columnName = columnNames.elementAt(column); } return columnName; } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } public void setItems(List<Item> items) { this.items = items; fireTableDataChanged(); } public Item getItemAt(int rowIndex) { return items.get(rowIndex); } }