View Javadoc

1   package com.atlassian.jira.web.action.admin;
2   
3   import java.util.Collection;
4   import java.util.Iterator;
5   
6   import org.apache.commons.collections.MultiHashMap;
7   import org.apache.commons.collections.MultiMap;
8   import org.ofbiz.core.entity.GenericValue;
9   
10  import com.atlassian.jira.config.ExtendedConstantsManager;
11  
12  public class IconPickerAddOn extends IconPicker {
13  
14  	protected ExtendedConstantsManager extendedConstantsManager;
15  
16  	private MultiMap issueConstants;
17  
18  	public IconPickerAddOn(ExtendedConstantsManager extendedConstantsManager) {
19  		super(extendedConstantsManager);
20  		this.extendedConstantsManager = extendedConstantsManager;
21  	}
22  
23  	public Collection getAssociatedImages(String imageLocation) {
24  		return (Collection) getIssueConstants().get(imageLocation);
25  	}
26  
27  	protected MultiMap getIssueConstants() {
28  		if (issueConstants == null) {
29  			issueConstants = new MultiHashMap();
30  
31  			Collection fields = null;
32  			String fieldType = getFieldType();
33  			if (fieldType.equals("status"))
34  				fields = extendedConstantsManager.getStatuses();
35  			else if (fieldType.equals("issuetype"))
36  				fields = extendedConstantsManager.getIssueTypes();
37  			else if (fieldType.equals("priority"))
38  				fields = extendedConstantsManager.getPriorities();
39  			else if (fieldType.equals("subtasks"))
40  				fields = extendedConstantsManager.getSubTaskIssueTypes();
41  			else if (fieldType.equals("worklogType"))
42  				fields = extendedConstantsManager.getWorklogTypes();
43  			else {
44  				throw new IllegalArgumentException("Invalid field type selected.");
45  			}
46  
47  			for (Iterator iterator = fields.iterator(); iterator.hasNext();) {
48  				GenericValue issueConstantGV = (GenericValue) iterator.next();
49  				String associatedImage = issueConstantGV.getString("iconurl");
50  				issueConstants.put(associatedImage, extendedConstantsManager.getIssueConstant(issueConstantGV));
51  			}
52  		}
53  
54  		return issueConstants;
55  	}
56  
57  }