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 }