final List<ListColumnDescriptor<Pony, ?>> listColumnDescriptors = new ArrayList<ListColumnDescriptor<Pony, ?>>();
final ListColumnDescriptor<Pony, String> nameColumnDescriptor = new ListColumnDescriptor<Pony, String>();
nameColumnDescriptor.setValueProvider(new BeanValueProvider<Pony, String>("name"));
// nameColumnDescriptor.setHeaderCellRenderer(new StringHeaderCellRenderer("Name", "name"));
nameColumnDescriptor.setHeaderCellRenderer(new ComplexHeaderCellRenderer("Un tres grans nom ak ka ka", nameSearchField, "name"));
listColumnDescriptors.add(nameColumnDescriptor);
final ListColumnDescriptor<Pony, String> ageColumnDescriptor = new ListColumnDescriptor<Pony, String>("Age");
ageColumnDescriptor.setValueProvider(new BeanValueProvider<Pony, String>("age"));
// ageColumnDescriptor.setHeaderCellRenderer(new StringHeaderCellRenderer("Age", "age"));
ageColumnDescriptor.setHeaderCellRenderer(new ComplexHeaderCellRenderer("Age", ageSearchField, "age"));
listColumnDescriptors.add(ageColumnDescriptor);
final ListColumnDescriptor<Pony, String> raceColumnDescriptor = new ListColumnDescriptor<Pony, String>("Race");
raceColumnDescriptor.setValueProvider(new BeanValueProvider<Pony, String>("race"));
raceColumnDescriptor.setHeaderCellRenderer(new ComplexHeaderCellRenderer("Race", raceSearchFormField, "race"));
listColumnDescriptors.add(raceColumnDescriptor);
return listColumnDescriptors;
}