package org.nocket.component.table.columns;
import java.io.Serializable;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.IModel;
import org.nocket.component.table.GenericDataTablePanel;
import org.nocket.component.table.GenericDataTablePanelPropertyColumn;
import org.nocket.component.table.columns.renderer.ColumnRenderer;
// TODO: Auto-generated Javadoc
/**
* The Class CustomRenderingPropertyTableColumn.
*
* @param <T> the generic type
*/
public class CustomRenderingPropertyTableColumn<T> extends GenericDataTablePanelPropertyColumn<T> implements
Serializable {
/** The Constant serialVersionUID. */
private static final long serialVersionUID = 1L;
/** The renderer. */
private ColumnRenderer renderer;
/**
* Instantiates a new custom rendering property table column.
*
* @param displayModel the display model
* @param sortProperty the sort property
* @param propertyExpression the property expression
* @param genericDataTablePanel the generic data table panel
* @param renderer the renderer
*/
public CustomRenderingPropertyTableColumn(IModel<String> displayModel, String sortProperty,
String propertyExpression, GenericDataTablePanel genericDataTablePanel, ColumnRenderer renderer) {
super(displayModel, sortProperty, propertyExpression, genericDataTablePanel);
this.renderer = renderer;
}
/* (non-Javadoc)
* @see org.nocket.component.table.GenericDataTablePanelPropertyColumn#populateItem(org.apache.wicket.markup.repeater.Item, java.lang.String, org.apache.wicket.model.IModel)
*/
@Override
public void populateItem(Item<ICellPopulator<T>> cellItem, String componentId, IModel<T> rowModel) {
cellItem.add(renderer.getComponentForTableCell(componentId, rowModel, this));
}
}