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.List;
22 import java.util.Optional;
23 import org.apache.syncope.common.lib.Attr;
24 import org.apache.syncope.common.lib.to.ConnObject;
25 import org.apache.syncope.common.lib.types.SchemaType;
26 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
27 import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
28 import org.apache.wicket.markup.html.basic.Label;
29 import org.apache.wicket.markup.repeater.Item;
30 import org.apache.wicket.model.IModel;
31 import org.apache.wicket.model.ResourceModel;
32
33 public class ConnObjectAttrColumn extends AbstractColumn<ConnObject, String> {
34
35 private static final long serialVersionUID = 2624734332447371372L;
36
37 private final String name;
38
39 public ConnObjectAttrColumn(final String name, final SchemaType schemaType) {
40
41
42 super(new ResourceModel(name, name), schemaType.name() + '#' + name);
43 this.name = name;
44 }
45
46 @Override
47 public void populateItem(
48 final Item<ICellPopulator<ConnObject>> cellItem,
49 final String componentId,
50 final IModel<ConnObject> rowModel) {
51
52 Optional<Attr> attr = rowModel.getObject().getAttr(name);
53 List<String> values = attr.map(Attr::getValues).orElse(null);
54
55 if (values == null || values.isEmpty()) {
56 cellItem.add(new Label(componentId, ""));
57 } else if (values.size() == 1) {
58 cellItem.add(new Label(componentId, values.get(0)));
59 } else {
60 cellItem.add(new Label(componentId, values.toString()));
61 }
62 }
63 }