View Javadoc
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   * Provide a label provider for group members
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  			// Initialisation
30  			Node position = (Node) element;
31  			// Get referenced entity
32  			Node referencedEntity = peopleService.getEntityByUid(position.getSession(), null,
33  					ConnectJcrUtils.get(position, PEOPLE_REF_UID));
34  
35  			// Create HTML snippet
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  }