1 package org.argeo.connect.ui.util;
2
3 import static org.argeo.eclipse.ui.EclipseUiUtils.notEmpty;
4
5 import javax.jcr.Node;
6
7 import org.argeo.connect.UserAdminService;
8 import org.argeo.connect.util.ConnectJcrUtils;
9 import org.argeo.eclipse.ui.jcr.lists.SimpleJcrNodeLabelProvider;
10
11
12
13
14
15 public class UserNameLP extends SimpleJcrNodeLabelProvider {
16 private static final long serialVersionUID = 1L;
17
18 private String selectorName;
19 private UserAdminService userAdminService;
20
21 public UserNameLP(UserAdminService userAdminService, String selectorName, String propertyName) {
22 super(propertyName);
23 if (notEmpty(selectorName))
24 this.selectorName = selectorName;
25 this.userAdminService = userAdminService;
26 }
27
28 @Override
29 public String getText(Object element) {
30 Node currNode = ConnectJcrUtils.getNodeFromElement(element, selectorName);
31 String userId = super.getText(currNode);
32 String userName = null;
33 if (notEmpty(userId))
34 userName = userAdminService.getUserDisplayName(userId);
35 if (notEmpty(userName) && !userName.equals(userId))
36 return userName + " (" + userId + ")";
37 else
38 return userId;
39 }
40 }