/*
*
*/
package ext.egantt.swing;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class JTableHelper
{
protected static class LocalTableModel extends DefaultTableModel
{
public Class getColumnClass(int columnIndex)
{
for(int i = 0; i < getRowCount(); i++)
{
Object value = getValueAt(i, columnIndex);
if(value != null)
return value.getClass();
}
return super.getColumnClass(columnIndex);
}
private static final long serialVersionUID = 0xa65466e944d21e37L;
protected LocalTableModel()
{
}
}
public JTableHelper()
{
}
public static TableModel createTableModel(Object rowData[][], Object columnNames[][])
{
DefaultTableModel model = new LocalTableModel();
for(int a = 0; a < columnNames.length; a++)
{
for(int b = 0; b < columnNames[a].length; b++)
model.addColumn(columnNames[a][b]);
}
for(int a = 0; a < rowData.length; a++){
model.addRow(rowData[a]);
}
return model;
}
public static Object[][] createColumnNames(TableModel model)
{
Object rowValues[][] = new Object[2][0];
rowValues[0] = new Object[model.getColumnCount() != 0 ? model.getColumnCount() - 1 : 0];
rowValues[1] = new Object[model.getColumnCount() != 0 ? 1 : 0];
for(int a = 0; a < model.getColumnCount() - 1; a++)
rowValues[0][a] = model.getColumnName(a);
if(rowValues[1].length != 0)
rowValues[1][0] = model.getColumnName(model.getColumnCount() - 1);
return rowValues;
}
}