1 package org.argeo.people.ui.providers;
2
3 import javax.jcr.Node;
4 import javax.jcr.RepositoryException;
5
6 import org.argeo.connect.resources.ResourcesService;
7 import org.argeo.connect.ui.ConnectUiConstants;
8 import org.argeo.connect.ui.SystemWorkbenchService;
9 import org.argeo.connect.ui.util.TagLabelProvider;
10 import org.argeo.connect.util.ConnectUtils;
11 import org.argeo.people.PeopleException;
12 import org.argeo.people.PeopleNames;
13 import org.argeo.people.PeopleService;
14 import org.argeo.people.PeopleTypes;
15 import org.eclipse.jface.viewers.LabelProvider;
16 import org.eclipse.swt.graphics.Image;
17
18
19
20
21
22 public class EntitySingleColumnLabelProvider extends LabelProvider implements PeopleNames {
23 private static final long serialVersionUID = -2613028516709467900L;
24
25 private SystemWorkbenchService systemWorkbenchService;
26
27 private OrgListLabelProvider orgLp;
28 private PersonListLabelProvider personLp;
29 private GroupLabelProvider groupLp = new GroupLabelProvider(ConnectUiConstants.LIST_TYPE_SMALL);
30 private TagLabelProvider mlInstanceLp;
31
32 public EntitySingleColumnLabelProvider(ResourcesService resourceService, PeopleService peopleService,
33 SystemWorkbenchService systemWorkbenchService) {
34 this.systemWorkbenchService = systemWorkbenchService;
35 personLp = new PersonListLabelProvider(peopleService);
36 orgLp = new OrgListLabelProvider(resourceService, peopleService);
37 mlInstanceLp = new TagLabelProvider(resourceService, ConnectUiConstants.LIST_TYPE_SMALL);
38 }
39
40 @Override
41 public String getText(Object element) {
42 try {
43 Node entity = (Node) element;
44 String result;
45 if (entity.isNodeType(PeopleTypes.PEOPLE_PERSON))
46 result = personLp.getText(element);
47 else if (entity.isNodeType(PeopleTypes.PEOPLE_ORG))
48 result = orgLp.getText(element);
49 else if (entity.isNodeType(PeopleTypes.PEOPLE_MAILING_LIST))
50 result = mlInstanceLp.getText(element);
51 else if (entity.isNodeType(PeopleTypes.PEOPLE_GROUP))
52 result = groupLp.getText(element);
53 else
54 result = "";
55 return ConnectUtils.replaceAmpersand(result);
56 } catch (RepositoryException re) {
57 throw new PeopleException("Unable to get formatted value for node", re);
58 }
59 }
60
61
62 @Override
63 public Image getImage(Object element) {
64 return systemWorkbenchService.getIconForType((Node) element);
65 }
66 }