1 package org.argeo.tracker.ui;
2
3 import javax.jcr.Node;
4 import javax.jcr.Property;
5 import javax.jcr.Session;
6
7 import org.argeo.connect.AppService;
8 import org.argeo.connect.util.ConnectJcrUtils;
9 import org.argeo.connect.util.ConnectUtils;
10 import org.argeo.eclipse.ui.EclipseUiUtils;
11 import org.argeo.tracker.TrackerNames;
12 import org.argeo.tracker.TrackerTypes;
13 import org.eclipse.jface.viewers.LabelProvider;
14
15
16 public class TrackerSingleColLP extends LabelProvider {
17 private static final long serialVersionUID = -2197098090529153597L;
18 private final AppService appService;
19
20 public TrackerSingleColLP(AppService appService) {
21 this.appService = appService;
22 }
23
24 @Override
25 public String getText(Object element) {
26 Node person = (Node) element;
27 Session session = ConnectJcrUtils.getSession(person);
28 StringBuilder builder = new StringBuilder();
29
30 String trackerID = ConnectJcrUtils.get(person, TrackerNames.TRACKER_ID);
31 if (EclipseUiUtils.notEmpty(trackerID))
32 if (ConnectJcrUtils.isNodeType(person, TrackerTypes.TRACKER_TASK))
33 builder.append("#").append(trackerID).append(" ");
34 else if (ConnectJcrUtils.isNodeType(person, TrackerTypes.TRACKER_VERSION))
35 builder.append("v").append(trackerID).append(" ");
36
37 builder.append("<b>");
38 builder.append(ConnectJcrUtils.get(person, Property.JCR_TITLE));
39 builder.append("</b>");
40
41
42
43
44 String pid = ConnectJcrUtils.get(person, TrackerNames.TRACKER_PROJECT_UID);
45 if (EclipseUiUtils.notEmpty(pid)) {
46 Node project = appService.getEntityByUid(session, null, pid);
47 if (project != null) {
48 String pt = ConnectJcrUtils.get(project, Property.JCR_TITLE);
49 if (EclipseUiUtils.notEmpty(pt))
50 builder.append(" [").append(pt).append("] ");
51 }
52 }
53
54
55 String result = ConnectUtils.replaceAmpersand(builder.toString());
56 return result;
57 }
58
59 }