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.Objects;
22 import org.apache.commons.lang3.StringUtils;
23 import org.apache.wicket.AttributeModifier;
24 import org.apache.wicket.Component;
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.html.basic.Label;
28 import org.apache.wicket.markup.repeater.Item;
29 import org.apache.wicket.model.IModel;
30 import org.springframework.beans.BeanWrapper;
31 import org.springframework.beans.BeanWrapperImpl;
32
33
34
35
36 public class KeyPropertyColumn<T> extends PropertyColumn<T, String> {
37
38 private static final long serialVersionUID = 3527840552172947705L;
39
40 public KeyPropertyColumn(final IModel<String> displayModel, final String propertyExpression) {
41 super(displayModel, propertyExpression);
42 }
43
44 public KeyPropertyColumn(
45 final IModel<String> displayModel, final String sortProperty, final String propertyExpression) {
46
47 super(displayModel, sortProperty, propertyExpression);
48 }
49
50 @Override
51 public void populateItem(final Item<ICellPopulator<T>> item, final String componentId, final IModel<T> rowModel) {
52 BeanWrapper bwi = new BeanWrapperImpl(rowModel.getObject());
53 Object obj = bwi.getPropertyValue(getPropertyExpression());
54
55 item.add(new Label(componentId, StringUtils.EMPTY));
56 item.add(new AttributeModifier("title", Objects.requireNonNull(obj).toString()));
57 item.add(new AttributeModifier("class", "fa fa-key"));
58 item.add(new AttributeModifier("style", "display: table-cell; text-align: center;"));
59 }
60
61 @Override
62 public String getCssClass() {
63 return "keyColumn";
64 }
65
66 @Override
67 public Component getHeader(final String componentId) {
68 return super.getHeader(componentId).setEnabled(false).setVisible(false);
69 }
70
71 }