001    /**
002     * Copyright 2004-2013 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.hr.time.calendar;
017    
018    import org.apache.commons.lang.StringUtils;
019    import org.kuali.hr.time.service.base.TkServiceLocator;
020    import org.kuali.hr.time.task.Task;
021    import org.kuali.hr.time.timeblock.TimeBlock;
022    import org.kuali.hr.time.timeblock.TimeHourDetail;
023    import org.kuali.hr.time.util.TKUtils;
024    import org.kuali.hr.time.util.TkConstants;
025    import org.kuali.hr.time.workarea.WorkArea;
026    
027    import java.util.ArrayList;
028    import java.util.List;
029    
030    /**
031     * Render helper to handle timeblock and time hour details display
032     */
033    public class TimeBlockRenderer {
034    
035        private TimeBlock timeBlock;
036        private List<TimeHourDetailRenderer> detailRenderers = new ArrayList<TimeHourDetailRenderer>();
037        private String assignmentClass;
038        private String lunchLabel;
039        private String lunchLabelId;
040    
041        public TimeBlockRenderer(TimeBlock b) {
042            this.timeBlock = b;
043            for (TimeHourDetail detail : timeBlock.getTimeHourDetails()) {
044                detailRenderers.add(new TimeHourDetailRenderer(detail));
045            }
046        }
047    
048        public List<TimeHourDetailRenderer> getDetailRenderers() {
049            return detailRenderers;
050        }
051    
052        public TimeBlock getTimeBlock() {
053            return timeBlock;
054        }
055    
056        public String getTimeRange() {
057            StringBuilder b = new StringBuilder();
058            if(StringUtils.equals(timeBlock.getEarnCodeType(), TkConstants.EARN_CODE_TIME)) {
059                b.append(timeBlock.getBeginTimeDisplay().toString(TkConstants.DT_BASIC_TIME_FORMAT));
060                b.append(" - ");
061                b.append(timeBlock.getEndTimeDisplay().toString(TkConstants.DT_BASIC_TIME_FORMAT));
062            }
063    
064            return b.toString();
065        }
066    
067        public String getTitle() {
068            StringBuilder b = new StringBuilder();
069    
070            WorkArea wa = TkServiceLocator.getWorkAreaService().getWorkArea(timeBlock.getWorkArea(), TKUtils.getCurrentDate());
071            b.append(wa.getDescription());
072            Task task = TkServiceLocator.getTaskService().getTask(timeBlock.getTask(), timeBlock.getBeginDate());
073            if(task != null) {
074                    // do not display task description if the task is the default one
075                    // default task is created in getTask() of TaskService
076                    if(!task.getDescription().equals(TkConstants.TASK_DEFAULT_DESP)) {
077                            b.append("-" + task.getDescription());
078                    }
079            }
080            return b.toString();
081        }
082    
083        public String getAmount() {
084            if(StringUtils.equals(timeBlock.getEarnCodeType(), TkConstants.EARN_CODE_AMOUNT)) {
085                    if(timeBlock.getAmount() != null) {
086                            return timeBlock.getEarnCode() + ": $" + timeBlock.getAmount().toString();
087                    } else {
088                            return timeBlock.getEarnCode() + ": $0.00";
089                    }
090                }
091            return "";
092        }
093    
094        public String getEarnCodeType() {
095            return timeBlock.getEarnCodeType();
096        }
097    
098            public String getAssignmentClass() {
099                    return assignmentClass;
100            }
101    
102            public void setAssignmentClass(String assignmentClass) {
103                    this.assignmentClass = assignmentClass;
104            }
105    
106            public String getLunchLabel() {
107                    return lunchLabel;
108            }
109    
110            public void setLunchLabel(String lunchLabel) {
111                    this.lunchLabel = lunchLabel;
112            }
113    
114        public String getLunchLabelId() {
115            return lunchLabelId;
116        }
117    
118        public void setLunchLabelId(String lunchLabelId) {
119            this.lunchLabelId = lunchLabelId;
120        }
121    }