View Javadoc
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  /** Provide a single column label provider for person lists */
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  		// String dv = ConnectJcrUtils.getDateFormattedAsString(person,
41  		// ActivitiesNames.ACTIVITIES_ACTIVITY_DATE,
42  		// ConnectUiConstants.DEFAULT_DATE_FORMAT);
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  		// TODO add manager and due date
55  		String result = ConnectUtils.replaceAmpersand(builder.toString());
56  		return result;
57  	}
58  
59  }