KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > opencms > frontend > templateone > form > CmsSelectionField


1 /*
2  * File : $Source: /usr/local/cvs/opencms/src-modules/org/opencms/frontend/templateone/form/CmsSelectionField.java,v $
3  * Date : $Date: 2005/09/09 10:31:59 $
4  * Version: $Revision: 1.3 $
5  *
6  * This library is part of OpenCms -
7  * the Open Source Content Mananagement System
8  *
9  * Copyright (C) 2002 - 2004 Alkacon Software (http://www.alkacon.com)
10  *
11  * This library is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Lesser General Public
13  * License as published by the Free Software Foundation; either
14  * version 2.1 of the License, or (at your option) any later version.
15  *
16  * This library is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19  * Lesser General Public License for more details.
20  *
21  * For further information about Alkacon Software, please see the
22  * company website: http://www.alkacon.com
23  *
24  * For further information about OpenCms, please see the
25  * project website: http://www.opencms.org
26  *
27  * You should have received a copy of the GNU Lesser General Public
28  * License along with this library; if not, write to the Free Software
29  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30  */

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 JavaDoc;
38
39 /**
40  * Represents a selection of options.<p>
41  *
42  * @author Thomas Weckert (t.weckert@alkacon.com)
43  * @version $Revision: 1.3 $
44  */

45 public class CmsSelectionField extends A_CmsField {
46
47     /** HTML field type: selectbox. */
48     private static final String JavaDoc TYPE = "select";
49     
50     /**
51      * @see org.opencms.frontend.templateone.form.I_CmsField#getType()
52      */

53     public String JavaDoc getType() {
54
55         return TYPE;
56     }
57     
58     /**
59      * Returns the type of the input field, e.g. "text" or "select".<p>
60      *
61      * @return the type of the input field
62      */

63     public static String JavaDoc getStaticType() {
64         
65         return TYPE;
66     }
67     
68     /**
69      * @see org.opencms.frontend.templateone.form.I_CmsField#buildHtml(CmsFormHandler, org.opencms.i18n.CmsMessages, String)
70      */

71     public String JavaDoc buildHtml(CmsFormHandler formHandler, CmsMessages messages, String JavaDoc errorKey) {
72         
73         StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
74         String JavaDoc fieldLabel = getLabel();
75         String JavaDoc errorMessage = "";
76         String JavaDoc 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         // line #1
97
buf.append(messages.key("form.html.row.start")).append("\n");
98         
99         // line #2
100
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         // line #3
106
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         // add the options
112
Iterator JavaDoc i = getItems().iterator();
113         while (i.hasNext()) {
114             
115             CmsFieldItem curOption = (CmsFieldItem)i.next();
116             String JavaDoc 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