/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package app.starter.gui.swing;
import app.ArgumentsStartUp.core.AbstractParameter;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;
/**
*
* @author wara
*/
public class ParameterTableModel extends AbstractTableModel{
private Vector colName = new Vector();
private Vector rowData = new Vector();
public ParameterTableModel(String [] colName)
{
initColName(colName);
}
private void initColName(String [] colName)
{
for(int i=0;i<colName.length;i++)
this.colName.add(i, colName[i]);
}
@Override
public int getRowCount() {
return rowData.size();
}
@Override
public int getColumnCount() {
return colName.size();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return (((Vector) rowData.elementAt(rowIndex)).elementAt(columnIndex));
}
@Override
public String getColumnName(int col){
if (col<=getColumnCount()){
//System.out.println(colName.elementAt(col));
return (String)colName.elementAt(col);
}
return "";
}
@Override
public Class getColumnClass(int c){
return getValueAt(0,c).getClass();
}
@Override
public boolean isCellEditable(int row, int col){
if (col == 0) {
return false;
} else return true;//getValueAt(row,col) instanceof SingleValueParameter;
}
public void insertRow(AbstractParameter param){
Vector data = new Vector();
data.addElement(param.getOption());
data.addElement(new ObjectParameterForJTable(param));
rowData.add(data);
fireTableDataChanged();
}
public void insertRow(Vector<AbstractParameter> paramas){
if(paramas.firstElement() instanceof AbstractParameter){
for(int i=0;i<paramas.size();i++)
insertRow((AbstractParameter)paramas.get(i));
}
}
public Object getObject(Object obj){
for(int i=0;i<getRowCount();i++)
for(int j=0;j<getColumnCount();j++){
AbstractParameter tmp = (AbstractParameter)getValueAt(i, j);
if(tmp.getOption().equals( ((AbstractParameter)obj).getOption() ))
return tmp;
}
return null;
}
@Override
protected void finalize() throws Throwable {
super.finalize();
System.out.println(getClass().getCanonicalName()+" method Finalize !");
}
public void clear(){
rowData.clear();
}
}