1 package org.argeo.people.ui.providers;
2
3 import javax.jcr.Node;
4 import javax.jcr.RepositoryException;
5
6 import org.argeo.connect.util.ConnectJcrUtils;
7 import org.argeo.connect.util.ConnectUtils;
8 import org.argeo.eclipse.ui.EclipseUiUtils;
9 import org.argeo.people.PeopleException;
10 import org.argeo.people.PeopleNames;
11 import org.argeo.people.PeopleTypes;
12 import org.argeo.people.ui.PeopleMsg;
13 import org.eclipse.jface.viewers.ColumnLabelProvider;
14
15
16
17
18 public class RoleListLabelProvider extends ColumnLabelProvider implements PeopleNames {
19 private static final long serialVersionUID = 1L;
20
21 public RoleListLabelProvider() {
22 }
23
24 @Override
25 public String getText(Object element) {
26 try {
27 Node node = (Node) element;
28 Node link;
29 if (node.isNodeType(PeopleTypes.PEOPLE_POSITION)) {
30 link = node;
31 } else
32 throw new PeopleException("Unvalid node type. " + "Cannot display role information");
33
34 String pos = ConnectJcrUtils.get(link, PeopleNames.PEOPLE_ROLE);
35
36
37 StringBuilder builder = new StringBuilder();
38 if (EclipseUiUtils.notEmpty(pos))
39 builder.append("<b>").append(pos).append("</b> <br/>");
40
41
42 if (link.isNodeType(PeopleTypes.PEOPLE_JOB)) {
43 String dep = ConnectJcrUtils.get(link, PeopleNames.PEOPLE_DEPARTMENT);
44 if (EclipseUiUtils.notEmpty(dep))
45 builder.append(PeopleMsg.department.lead() + ": ").append(dep);
46
47 }
48 return ConnectUtils.replaceAmpersand(builder.toString());
49 } catch (RepositoryException re) {
50 throw new PeopleException("Cannot create organizations content", re);
51 }
52 }
53 }