1 package org.argeo.people.ui.providers;
2
3 import javax.jcr.Node;
4 import javax.jcr.Property;
5 import javax.jcr.RepositoryException;
6
7 import org.argeo.connect.util.ConnectJcrUtils;
8 import org.argeo.eclipse.ui.EclipseUiUtils;
9 import org.argeo.people.PeopleException;
10 import org.argeo.people.PeopleNames;
11 import org.argeo.people.PeopleService;
12 import org.eclipse.jface.viewers.ColumnLabelProvider;
13
14
15
16
17 public class GroupMembersLabelProvider extends ColumnLabelProvider implements PeopleNames {
18 private static final long serialVersionUID = -7480621656515913263L;
19
20 private PeopleService peopleService;
21
22 public GroupMembersLabelProvider(PeopleService peopleService) {
23 this.peopleService = peopleService;
24 }
25
26 @Override
27 public String getText(Object element) {
28 try {
29
30 Node position = (Node) element;
31
32 Node referencedEntity = peopleService.getEntityByUid(position.getSession(), null,
33 ConnectJcrUtils.get(position, PEOPLE_REF_UID));
34
35
36 StringBuilder builder = new StringBuilder();
37 builder.append("<b>");
38 builder.append(ConnectJcrUtils.get(referencedEntity, Property.JCR_TITLE));
39 builder.append("</b>");
40 String role = ConnectJcrUtils.get(position, PEOPLE_ROLE);
41 if (EclipseUiUtils.notEmpty(role))
42 builder.append(" [").append(role).append("]");
43 return builder.toString();
44 } catch (RepositoryException e) {
45 throw new PeopleException("Unable to get text for link", e);
46 }
47 }
48 }