KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > raptus > owxv3 > api > components > CmpFieldsAction


1 /*
2  * eAdmin/OWX
3  * Copyright (C) 1996-2003 OWX-Project Team <owx-team@gmx.net>
4  */

5
6
7 package com.raptus.owxv3.api.components;
8
9 import java.text.*;
10 import java.util.*;
11
12 import javax.servlet.http.HttpServletRequest JavaDoc;
13
14 import org.apache.struts.util.MessageResources;
15
16 import com.raptus.owxv3.Constants;
17 import com.raptus.owxv3.api.*;
18
19
20 /**
21  *
22  * <hr>
23  * <table width="100%" border="0">
24  * <tr>
25  * <td width="24%"><b>Filename</b></td><td width="76%">CmpFieldsBean.java</td>
26  * </tr>
27  * <tr>
28  * <td width="24%"><b>Author</b></td><td width="76%">REEA</td>
29  * </tr>
30  * <tr>
31  * <td width="24%"><b>Date</b></td><td width="76%">22th of April 2002</td>
32  * </tr>
33  * </table>
34  * <hr>
35  * <table width="100%" border="0">
36  * <tr>
37  * <td width="24%"><b>Date / Author</b></td><td width="76%"><b>Changes</b></td>
38  * </tr>
39  * </table>
40  * <hr>
41  */

42 public class CmpFieldsAction extends ComponentAction
43 {
44     /**
45      *
46      */

47     public void dispatchComponent(HttpServletRequest JavaDoc request, ComponentBean cbean)
48     {
49         CmpFieldsBean cfbean=(CmpFieldsBean)cbean;
50         if(!cbean.getOpen())
51         {
52             cbean.getContainer().closeAllComponents();
53             cbean.setOpen(true);
54         }
55         String JavaDoc switchLocale = request.getParameter(ComponentConstants.HTTPGET_PARAM_FIELDSWITCHLOCALE);
56
57
58         if(switchLocale != null)
59         {
60             cfbean.switchLocale(switchLocale);
61         }
62         
63         String JavaDoc action=request.getParameter(ComponentConstants.HTTPGET_PARAM_FIELDACTION);
64         
65         if(action !=null )
66         {
67             if(action.equals(ComponentConstants.COMPONENT_ACTION_SAVE))
68             {
69                 cfbean.clearFieldErrorMsgs();
70                 String JavaDoc fieldName=null;
71                 int fieldType=-1;
72                 MessageResources mr = this.getResources();
73
74                 FieldValidator fv=new FieldValidator( cfbean.getCurrLocale(),mr );
75                 FieldsSelector fs=cfbean.getFieldsSelector();
76                 String JavaDoc fieldValue=null;
77                 boolean valid=false;
78                 for (Enumeration e=request.getParameterNames();e.hasMoreElements();)
79                 {
80                     fieldName=(String JavaDoc)e.nextElement();
81                     fieldValue=request.getParameter(fieldName);
82                     fieldType=cfbean.getFieldType(fieldName);
83                     if(fieldType!=-1 && ! fieldValue.equals(""))
84                     {
85                         valid=fv.validate(fieldType,fieldValue);
86                         
87                         if(valid)
88                         {
89                             fieldValue=fv.getModifiedVlue();
90                             if(fieldType==Constants.FIELDTYPE_NUMBER)
91                             {
92                                 Double JavaDoc d=new Double JavaDoc(fieldValue);
93                                 fs.setField(fieldName,d,fieldType);
94                             }
95                             else if(fieldType==Constants.FIELDTYPE_TEXT)
96                             {
97                                 if(cfbean.isMultiLanguage(fieldName))
98                                 {
99                                     fs.setLocalizedField(fieldName,fieldValue,cfbean.getActiveLocale());
100                                 }
101                                 else
102                                 {
103                                     fs.setField(fieldName,fieldValue,fieldType);
104                                 }
105                             }
106                             else if(fieldType==Constants.FIELDTYPE_PRICE)
107                             {
108                                 StringTokenizer st=new StringTokenizer(fieldValue);
109
110                                 // 20021212/gz: hack for currency input
111
String JavaDoc currency = "";
112
113                                 if(st.countTokens() == 2)
114                                     currency = st.nextToken();
115
116                                 Double JavaDoc price= new Double JavaDoc(st.nextToken());
117                                 fs.setField(fieldName,price,currency,fieldType);
118                             }
119                             else if(fieldType==Constants.FIELDTYPE_DATE)
120                             {
121                                 SimpleDateFormat df=(SimpleDateFormat)DateFormat.getDateInstance(DateFormat.SHORT,cfbean.getActiveLocale());
122                                 df.applyPattern(Constants.DEFAULT_DATEPATTERN);
123                                 try
124                                 {
125                                     Date d=df.parse(fieldValue);
126                                     fs.setField(fieldName,d,fieldType);
127                                 }
128                                 catch(ParseException pe)
129                                 {
130                                     //should be impossible, field was validated
131
}
132                             }
133                         }//end if valid
134
else
135                         {
136                             if(fieldType==Constants.FIELDTYPE_NUMBER)
137                             {
138                                 cfbean.setFieldErrorMsg(fieldName,ComponentConstants.CMP_FIELDS_ERRORMSG_INVALIDNUMBER);
139                             }
140                             else if(fieldType==Constants.FIELDTYPE_PRICE)
141                             {
142                                 cfbean.setFieldErrorMsg(fieldName,ComponentConstants.CMP_FIELDS_ERRORMSG_INVALIDPRICE);
143                             }
144                             else if(fieldType==Constants.FIELDTYPE_DATE)
145                             {
146                                 cfbean.setFieldErrorMsg(fieldName,ComponentConstants.CMP_FIELDS_ERRORMSG_INVALIDDATE);
147                             }
148                             
149                         }//end else
150

151                     }//end big if
152

153                     if(fieldValue.equals("") && ! cfbean.isEmptyAllowed(fieldName))
154                     {
155                         //empty value not allowed
156
cfbean.setFieldErrorMsg(fieldName,ComponentConstants.CMP_FIELDS_ERRORMSG_EMPTY);
157                     }
158                     else if(fieldValue.equals(""))
159                     {
160                         //empty value allowed
161
if(fieldType==Constants.FIELDTYPE_NUMBER)
162                         {
163                             Double JavaDoc d=null;
164                             fs.setField(fieldName,d,fieldType);
165                         }
166                         else if(fieldType==Constants.FIELDTYPE_TEXT)
167                         {
168                             if(cfbean.isMultiLanguage(fieldName))
169                             {
170                                 fs.setLocalizedField(fieldName,null,cfbean.getActiveLocale());
171                             }
172                             else
173                             {
174                                 fs.setField(fieldName,null,fieldType);
175                             }
176                         }
177                         else if(fieldType==Constants.FIELDTYPE_PRICE)
178                         {
179                             fs.setField(fieldName,null,null,fieldType);
180                         }
181                         else if(fieldType==Constants.FIELDTYPE_DATE)
182                         {
183                             fs.setField(fieldName,null,fieldType);
184                         }
185                     }//end else
186
}//end for
187
}//end action save
188
}
189     }
190
191 }
192
193 // eof
194
Popular Tags