View Javadoc
1   package org.argeo.tracker.e4;
2   
3   import javax.jcr.Node;
4   import javax.jcr.RepositoryException;
5   
6   import org.argeo.connect.e4.AppE4Service;
7   import org.argeo.connect.ui.ConnectImages;
8   import org.argeo.tracker.TrackerException;
9   import org.argeo.tracker.TrackerTypes;
10  import org.argeo.tracker.ui.TrackerUiService;
11  import org.eclipse.swt.graphics.Image;
12  
13  /**
14   * Centralise here the definition of context specific parameters (for instance
15   * the name of the command to open editors so that it is easily extended by
16   * specific extensions
17   */
18  public class TrackerE4Service extends TrackerUiService implements AppE4Service {
19  
20  	@Override
21  	public String getEntityEditorId(Node entity) {
22  		try {
23  			if (entity.isNodeType(TrackerTypes.TRACKER_IT_PROJECT))
24  				return "org.argeo.suite.e4.partdescriptor.itProjectEditor";// ItProjectEditor.ID;
25  			else if (entity.isNodeType(TrackerTypes.TRACKER_PROJECT))
26  				return "org.argeo.suite.e4.partdescriptor.projectEditor";// ProjectEditor.ID;
27  			else if (entity.isNodeType(TrackerTypes.TRACKER_MILESTONE))
28  				return "org.argeo.suite.e4.partdescriptor.milestoneEditor";// MilestoneEditor.ID;
29  			else if (entity.isNodeType(TrackerTypes.TRACKER_COMPONENT)
30  					|| entity.isNodeType(TrackerTypes.TRACKER_VERSION))
31  				return null;// CategoryEditor.ID;
32  			else if (entity.isNodeType(TrackerTypes.TRACKER_ISSUE))
33  				return null;// IssueEditor.ID;
34  			else if (entity.isNodeType(TrackerTypes.TRACKER_TASK))
35  				return "org.argeo.suite.e4.partdescriptor.projectTaskEditor";// TaskEditor.ID;
36  		} catch (RepositoryException re) {
37  			throw new TrackerException("Unable to open editor for node " + entity, re);
38  		}
39  		// No specific editor found
40  		return null;
41  	}
42  
43  	@Override
44  	public String getSearchEntityEditorId(String nodeType) {
45  		if (nodeType.equals(TrackerTypes.TRACKER_PROJECT))
46  			return null;// AllProjectsEditor.ID;
47  		// No specific editor found
48  		return null;
49  	}
50  
51  	@Override
52  	public Image getIconForType(Node entity) {
53  		try {
54  			if (entity.isNodeType(TrackerTypes.TRACKER_ISSUE))
55  				return ConnectImages.ISSUE;
56  			else if (entity.isNodeType(TrackerTypes.TRACKER_TASK))
57  				return ConnectImages.TASK;
58  			else if (entity.isNodeType(TrackerTypes.TRACKER_PROJECT))
59  				return ConnectImages.PROJECT;
60  			else if (entity.isNodeType(TrackerTypes.TRACKER_MILESTONE))
61  				return ConnectImages.MILESTONE;
62  			else
63  				return super.getIconForType(entity);
64  		} catch (RepositoryException re) {
65  			throw new TrackerException("Unable to get image for node" + entity, re);
66  		}
67  	}
68  }