Module org.apache.wicket.extensions
Class LambdaColumn<T,S>
java.lang.Object
org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn<T,S>
org.apache.wicket.extensions.markup.html.repeater.data.table.LambdaColumn<T,S>
- Type Parameters:
T
- The Model object typeS
- the type of the sort property
- All Implemented Interfaces:
Serializable
,ICellPopulator<T>
,IExportableColumn<T,
,S> IColumn<T,
,S> IStyledColumn<T,
,S> IDetachable
,IClusterable
An implementation of column that adds a label to the cell whose model is determined by the
provided
SerializableFunction
that is evaluated against the current row's model object
Example for a table of Contact
s:
columns[0] = new LambdaColumn(new Model<String>("First Name"), Contact::getFirstName);The above will attach a label to the cell which calls
#getFirstName()
for each displayed
contact.- See Also:
-
Constructor Summary
ConstructorDescriptionLambdaColumn
(IModel<String> displayModel, org.danekja.java.util.function.serializable.SerializableFunction<T, ?> function) Creates a column that is not sortable.LambdaColumn
(IModel<String> displayModel, S sortProperty, org.danekja.java.util.function.serializable.SerializableFunction<T, ?> function) Creates a property column that is also sortable. -
Method Summary
Modifier and TypeMethodDescriptionIModel<?>
getDataModel
(IModel<T> rowModel) Factory method for generating a model that will generated the displayed value.void
populateItem
(Item<ICellPopulator<T>> item, String componentId, IModel<T> rowModel) Method used to populate a cell in theDataGridView
Implementation MUST add a component to the cellItem using the component id provided by componentId argument, otherwise a WicketRuntimeException will be thrownMethods inherited from class org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn
detach, getCssClass, getDisplayModel, getHeader, getSortProperty
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn
getHeader, getHeaderColspan, getHeaderRowspan, getSortProperty, isSortable
Methods inherited from interface org.apache.wicket.model.IDetachable
detach
Methods inherited from interface org.apache.wicket.extensions.markup.html.repeater.data.table.export.IExportableColumn
getDisplayModel
-
Constructor Details
-
LambdaColumn
public LambdaColumn(IModel<String> displayModel, org.danekja.java.util.function.serializable.SerializableFunction<T, ?> function) Creates a column that is not sortable.- Parameters:
displayModel
- display modelfunction
- Wicket function to be applied to each row
-
LambdaColumn
public LambdaColumn(IModel<String> displayModel, S sortProperty, org.danekja.java.util.function.serializable.SerializableFunction<T, ?> function) Creates a property column that is also sortable.- Parameters:
displayModel
- display modelsortProperty
- sort propertyfunction
- Wicket function to be applied to each row
-
-
Method Details
-
populateItem
Description copied from interface:ICellPopulator
Method used to populate a cell in theDataGridView
Implementation MUST add a component to the cellItem using the component id provided by componentId argument, otherwise a WicketRuntimeException will be thrown- Specified by:
populateItem
in interfaceICellPopulator<T>
- Parameters:
item
- the item representing the current table cell being renderedcomponentId
- the id of the component used to render the cell (only one component should be added to the cell)rowModel
- the model of the row item being rendered. this model usually contains the model provided by the data provider.- See Also:
-
getDataModel
Factory method for generating a model that will generated the displayed value.- Specified by:
getDataModel
in interfaceIExportableColumn<T,
S> - Parameters:
rowModel
-- Returns:
- model
-