View Javadoc
1   /**
2    * Copyright 2005-2015 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package edu.sampleu.kew.krad.form;
17  
18  import java.text.ParseException;
19  import java.text.SimpleDateFormat;
20  import java.util.Date;
21  import java.util.HashMap;
22  import java.util.Map;
23  
24  import org.kuali.rice.kew.stats.Stats;
25  import org.kuali.rice.kew.stats.web.StatsAction;
26  import org.kuali.rice.kew.api.KewApiConstants;
27  import org.kuali.rice.krad.util.GlobalVariables;
28  import org.kuali.rice.krad.web.form.UifFormBase;
29  
30  /**
31   * A Struts ActionForm for the {@link StatsAction}.
32   * 
33   * @see StatsAction
34   * 
35   * @author Kuali Rice Team (rice.collab@kuali.org)
36   */
37  public class StatsForm extends UifFormBase {
38  
39      private static final long serialVersionUID = 4587377779133823858L;
40      private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(StatsForm.class);
41      private static final String BEGIN_DATE = "begDate";
42      private static final String END_DATE = "endDate";
43  
44      public static final String DAY_TIME_UNIT = "DDD";
45      public static final String WEEK_TIME_UNIT = "WW";
46      public static final String MONTH_TIME_UNIT = "MM";
47      public static final String YEAR_TIME_UNIT = "YYYY";
48  
49      public static final String DEFAULT_BEGIN_DATE = "01/01/1900";
50      public static final String DEFAULT_END_DATE = "01/01/2400";
51      public static final String BEG_DAY_TIME = " 00:00";
52      public static final String END_DAY_TIME = " 23:59";
53      public static final String DATE_FORMAT = "MM/dd/yyyy";
54      public static final String TIME_FORMAT = " HH:mm";
55  
56      private Stats stats;
57      private String methodToCall = "";
58      private String avgActionsPerTimeUnit = DAY_TIME_UNIT;
59  
60      private String begDate;
61      private String endDate;
62  
63      private Date beginningDate;
64      private Date endingDate;
65  
66      // KULRICE-3137: Added a backLocation parameter similar to the one from lookups.
67      private String backLocation;
68  
69      public StatsForm() {
70          stats = new Stats();
71      }
72  
73      /**
74       * Retrieves the "returnLocation" parameter after calling "populate" on the superclass.
75       * 
76       * @see org.kuali.rice.krad.web.struts.form.KualiForm#populate(javax.servlet.http.HttpServletRequest)
77       */
78      //	@Override
79      //	public void populate(HttpServletRequest request) {
80      //		super.populate(request);
81      //		
82      //        if (getParameter(request, KRADConstants.RETURN_LOCATION_PARAMETER) != null) {
83      //            setBackLocation(getParameter(request, KRADConstants.RETURN_LOCATION_PARAMETER));
84      //        }
85      //	}
86  
87      public void determineBeginDate() {
88          SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT + TIME_FORMAT);
89  
90          beginningDate = null;
91          try {
92              if (getBegDate() == null || getBegDate().trim().equals("")) {
93                  beginningDate = dateFormat.parse(DEFAULT_BEGIN_DATE + BEG_DAY_TIME);
94              } else {
95                  beginningDate = dateFormat.parse(getBegDate() + BEG_DAY_TIME);
96              }
97  
98              dateFormat = new SimpleDateFormat(DATE_FORMAT);
99              begDate = dateFormat.format(beginningDate);
100         } catch (ParseException e) {
101             //parse error caught in validate methods
102         } finally {
103             if (beginningDate == null) {
104                 try {
105                     beginningDate = dateFormat.parse(DEFAULT_BEGIN_DATE + BEG_DAY_TIME);
106                 } catch (ParseException e) {
107                     throw new RuntimeException("Default Begin Date format incorrect");
108                 }
109             }
110         }
111     }
112 
113     public void determineEndDate() {
114         SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT + TIME_FORMAT);
115 
116         endingDate = null;
117         try {
118             if (getEndDate() == null || getEndDate().trim().equals("")) {
119                 endingDate = dateFormat.parse(DEFAULT_END_DATE + END_DAY_TIME);
120             } else {
121                 endingDate = dateFormat.parse(getEndDate() + END_DAY_TIME);
122             }
123 
124             dateFormat = new SimpleDateFormat(DATE_FORMAT);
125             endDate = dateFormat.format(endingDate);
126         } catch (ParseException e) {
127             //parse error caught in validate methods
128         } finally {
129             if (endingDate == null) {
130                 try {
131                     endingDate = dateFormat.parse(DEFAULT_END_DATE + END_DAY_TIME);
132                 } catch (ParseException e) {
133                     throw new RuntimeException("Default End Date format incorrect");
134                 }
135             }
136         }
137     }
138 
139     public Map makePerUnitOfTimeDropDownMap() {
140 
141         Map dropDownMap = new HashMap();
142         dropDownMap.put(DAY_TIME_UNIT, KewApiConstants.DAILY_UNIT);
143         dropDownMap.put(WEEK_TIME_UNIT, KewApiConstants.WEEKLY_UNIT);
144         dropDownMap.put(MONTH_TIME_UNIT, KewApiConstants.MONTHLY_UNIT);
145         dropDownMap.put(YEAR_TIME_UNIT, KewApiConstants.YEARLY_UNIT);
146         return dropDownMap;
147 
148     }
149 
150     public void validateDates() {
151         LOG.debug("validate()");
152 
153         //this.validateDate(BEGIN_DATE, this.getBegDate(), "general.error.fieldinvalid");
154         //this.validateDate(END_DATE, this.getEndDate(), "general.error.fieldinvalid");
155         if (getBegDate() != null && getBegDate().length() != 0) {
156             try {
157                 new SimpleDateFormat(DATE_FORMAT + TIME_FORMAT).parse(getBegDate().trim() + END_DAY_TIME);
158             } catch (ParseException e) {
159                 GlobalVariables.getMessageMap().putError(BEGIN_DATE, "general.error.fieldinvalid", "Begin Date");
160             }
161         }
162         if (getEndDate() != null && getEndDate().length() != 0) {
163             try {
164                 new SimpleDateFormat(DATE_FORMAT + TIME_FORMAT).parse(getEndDate().trim() + END_DAY_TIME);
165             } catch (ParseException e) {
166                 GlobalVariables.getMessageMap().putError(END_DATE, "general.error.fieldinvalid", "End Date");
167             }
168         }
169     }
170 
171     public Stats getStats() {
172         return stats;
173     }
174 
175     public void setStats(Stats stats) {
176         this.stats = stats;
177     }
178 
179 //    public String getApprovedLabel() {
180 //        return KewApiConstants.ROUTE_HEADER_APPROVED_LABEL;
181 //    }
182 
183     public String getCanceledLabel() {
184         return KewApiConstants.ROUTE_HEADER_CANCEL_LABEL;
185     }
186 
187     public String getDisapprovedLabel() {
188         return KewApiConstants.ROUTE_HEADER_DISAPPROVED_LABEL;
189     }
190 
191     public String getEnrouteLabel() {
192         return KewApiConstants.ROUTE_HEADER_ENROUTE_LABEL;
193     }
194 
195     public String getExceptionLabel() {
196         return KewApiConstants.ROUTE_HEADER_EXCEPTION_LABEL;
197     }
198 
199     public String getFinalLabel() {
200         return KewApiConstants.ROUTE_HEADER_FINAL_LABEL;
201     }
202 
203     public String getInitiatedLabel() {
204         return KewApiConstants.ROUTE_HEADER_INITIATED_LABEL;
205     }
206 
207     public String getProcessedLabel() {
208         return KewApiConstants.ROUTE_HEADER_PROCESSED_LABEL;
209     }
210 
211     public String getSavedLabel() {
212         return KewApiConstants.ROUTE_HEADER_SAVED_LABEL;
213     }
214 
215     public String getAvgActionsPerTimeUnit() {
216         return avgActionsPerTimeUnit;
217     }
218 
219     public void setAvgActionsPerTimeUnit(String string) {
220         avgActionsPerTimeUnit = string;
221     }
222 
223     public String getBegDate() {
224         return begDate;
225     }
226 
227     public void setBegDate(String begDate) {
228         this.begDate = begDate;
229     }
230 
231     public String getEndDate() {
232         return endDate;
233     }
234 
235     public void setEndDate(String endDate) {
236         this.endDate = endDate;
237     }
238 
239     public String getMethodToCall() {
240         return methodToCall;
241     }
242 
243     public void setMethodToCall(String methodToCall) {
244         this.methodToCall = methodToCall;
245     }
246 
247     public Date getBeginningDate() {
248         return beginningDate;
249     }
250 
251     public void setBeginningDate(Date beginningDate) {
252         this.beginningDate = beginningDate;
253     }
254 
255     public Date getEndingDate() {
256         return endingDate;
257     }
258 
259     public void setEndingDate(Date endingDate) {
260         this.endingDate = endingDate;
261     }
262 
263     public String getDayTimeUnit() {
264         return DAY_TIME_UNIT;
265     }
266 
267     public String getMonthTimeUnit() {
268         return MONTH_TIME_UNIT;
269     }
270 
271     public String getWeekTimeUnit() {
272         return WEEK_TIME_UNIT;
273     }
274 
275     public String getYearTimeUnit() {
276         return YEAR_TIME_UNIT;
277     }
278 
279     public String getBackLocation() {
280         return this.backLocation;
281     }
282 
283     public void setBackLocation(String backLocation) {
284         this.backLocation = backLocation;
285     }
286 
287 }