1 package org
.argeo
.suite
.e4
.parts
;
4 import javax
.jcr
.Property
;
5 import javax
.jcr
.RepositoryException
;
6 import javax
.jcr
.nodetype
.NodeType
;
8 import org
.argeo
.activities
.ActivitiesService
;
9 import org
.argeo
.activities
.ActivitiesTypes
;
10 import org
.argeo
.activities
.ui
.ActivityListLabelProvider
;
11 import org
.argeo
.connect
.resources
.ResourcesService
;
12 import org
.argeo
.connect
.ui
.ConnectUiConstants
;
13 import org
.argeo
.connect
.ui
.SystemWorkbenchService
;
14 import org
.argeo
.connect
.ui
.util
.TagLabelProvider
;
15 import org
.argeo
.connect
.util
.ConnectUtils
;
16 import org
.argeo
.people
.PeopleException
;
17 import org
.argeo
.people
.PeopleNames
;
18 import org
.argeo
.people
.PeopleService
;
19 import org
.argeo
.people
.PeopleTypes
;
20 import org
.argeo
.people
.ui
.providers
.GroupLabelProvider
;
21 import org
.argeo
.people
.ui
.providers
.OrgListLabelProvider
;
22 import org
.argeo
.people
.ui
.providers
.PersonListLabelProvider
;
23 import org
.argeo
.tracker
.TrackerTypes
;
24 import org
.argeo
.tracker
.ui
.TrackerSingleColLP
;
25 import org
.eclipse
.jface
.viewers
.ColumnLabelProvider
;
26 import org
.eclipse
.swt
.graphics
.Image
;
29 * Provide a single column label provider for entity lists. Icon and displayed
30 * text vary with the element node type
32 public class EntitySingleColumnLabelProvider
extends ColumnLabelProvider
implements PeopleNames
{
33 private static final long serialVersionUID
= 3111885324210673320L;
35 private SystemWorkbenchService systemWorkbenchService
;
37 private ActivityListLabelProvider activityLP
;
38 private TrackerSingleColLP trackerLP
;
39 private OrgListLabelProvider orgLp
;
40 private PersonListLabelProvider personLp
;
41 private GroupLabelProvider groupLp
= new GroupLabelProvider(ConnectUiConstants
.LIST_TYPE_SMALL
);
42 private TagLabelProvider mlInstanceLp
;
44 public EntitySingleColumnLabelProvider(ResourcesService resourceService
, ActivitiesService activitiesService
,
45 PeopleService peopleService
, SystemWorkbenchService systemWorkbenchService
) {
46 this.systemWorkbenchService
= systemWorkbenchService
;
47 activityLP
= new ActivityListLabelProvider(activitiesService
);
48 trackerLP
= new TrackerSingleColLP(activitiesService
);
49 personLp
= new PersonListLabelProvider(peopleService
);
50 orgLp
= new OrgListLabelProvider(resourceService
, peopleService
);
51 mlInstanceLp
= new TagLabelProvider(resourceService
, ConnectUiConstants
.LIST_TYPE_SMALL
);
55 public String
getText(Object element
) {
57 Node entity
= (Node
) element
;
60 if (entity
.isNodeType(TrackerTypes
.TRACKER_TASK
) || entity
.isNodeType(TrackerTypes
.TRACKER_PROJECT
)
61 || entity
.isNodeType(TrackerTypes
.TRACKER_MILESTONE
))
62 result
= trackerLP
.getText(element
);
63 else if (entity
.isNodeType(ActivitiesTypes
.ACTIVITIES_ACTIVITY
))
64 result
= activityLP
.getText(element
);
65 else if (entity
.isNodeType(PeopleTypes
.PEOPLE_PERSON
))
66 result
= personLp
.getText(element
);
67 else if (entity
.isNodeType(PeopleTypes
.PEOPLE_ORG
))
68 result
= orgLp
.getText(element
);
69 else if (entity
.isNodeType(PeopleTypes
.PEOPLE_MAILING_LIST
))
70 result
= mlInstanceLp
.getText(element
);
71 else if (entity
.isNodeType(PeopleTypes
.PEOPLE_GROUP
))
72 result
= groupLp
.getText(element
);
73 else if (entity
.isNodeType(NodeType
.MIX_TITLE
) && entity
.hasProperty(Property
.JCR_TITLE
))
74 result
= entity
.getProperty(Property
.JCR_TITLE
).getString();
77 return ConnectUtils
.replaceAmpersand(result
);
78 } catch (RepositoryException re
) {
79 throw new PeopleException("Unable to get formatted value for node", re
);
83 /** Overwrite this method to provide project specific images */
85 public Image
getImage(Object element
) {
86 return systemWorkbenchService
.getIconForType((Node
) element
);