1 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 ; 13 14 import org.apache.struts.util.MessageResources; 15 16 import com.raptus.owxv3.Constants; 17 import com.raptus.owxv3.api.*; 18 19 20 42 public class CmpFieldsAction extends ComponentAction 43 { 44 47 public void dispatchComponent(HttpServletRequest 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 switchLocale = request.getParameter(ComponentConstants.HTTPGET_PARAM_FIELDSWITCHLOCALE); 56 57 58 if(switchLocale != null) 59 { 60 cfbean.switchLocale(switchLocale); 61 } 62 63 String 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 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 fieldValue=null; 77 boolean valid=false; 78 for (Enumeration e=request.getParameterNames();e.hasMoreElements();) 79 { 80 fieldName=(String )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 d=new Double (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 String currency = ""; 112 113 if(st.countTokens() == 2) 114 currency = st.nextToken(); 115 116 Double price= new Double (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 } 132 } 133 } 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 } 151 } 153 if(fieldValue.equals("") && ! cfbean.isEmptyAllowed(fieldName)) 154 { 155 cfbean.setFieldErrorMsg(fieldName,ComponentConstants.CMP_FIELDS_ERRORMSG_EMPTY); 157 } 158 else if(fieldValue.equals("")) 159 { 160 if(fieldType==Constants.FIELDTYPE_NUMBER) 162 { 163 Double 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 } } } } 189 } 190 191 } 192 193 | Popular Tags |