}
@Override
public void setComponentProperties(FacesContext context, UIComponent component) {
super.setComponentProperties(context, component);
Column column = ((Column) component);
setValueExpressionProperty(component, "value");
setValueExpressionProperty(component, "sortingExpression");
setValueExpressionProperty(component, "groupingExpression");
setConverterProperty(component, "converter");
setConverterProperty(component, "groupingValueConverter");
String sortingComparator = getPropertyValue("sortingComparator");
if (sortingComparator != null) {
ValueExpression comparatorExpression;
if (!isValueReference(sortingComparator)) {
if (CASE_INSENSITIVE_TEXT_COMPARATOR.equals(sortingComparator))
comparatorExpression = new CaseInsensitiveComparatorBinding();
else
throw new IllegalArgumentException("sortingComparator attribute should either be defined as binding or as \"" + CASE_INSENSITIVE_TEXT_COMPARATOR + "\", but it is defined as follows: " + sortingComparator);
} else {
comparatorExpression = createValueExpression(context, "sortingComparator", sortingComparator);
}
column.setSortingComparatorExpression(comparatorExpression);
}
setClassProperty(component, "type");
}