//
//  FSCOutputTable.java
//  FSCApplet
//
//  Created by jason rusoff 
//

package FSC;

import java.util.*;
import javax.swing.table.AbstractTableModel;
import java.lang.reflect.Array;


class FSCTableModel extends AbstractTableModel {
    private String[] columnNames = {"Total Cost",  "Stock","Ratio","Time", "Price","Discount","Tax","Length" };
    private ArrayList data = new ArrayList(); 

    public int getColumnCount() {
        return columnNames.length;
    }
    public void removeAll(){
    
        data.clear();
        fireTableDataChanged();
        
    }
    public int getRowCount() {
        return data.size();
    }

    public String getColumnName(int col) {
        return columnNames[col];
    }


    public Object getValueAt(int row, int col) {
        String[] oneRow = (String[])data.get(row); // I could just cast to an array, methinks. 
        return oneRow[col];
    }


    public Class getColumnClass(int c) {
        return (String.class); // just strings, for now.
    }

    public void addNewRow(String newData[])
    {

        data.add(newData);
        fireTableRowsInserted( (data.size() -1),(data.size()-1));
        
    }   
    
    public void setValueAt(Object value, int row, int col) {
        if (row < data.size())
        {
            Array oneRow = (Array)data.get(row);
            oneRow.set(oneRow,col,value );
            data.set(row,oneRow);
        }else
        {
            Array oneRow = (Array)Array.newInstance(String.class,8);
            oneRow.set(oneRow,col,value);
            data.add(oneRow);
        }
        fireTableCellUpdated(row, col);// tell 'em to refresh
    }
}