1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.client.console.wicket.extensions.markup.html.repeater.data.table;
20
21 import java.util.ArrayList;
22 import java.util.Collection;
23 import java.util.Collections;
24 import java.util.List;
25 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
26 import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
27 import org.apache.wicket.markup.repeater.Item;
28 import org.apache.wicket.model.IModel;
29
30 public class CollectionPropertyColumn<T> extends PropertyColumn<T, String> {
31
32 private static final long serialVersionUID = 8077865338230121496L;
33
34 public CollectionPropertyColumn(final IModel<String> displayModel, final String propertyExpression) {
35 super(displayModel, propertyExpression);
36 }
37
38 @SuppressWarnings({ "unchecked", "rawtypes" })
39 @Override
40 public void populateItem(
41 final Item<ICellPopulator<T>> cellItem, final String componentId, final IModel<T> rowModel) {
42
43 Object value = getDataModel(rowModel).getObject();
44
45 if (value instanceof Collection) {
46 List values = new ArrayList((Collection) value);
47 Collections.sort(values);
48 cellItem.add(new CollectionPanel(componentId, values));
49 }
50 }
51 }