| 1 31 32 package org.opencms.frontend.templateone.form; 33 34 import org.opencms.i18n.CmsMessages; 35 import org.opencms.util.CmsStringUtil; 36 37 import java.util.Iterator ; 38 39 45 public class CmsSelectionField extends A_CmsField { 46 47 48 private static final String TYPE = "select"; 49 50 53 public String getType() { 54 55 return TYPE; 56 } 57 58 63 public static String getStaticType() { 64 65 return TYPE; 66 } 67 68 71 public String buildHtml(CmsFormHandler formHandler, CmsMessages messages, String errorKey) { 72 73 StringBuffer buf = new StringBuffer (); 74 String fieldLabel = getLabel(); 75 String errorMessage = ""; 76 String mandatory = ""; 77 78 if (CmsStringUtil.isNotEmpty(errorKey)) { 79 80 if (CmsFormHandler.ERROR_MANDATORY.equals(errorKey)) { 81 errorMessage = messages.key("form.error.mandatory"); 82 } else if (CmsStringUtil.isNotEmpty(getErrorMessage())) { 83 errorMessage = getErrorMessage(); 84 } else { 85 errorMessage = messages.key("form.error.validation"); 86 } 87 88 errorMessage = messages.key("form.html.error.start") + errorMessage + messages.key("form.html.error.end"); 89 fieldLabel = messages.key("form.html.label.error.start") + fieldLabel + messages.key("form.html.label.error.end"); 90 } 91 92 if (isMandatory()) { 93 mandatory = messages.key("form.html.mandatory"); 94 } 95 96 buf.append(messages.key("form.html.row.start")).append("\n"); 98 99 buf.append(messages.key("form.html.label.start")) 101 .append(fieldLabel) 102 .append(mandatory) 103 .append(messages.key("form.html.label.end")).append("\n"); 104 105 buf.append(messages.key("form.html.field.start")) 107 .append("<select name=\"").append(getName()).append("\"") 108 .append(formHandler.getFormConfiguration().getFormFieldAttributes()) 109 .append(">").append("\n"); 110 111 Iterator i = getItems().iterator(); 113 while (i.hasNext()) { 114 115 CmsFieldItem curOption = (CmsFieldItem)i.next(); 116 String selected = ""; 117 if (curOption.isSelected()) { 118 selected = " selected=\"selected\""; 119 } 120 121 buf.append("<option value=\"").append(curOption.getValue()).append("\"").append(selected).append(">").append(curOption.getLabel()).append("</option>\n"); 122 } 123 124 buf.append("</select>") 125 .append(errorMessage) 126 .append("\n"); 127 128 buf.append(messages.key("form.html.field.end")).append("\n"); 129 130 buf.append(messages.key("form.html.row.end")).append("\n"); 131 132 return buf.toString(); 133 } 134 135 } 136 | Popular Tags |