package de.roboshock.gui.util.tablegui;

import java.util.List;

import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableColumnModel;

public abstract class RowBasedTableModel<E> extends AbstractTableModel implements ITableRowList<E> {
	List<E> rows;
	DefaultTableColumnModel columnModel;
	
	public RowBasedTableModel(List<E> rows, DefaultTableColumnModel columnModel) {
		this.rows = rows;
		this.columnModel = columnModel;
	}

	@Override
	public int getColumnCount() {
		return columnModel.getColumnCount();
	}

	@Override
	public int getRowCount() {
		return rows.size();
	}

    
    public boolean deleteRow(E row) {
    	return rows.remove(row);
    }

	public E getRow(int row) {
		return rows.get(row);
	}

	public void setRows(List<E> rows) {
		this.rows = rows;
	}
	
	public E getRowItem(int row) {
		return rows.get(row);
	}
}
