1 22 23 package org.meshcms.webui; 24 25 import java.io.*; 26 import org.meshcms.util.*; 27 28 31 public class FormField implements Serializable { 32 35 public static final int TEXT = 0; 36 37 40 public static final int EMAIL = 1; 41 42 45 public static final int SUBMIT = 2; 46 47 50 public static final int RESET = 3; 51 52 55 public static final int NUMBER = 4; 56 57 61 public static final int HIDDEN = 5; 62 63 66 public static final int SELECT_OPTION = 6; 67 68 private String name; 69 private String code; 70 private int type; 71 private String value; 72 private String [] options; 73 private boolean required; 74 private boolean sender; 75 private boolean senderName; 76 private boolean recipient; 77 private boolean subject; 78 private boolean messageBody; 79 private int rows = 1; 80 81 84 public void setName(String name) { 85 this.name = Utils.trim(name); 86 } 87 88 91 public String getName() { 92 return name; 93 } 94 95 98 public void setCode(String code) { 99 this.code = Utils.trim(code); 100 } 101 102 105 public String getCode() { 106 return code; 107 } 108 109 112 public void setType(int type) { 113 this.type = type; 114 } 115 116 119 public int getType() { 120 return type; 121 } 122 123 126 public void setValue(String value) { 127 this.value = Utils.trim(value); 128 } 129 130 133 public String getValue() { 134 return value; 135 } 136 137 141 public void setOptions(String [] options) { 142 this.options = options; 143 144 for (int i = 0; i < options.length; i++) { 145 this.options[i] = Utils.trim(this.options[i]); 146 } 147 } 148 149 152 public String [] getOptions() { 153 return options; 154 } 155 156 161 public void setNameAndCode(String name) { 162 setName(name); 163 setCode(createCode(name)); 164 } 165 166 169 public void setRequired(boolean required) { 170 this.required = required; 171 } 172 173 176 public boolean isRequired() { 177 return required; 178 } 179 180 184 public void setSender(boolean sender) { 185 this.sender = sender; 186 187 if (sender) { 188 setRequired(true); 189 } 190 } 191 192 195 public boolean isSender() { 196 return sender; 197 } 198 199 203 public void setRecipient(boolean recipient) { 204 this.recipient = recipient; 205 } 206 207 210 public boolean isRecipient() { 211 return recipient; 212 } 213 214 219 public void setRows(int rows) { 220 this.rows = rows; 221 } 222 223 226 public int getRows() { 227 return rows; 228 } 229 230 234 public void setParameter(String value) { 235 if (value.equals("text")) { 236 setType(TEXT); 237 } else if (value.equals("email")) { 238 setType(EMAIL); 239 } else if (value.startsWith("text:")) { 240 setType(TEXT); 241 setRows(Utils.parseInt(Utils.trim(value.substring(5)), 12)); 242 } else if (value.equals("textarea")) { 243 setType(TEXT); 244 setRows(12); 245 } else if (value.equals("submit")) { 246 setType(SUBMIT); 247 } else if (value.equals("reset")) { 248 setType(RESET); 249 } else if (value.equals("number")) { 250 setType(NUMBER); 251 } else if (value.equals("hidden")) { 252 setType(HIDDEN); 253 } else if (value.startsWith("options:")) { 254 setOptions(Utils.tokenize(value.substring(8), ",")); 255 setType(SELECT_OPTION); 256 } else if (value.equals("required")) { 257 setRequired(true); 258 } else if (value.equals("sender")) { 259 setSender(true); } else if (value.equals("sendername")) { 261 setSenderName(true); 262 } else if (value.equals("subject")) { 263 setSubject(true); 264 } else if (value.equals("messagebody")) { 265 setMessageBody(true); 266 } else if (value.startsWith("recipient:")) { 267 setRecipient(true); 268 setValue(value.substring(10)); 269 } else if (value.startsWith("value:")) { 270 setValue(value.substring(6)); 271 } else { 272 setNameAndCode(value); 273 } 274 } 275 276 280 public boolean checkValue() { 281 String val = Utils.noNull(getValue()).trim(); 282 283 if (isRequired() && val.equals("")) { 284 return false; 285 } 286 287 if (getType() == EMAIL || isSender() || isRecipient()) { 288 if (!Utils.checkAddress(val)) { 289 return false; 290 } 291 } 292 293 if (getType() == NUMBER && !val.equals("")) { 294 try { 295 Double.parseDouble(val); 296 } catch (Exception ex) { 297 return false; 298 } 299 } 300 301 val = val.toLowerCase(); 302 303 305 return !(val.indexOf("content-type:") > -1 && 306 val.indexOf("mime-version:") > -1); 307 308 } 309 310 314 public static String createCode(String s) { 315 StringBuffer sb = new StringBuffer (s.length()); 316 317 for (int i = 0; i < s.length(); i++) { 318 char c = Character.toLowerCase(s.charAt(i)); 319 320 if ("abcdefghijklmnopqrstuvwxyz_-0123456789".indexOf(c) < 0) { 321 sb.append('_'); 322 } else { 323 sb.append(c); 324 } 325 } 326 327 return sb.toString(); 328 } 329 330 333 public String getDescription() { 334 String desc = getValue(); 335 336 if (Utils.isNullOrEmpty(desc)) { 337 desc = getName(); 338 339 if (Utils.isNullOrEmpty(desc)) { 340 if (isRecipient()) { 341 desc = "(recipient)"; 342 } else if (isSender()) { 343 desc = "(sender)"; 344 } else { 345 desc = "(unknown)"; 346 } 347 } 348 } 349 350 return desc; 351 } 352 353 356 public String toString() { 357 return "Form Field: " + getDescription(); 358 } 359 360 363 public boolean isSenderName() { 364 return senderName; 365 } 366 367 371 public void setSenderName(boolean senderName) { 372 this.senderName = senderName; 373 } 374 375 378 public boolean isSubject() { 379 return subject; 380 } 381 382 386 public void setSubject(boolean subject) { 387 this.subject = subject; 388 } 389 390 393 public boolean isMessageBody() { 394 return messageBody; 395 } 396 397 401 public void setMessageBody(boolean messageBody) { 402 this.messageBody = messageBody; 403 } 404 405 474 } 475 | Popular Tags |