package org.rzo.yajsw.util;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.PropertyUtils;
import ca.odell.glazedlists.gui.TableFormat;
public class BeanTableFormat<E> implements TableFormat<E>
{
String[] _columnNames;
Map<Integer, String> _propertyNames = new HashMap<Integer, String>();
public BeanTableFormat(String[] propertyNames, String[] columnNames)
{
_columnNames = columnNames;
for (int i=0; i<propertyNames.length; i++)
_propertyNames.put(i, propertyNames[i]);
}
public int getColumnCount()
{
return _columnNames.length;
}
public String getColumnName(int i)
{
return _columnNames[i];
}
public Object getColumnValue(E obj, int i)
{
try
{
if (obj instanceof ObservableObject)
return PropertyUtils.getSimpleProperty(((ObservableObject)obj)._root, _propertyNames.get(i));
else
PropertyUtils.getSimpleProperty(obj, _propertyNames.get(i));
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
}