1 package org.kuali.student.enrollment.class2.acal.service.impl; 2 3 import org.apache.commons.lang.StringUtils; 4 import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader; 5 import org.kuali.rice.krad.uif.UifParameters; 6 import org.kuali.rice.krad.uif.service.impl.ViewHelperServiceImpl; 7 import org.kuali.rice.krad.util.KRADConstants; 8 import org.kuali.student.r2.common.util.constants.AcademicCalendarServiceConstants; 9 import org.kuali.student.enrollment.acal.dto.AcademicCalendarInfo; 10 import org.kuali.student.enrollment.acal.dto.HolidayCalendarInfo; 11 import org.kuali.student.enrollment.acal.dto.TermInfo; 12 import org.kuali.student.enrollment.acal.service.AcademicCalendarService; 13 import org.kuali.student.enrollment.class2.acal.service.CalendarSearchViewHelperService; 14 import org.kuali.student.enrollment.class2.acal.util.CalendarConstants; 15 import org.kuali.student.enrollment.class2.acal.util.CalendarSearchViewHelperUtil; 16 import org.kuali.student.r2.common.dto.ContextInfo; 17 18 import javax.xml.namespace.QName; 19 import java.util.List; 20 import java.util.Properties; 21 22 public class CalendarSearchViewHelperServiceImpl extends ViewHelperServiceImpl implements CalendarSearchViewHelperService { 23 24 private transient AcademicCalendarService academicCalendarService; 25 26 public List<TermInfo> searchForTerms(String name, String year,ContextInfo context)throws Exception { 27 return CalendarSearchViewHelperUtil.searchForTerms(name,year,context,getAcademicCalendarService()); 28 } 29 30 public List<AcademicCalendarInfo> searchForAcademicCalendars(String name, String year,ContextInfo context)throws Exception { 31 return CalendarSearchViewHelperUtil.searchForAcademicCalendars(name,year,context,getAcademicCalendarService()); 32 } 33 34 public List<HolidayCalendarInfo> searchForHolidayCalendars(String name, String year,ContextInfo context)throws Exception { 35 return CalendarSearchViewHelperUtil.searchForHolidayCalendars(name,year,context,getAcademicCalendarService()); 36 } 37 38 public Properties buildTermURLParameters(TermInfo term, String methodToCall, boolean readOnlyView, ContextInfo context){ 39 40 String acalId = null; 41 try { 42 List<AcademicCalendarInfo> atps = getAcademicCalendarService().getAcademicCalendarsForTerm(term.getId(), context); 43 if (!atps.isEmpty()){ 44 acalId = atps.get(0).getId(); 45 } 46 } catch (Exception e) { 47 throw new RuntimeException(e); 48 } 49 50 Properties props = new Properties(); 51 props.put(KRADConstants.DISPATCH_REQUEST_PARAMETER, methodToCall); 52 props.put(CalendarConstants.CALENDAR_ID,acalId); 53 props.put(UifParameters.VIEW_ID, CalendarConstants.ACAL_VIEW); 54 props.put(CalendarConstants.PAGE_ID,CalendarConstants.ACADEMIC_CALENDAR_EDIT_PAGE); 55 props.put(CalendarConstants.SELECT_TAB,CalendarConstants.ACAL_TERM_TAB); 56 57 if (readOnlyView){ 58 props.put(CalendarConstants.READ_ONLY_VIEW,""+ true); 59 } 60 61 return props; 62 63 } 64 65 public Properties buildACalURLParameters(AcademicCalendarInfo acal, String methodToCall, boolean readOnlyView, ContextInfo context){ 66 67 Properties props = new Properties(); 68 props.put(KRADConstants.DISPATCH_REQUEST_PARAMETER, methodToCall); 69 props.put(CalendarConstants.CALENDAR_ID,acal.getId()); 70 props.put(UifParameters.VIEW_ID, CalendarConstants.ACAL_VIEW); 71 72 if (StringUtils.equals(methodToCall,CalendarConstants.AC_COPY_METHOD)){ 73 props.put(CalendarConstants.PAGE_ID,CalendarConstants.ACADEMIC_CALENDAR_COPY_PAGE); 74 } else { 75 props.put(CalendarConstants.PAGE_ID,CalendarConstants.ACADEMIC_CALENDAR_EDIT_PAGE); 76 } 77 78 if (readOnlyView){ 79 props.put(CalendarConstants.READ_ONLY_VIEW,""+ true); 80 } 81 82 return props; 83 84 } 85 86 public Properties buildHCalURLParameters(HolidayCalendarInfo hcInfo, String methodToCall, boolean readOnlyView, ContextInfo context){ 87 88 Properties props = new Properties(); 89 props.put(KRADConstants.DISPATCH_REQUEST_PARAMETER, methodToCall); 90 props.put(CalendarConstants.CALENDAR_ID, hcInfo.getId()); 91 props.put(UifParameters.VIEW_ID, CalendarConstants.HOLIDAYCALENDAR_FLOWVIEW); 92 93 if (StringUtils.equals(methodToCall,CalendarConstants.HC_COPY_METHOD)){ 94 props.put(CalendarConstants.PAGE_ID,CalendarConstants.HOLIDAYCALENDAR_COPYPAGE); 95 }else if (StringUtils.equals(methodToCall,CalendarConstants.HC_VIEW_METHOD) && readOnlyView){ 96 props.put(CalendarConstants.PAGE_ID,CalendarConstants.HOLIDAYCALENDAR_VIEWPAGE); 97 } else { 98 props.put(CalendarConstants.PAGE_ID,CalendarConstants.HOLIDAYCALENDAR_EDITPAGE); 99 } 100 101 return props; 102 103 } 104 105 protected AcademicCalendarService getAcademicCalendarService() { 106 if(academicCalendarService == null) { 107 academicCalendarService = (AcademicCalendarService) GlobalResourceLoader.getService(new QName(AcademicCalendarServiceConstants.NAMESPACE, AcademicCalendarServiceConstants.SERVICE_NAME_LOCAL_PART)); 108 } 109 return this.academicCalendarService; 110 } 111 }