KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > blandware > atleap > webapp > action > core > grid > CallDateFilterAction


1 /*
2  * Copyright 2004 Blandware (http://www.blandware.com)
3  *
4  * Licensed under the Apache 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.apache.org/licenses/LICENSE-2.0
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 com.blandware.atleap.webapp.action.core.grid;
17
18 import com.blandware.atleap.webapp.form.core.DateFilterForm;
19 import com.blandware.atleap.webapp.taglib.core.grid.util.DateFilter;
20 import com.blandware.atleap.webapp.taglib.core.grid.util.Grid;
21 import com.blandware.atleap.webapp.util.core.WebappUtil;
22 import org.apache.struts.action.ActionForm;
23 import org.apache.struts.action.ActionForward;
24 import org.apache.struts.action.ActionMapping;
25
26 import javax.servlet.http.HttpServletRequest JavaDoc;
27 import javax.servlet.http.HttpServletResponse JavaDoc;
28 import javax.servlet.http.HttpSession JavaDoc;
29 import javax.servlet.jsp.JspException JavaDoc;
30
31 /**
32  * <p>Calls date filter JSP and sets form bean properties according to filter stored in session
33  * </p>
34  * <p><a HREF="CallDateFilterAction.java.htm"><i>View Source</i></a></p>
35  * <p/>
36  *
37  * @author Sergey Zubtcovskii <a HREF="mailto:sergey.zubtcovskii@blandware.com">&lt;sergey.zubtcovskii@blandware.com&gt;</a>
38  * @version $Revision: 1.8 $ $Date: 2005/03/07 14:41:10 $
39  * @struts.action path="/grid/callDateFilter"
40  * name="dateFilterForm"
41  * scope="request"
42  * @struts.action-forward name="showFilterPage"
43  * path=".dateFilter"
44  * @struts.action-forward name="filterError"
45  * path=".filterError"
46  */

47 public final class CallDateFilterAction extends BaseGridAction {
48
49     /**
50      * @param mapping The ActionMapping used to select this instance
51      * @param form The optional ActionForm bean for this request (if any)
52      * @param request The HTTP request we are proceeding
53      * @param response The HTTP response we are creating
54      * @return an ActionForward instance describing where and how
55      * control should be forwarded, or null if response
56      * has already been completed
57      */

58     public ActionForward execute(ActionMapping mapping, ActionForm form,
59                                  HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws JspException JavaDoc {
60
61         HttpSession JavaDoc session = request.getSession();
62
63         DateFilterForm dateFilterForm = (DateFilterForm) form;
64         String JavaDoc fieldName = dateFilterForm.getFieldName();
65         String JavaDoc gridName = dateFilterForm.getGridName();
66
67         Grid grid = getGridByName(gridName, session);
68
69         if ( grid == null ) {
70             if ( log.isErrorEnabled() ) {
71                 String JavaDoc errorMessage = "No grid with name " + gridName + " could be found in session";
72                 log.error(errorMessage);
73             }
74             return mapping.findForward("filterError");
75         }
76
77         DateFilter filter = null;
78         try {
79             filter = (DateFilter) grid.getFilterByFieldName(fieldName);
80         } catch ( ClassCastException JavaDoc e ) {
81             if ( log.isErrorEnabled() ) {
82                 String JavaDoc errorMessage = "Filter for field \'" + fieldName + "\' in grid \'" + gridName + "\' is not instance of com.blandware.atleap.webapp.taglib.core.grid.util.DateFilter";
83                 log.error(errorMessage);
84             }
85             return mapping.findForward("filterError");
86         }
87
88         if ( filter != null ) {
89             try {
90                 String JavaDoc rowIterators = dateFilterForm.getRowIterators();
91                 WebappUtil.copyProperties(dateFilterForm, filter, request);
92                 dateFilterForm.setRowIterators(rowIterators);
93             } catch ( Exception JavaDoc e ) {
94                 if ( log.isErrorEnabled() ) {
95                     log.error(e);
96                 }
97                 throw new JspException JavaDoc(e);
98             }
99         }
100
101         if ( log.isDebugEnabled() ) {
102             log.debug("First value: " + dateFilterForm.getFirstValue());
103             log.debug("Second value: " + dateFilterForm.getSecondValue());
104         }
105
106         if ( log.isDebugEnabled() ) {
107             log.debug("Returning filter page: " + mapping.findForward("showFilterPage").getPath());
108         }
109
110         return mapping.findForward("showFilterPage");
111     }
112 }
Popular Tags