1 package org.kuali.rice.student.lookup.keyvalues; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import javax.xml.namespace.QName; 7 8 import org.kuali.rice.core.resourceloader.GlobalResourceLoader; 9 import org.kuali.rice.core.util.KeyLabelPair; 10 import org.kuali.rice.kns.lookup.keyvalues.KeyValuesBase; 11 import org.kuali.student.common.search.dto.SearchRequest; 12 import org.kuali.student.common.search.dto.SearchResult; 13 import org.kuali.student.common.search.dto.SearchResultCell; 14 import org.kuali.student.common.search.dto.SearchResultRow; 15 import org.kuali.student.core.organization.service.OrganizationService; 16 17 public class DepartmentValuesFinder extends KeyValuesBase { 18 private static OrganizationService organizationService; 19 20 protected static OrganizationService getOrganizationService() { 21 if (organizationService == null) { 22 organizationService = (OrganizationService) GlobalResourceLoader 23 .getService(new QName( 24 "http://student.kuali.org/wsdl/organization", 25 "OrganizationService")); 26 } 27 return organizationService; 28 } 29 30 @Override 31 public List getKeyValues() { 32 List<KeyLabelPair> orgEntities = new ArrayList<KeyLabelPair>(); 33 34 SearchRequest searchRequest = new SearchRequest("org.search.generic"); 35 List<String> orgTypes = new ArrayList<String>(); 36 orgTypes.add("kuali.org.Department"); 37 orgTypes.add("kuali.org.College"); 38 orgTypes.add("kuali.org.Division"); 39 orgTypes.add("kuali.org.Office"); 40 orgTypes.add("kuali.org.School"); 41 searchRequest.addParam("org.queryParam.orgOptionalType", orgTypes); 42 searchRequest.setSortColumn("org.resultColumn.orgOptionalLongName"); 43 try { 44 SearchResult results = getOrganizationService().search(searchRequest); 45 46 for (SearchResultRow result : results.getRows()) { 47 String orgId = null; 48 String orgLongName = null; 49 for (SearchResultCell resultCell : result.getCells()) { 50 if ("org.resultColumn.orgId".equals(resultCell.getKey())) { 51 orgId = resultCell.getValue(); 52 } else if ("org.resultColumn.orgOptionalLongName".equals(resultCell.getKey())) { 53 orgLongName = resultCell.getValue(); 54 } 55 } 56 orgEntities.add(new KeyLabelPair(orgId, orgLongName)); 57 } 58 59 return orgEntities; 60 } catch (Exception e) { 61 throw new RuntimeException(e); 62 } 63 } 64 }