1 package org
.argeo
.suite
.workbench
.internal
;
4 import javax
.jcr
.RepositoryException
;
6 import org
.argeo
.activities
.ActivitiesService
;
7 import org
.argeo
.activities
.ActivitiesTypes
;
8 import org
.argeo
.activities
.ui
.ActivityListLabelProvider
;
9 import org
.argeo
.connect
.resources
.ResourcesService
;
10 import org
.argeo
.connect
.ui
.ConnectUiConstants
;
11 import org
.argeo
.connect
.ui
.ConnectUiUtils
;
12 import org
.argeo
.connect
.ui
.util
.TagLabelProvider
;
13 import org
.argeo
.connect
.workbench
.SystemWorkbenchService
;
14 import org
.argeo
.people
.PeopleException
;
15 import org
.argeo
.people
.PeopleNames
;
16 import org
.argeo
.people
.PeopleService
;
17 import org
.argeo
.people
.PeopleTypes
;
18 import org
.argeo
.people
.workbench
.rap
.providers
.GroupLabelProvider
;
19 import org
.argeo
.people
.workbench
.rap
.providers
.OrgListLabelProvider
;
20 import org
.argeo
.people
.workbench
.rap
.providers
.PersonListLabelProvider
;
21 import org
.argeo
.tracker
.TrackerTypes
;
22 import org
.argeo
.tracker
.ui
.TrackerSingleColLP
;
23 import org
.eclipse
.jface
.viewers
.LabelProvider
;
24 import org
.eclipse
.swt
.graphics
.Image
;
27 * Provide a single column label provider for entity lists. Icon and displayed
28 * text vary with the element node type
30 public class EntitySingleColumnLabelProvider
extends LabelProvider
implements PeopleNames
{
31 private static final long serialVersionUID
= 3111885324210673320L;
33 private SystemWorkbenchService systemWorkbenchService
;
35 private ActivityListLabelProvider activityLP
;
36 private TrackerSingleColLP trackerLP
;
37 private OrgListLabelProvider orgLp
;
38 private PersonListLabelProvider personLp
;
39 private GroupLabelProvider groupLp
= new GroupLabelProvider(ConnectUiConstants
.LIST_TYPE_SMALL
);
40 private TagLabelProvider mlInstanceLp
;
42 public EntitySingleColumnLabelProvider(ResourcesService resourceService
, ActivitiesService activitiesService
,
43 PeopleService peopleService
, SystemWorkbenchService systemWorkbenchService
) {
44 this.systemWorkbenchService
= systemWorkbenchService
;
45 activityLP
= new ActivityListLabelProvider(activitiesService
);
46 trackerLP
= new TrackerSingleColLP(activitiesService
);
47 personLp
= new PersonListLabelProvider(peopleService
);
48 orgLp
= new OrgListLabelProvider(resourceService
, peopleService
);
49 mlInstanceLp
= new TagLabelProvider(resourceService
, ConnectUiConstants
.LIST_TYPE_SMALL
);
53 public String
getText(Object element
) {
55 Node entity
= (Node
) element
;
58 if (entity
.isNodeType(TrackerTypes
.TRACKER_TASK
) || entity
.isNodeType(TrackerTypes
.TRACKER_PROJECT
)
59 || entity
.isNodeType(TrackerTypes
.TRACKER_MILESTONE
))
60 result
= trackerLP
.getText(element
);
61 else if (entity
.isNodeType(ActivitiesTypes
.ACTIVITIES_ACTIVITY
))
62 result
= activityLP
.getText(element
);
63 else if (entity
.isNodeType(PeopleTypes
.PEOPLE_PERSON
))
64 result
= personLp
.getText(element
);
65 else if (entity
.isNodeType(PeopleTypes
.PEOPLE_ORG
))
66 result
= orgLp
.getText(element
);
67 else if (entity
.isNodeType(PeopleTypes
.PEOPLE_MAILING_LIST
))
68 result
= mlInstanceLp
.getText(element
);
69 else if (entity
.isNodeType(PeopleTypes
.PEOPLE_GROUP
))
70 result
= groupLp
.getText(element
);
73 return ConnectUiUtils
.replaceAmpersand(result
);
74 } catch (RepositoryException re
) {
75 throw new PeopleException("Unable to get formatted value for node", re
);
79 /** Overwrite this method to provide project specific images */
81 public Image
getImage(Object element
) {
82 return systemWorkbenchService
.getIconForType((Node
) element
);