1 /*
2 * $Id: MultiboxActionForm.java 471754 2006-11-06 14:55:09Z husted $
3 *
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22 package examples.multibox;
23
24 import javax.servlet.http.HttpServletRequest;
25
26 import org.apache.struts.action.ActionErrors;
27 import org.apache.struts.action.ActionForm;
28 import org.apache.struts.action.ActionMapping;
29
30 /**
31 * An ActionForm for the Multibox examples
32 *
33 * @version $Rev: 471754 $ $Date: 2006-11-06 08:55:09 -0600 (Mon, 06 Nov 2006) $
34 */
35 public class MultiboxActionForm extends ActionForm {
36
37 // ------------------------------------------------------ Instance Variables
38
39 /** Fruits */
40 private String[] fruits = {};
41
42 /** Colors */
43 private String[] colors = {};
44
45 // ------------------------------------------------------------ Constructors
46
47 /**
48 * Constructor for MultiboxActionForm.
49 */
50 public MultiboxActionForm() {
51 super();
52 }
53
54 // ---------------------------------------------------------- Public Methods
55
56 /**
57 * Clear all checkboxes
58 *
59 * @param mapping The mapping used to select this instance
60 * @param request The servlet request we are processing
61 */
62 public void reset(ActionMapping mapping, HttpServletRequest request) {
63
64 /*
65 * The ActionForm reset method should only be used to *clear*
66 * checkboxes. The correct place to *set* default checkbox values is in
67 * the 'prepare' action, called prior to displaying the form page.
68 */
69 String[] empty = {};
70 this.fruits = empty;
71 this.colors = empty;
72
73 }
74
75 /**
76 * Validate the properties that have been set from this HTTP request,
77 * and return an <code>ActionMessages</code> object that encapsulates any
78 * validation errors that have been found. If no errors are found, return
79 * <code>null</code> or an <code>ActionMessages</code> object with no
80 * recorded error messages.
81 *
82 * @param mapping The mapping used to select this instance
83 * @param request The servlet request we are processing
84 *
85 * @return ActionMessages if any validation errors occurred
86 */
87 public ActionErrors validate(
88 ActionMapping mapping,
89 HttpServletRequest request) {
90
91 /*
92 * We're not doing any validation (yet) so return null to
93 * indicate that there were no errors. (We don't
94 * actually need to override this nethod unles we're doing
95 * validation - but it's here for reference)
96 */
97 return null;
98 }
99
100 // -------------------------------------------------------------- Properties
101
102 /**
103 * Returns the colors.
104 * @return String[]
105 */
106 public String[] getColors() {
107 return colors;
108 }
109
110 /**
111 * Returns the fruits.
112 * @return String[]
113 */
114 public String[] getFruits() {
115 return fruits;
116 }
117
118 /**
119 * Sets the colors.
120 * @param colors The colors to set
121 */
122 public void setColors(String[] colors) {
123 this.colors = colors;
124 }
125
126 /**
127 * Sets the fruits.
128 * @param fruits The fruits to set
129 */
130 public void setFruits(String[] fruits) {
131 this.fruits = fruits;
132 }
133
134 }