@Override
public void processStrategy(final FacesContext context, final TablePropertyDescriptorRenderStrategy<?, ?> strategy) {
Validate.notNull(context, HtmlGeneratedTable.FACES_CONTEXT_NULL);
Validate.notNull(strategy, "Strategy may not be null.");
final HtmlColumn column = new HtmlColumn();
column.setHeader(strategy.getLabel());
final StyleClassResolver resolver = this.getValueOrDefault(PropertyKeys.STYLECLASS_RESOLVER, context,
new PropertyFileStyleClassResolver());
String tableFooter = JsfStyleClasses.TABLE_FOOTER.getDefaultValue();
String tableHeader = JsfStyleClasses.TABLE_HEADER.getDefaultValue();
String tableLink = JsfStyleClasses.TABLE_LINK.getDefaultValue();
if (!CheckUtil.isNull(resolver)) {
tableFooter = resolver.resolve(JsfStyleClasses.TABLE_FOOTER);
tableHeader = resolver.resolve(JsfStyleClasses.TABLE_HEADER);
tableLink = resolver.resolve(JsfStyleClasses.TABLE_LINK);
}
column.setFooterClass(tableFooter);
column.setHeaderClass(tableHeader);
if (CheckUtil.isNull(this.actionGenerated)) {
column.getChildren().add(strategy.getOutput());
} else {
this.processAction(context, strategy, column, tableLink);
}
this.builderGenerated.addColumn(column);
}