1
|
1 /*
|
|
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
|
3 *
|
|
4 * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
|
5 *
|
|
6 * The contents of this file are subject to the terms of either the GNU
|
|
7 * General Public License Version 2 only ("GPL") or the Common Development
|
|
8 * and Distribution License("CDDL") (collectively, the "License"). You
|
|
9 * may not use this file except in compliance with the License. You can
|
|
10 * obtain a copy of the License at
|
|
11 * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
|
|
12 * or packager/legal/LICENSE.txt. See the License for the specific
|
|
13 * language governing permissions and limitations under the License.
|
|
14 *
|
|
15 * When distributing the software, include this License Header Notice in each
|
|
16 * file and include the License file at packager/legal/LICENSE.txt.
|
|
17 *
|
|
18 * GPL Classpath Exception:
|
|
19 * Oracle designates this particular file as subject to the "Classpath"
|
|
20 * exception as provided by Oracle in the GPL Version 2 section of the License
|
|
21 * file that accompanied this code.
|
|
22 *
|
|
23 * Modifications:
|
|
24 * If applicable, add the following below the License Header, with the fields
|
|
25 * enclosed by brackets [] replaced by your own identifying information:
|
|
26 * "Portions Copyright [year] [name of copyright owner]"
|
|
27 *
|
|
28 * Contributor(s):
|
|
29 * If you wish your version of this file to be governed by only the CDDL or
|
|
30 * only the GPL Version 2, indicate your decision by adding "[Contributor]
|
|
31 * elects to include this software in this distribution under the [CDDL or GPL
|
|
32 * Version 2] license." If you don't indicate a single choice of license, a
|
|
33 * recipient has the option to distribute your version of this file under
|
|
34 * either the CDDL, the GPL Version 2 or to extend the choice of license to
|
|
35 * its licensees as provided above. However, if you add GPL Version 2 code
|
|
36 * and therefore, elected the GPL Version 2 license, then the option applies
|
|
37 * only if the new code is made subject to such option by the copyright
|
|
38 * holder.
|
|
39 */
|
|
40
|
|
41 package javax.faces.model;
|
|
42
|
|
43
|
|
44 import java.io.Serializable;
|
|
45 import javax.faces.component.UISelectMany;
|
|
46 import javax.faces.component.UISelectOne;
|
|
47
|
|
48
|
|
49 /**
|
|
50 * <p><strong class="changed_modified_2_0
|
|
51 * changed_modified_2_0_rev_a">SelectItem</strong> represents a single
|
|
52 * <em>item</em> in the list of supported <em>items</em> associated with
|
|
53 * a {@link UISelectMany} or {@link UISelectOne} component.</p>
|
|
54 */
|
|
55
|
|
56 public class SelectItem implements Serializable {
|
|
57
|
|
58 private static final long serialVersionUID = 876782311414654999L;
|
|
59
|
|
60
|
|
61 // ------------------------------------------------------------ Constructors
|
|
62
|
|
63
|
|
64 /**
|
|
65 * <p>Construct a <code>SelectItem</code> with no initialized property
|
|
66 * values.</p>
|
|
67 */
|
|
68 public SelectItem() {
|
|
69
|
|
70 super();
|
|
71
|
|
72 }
|
|
73
|
|
74
|
|
75 /**
|
|
76 * <p>Construct a <code>SelectItem</code> with the specified value. The
|
|
77 * <code>label</code> property will be set to the value (converted to a
|
|
78 * String, if necessary), the <code>description</code> property will be
|
|
79 * set to <code>null</code>, the <code>disabled</code> property will be set to
|
|
80 * <code>false</code>, and the <code>escape</code> property will be set to
|
|
81 ( <code>true</code>.</p>
|
|
82 *
|
|
83 * @param value Value to be delivered to the model if this
|
|
84 * item is selected by the user
|
|
85 */
|
|
86 public SelectItem(Object value) {
|
|
87
|
|
88 this(value, value == null ? null : value.toString(), null, false, true, false);
|
|
89
|
|
90 }
|
|
91
|
|
92
|
|
93 /**
|
|
94 * <p>Construct a <code>SelectItem</code> with the specified value and
|
|
95 * label. The <code>description</code> property will be set to
|
|
96 * <code>null</code>, the <code>disabled</code> property will be
|
|
97 * set to <code>false</code>, and the <code>escape</code> property will
|
|
98 * be set to <code>true</code>.</p>
|
|
99 *
|
|
100 * @param value Value to be delivered to the model if this
|
|
101 * item is selected by the user
|
|
102 * @param label Label to be rendered for this item in the response
|
|
103 */
|
|
104 public SelectItem(Object value, String label) {
|
|
105
|
|
106 this(value, label, null, false, true, false);
|
|
107
|
|
108 }
|
|
109
|
|
110
|
|
111 /**
|
|
112 * <p>Construct a <code>SelectItem</code> instance with the specified
|
|
113 * value, label and description. This <code>disabled</code> property
|
|
114 * will be set to <code>false</code>, and the <code>escape</code>
|
|
115 * property will be set to <code>true</code>.</p>
|
|
116 *
|
|
117 * @param value Value to be delivered to the model if this
|
|
118 * item is selected by the user
|
|
119 * @param label Label to be rendered for this item in the response
|
|
120 * @param description Description of this item, for use in tools
|
|
121 */
|
|
122 public SelectItem(Object value, String label, String description) {
|
|
123
|
|
124 this(value, label, description, false, true, false);
|
|
125
|
|
126 }
|
|
127
|
|
128
|
|
129 /**
|
|
130 * <p>Construct a <code>SelectItem</code> instance with the specified
|
|
131 * property values. The <code>escape</code> property will be set
|
|
132 * to <code>true</code>.</p>
|
|
133 *
|
|
134 * @param value Value to be delivered to the model if this
|
|
135 * item is selected by the user
|
|
136 * @param label Label to be rendered for this item in the response
|
|
137 * @param description Description of this item, for use in tools
|
|
138 * @param disabled Flag indicating that this option is disabled
|
|
139 */
|
|
140 public SelectItem(Object value, String label, String description,
|
|
141 boolean disabled) {
|
|
142
|
|
143 this(value, label, description, disabled, true, false);
|
|
144
|
|
145 }
|
|
146
|
|
147 /**
|
|
148 * <p>Construct a <code>SelectItem</code> instance with the specified
|
|
149 * property values.</p>
|
|
150 *
|
|
151 * @param value Value to be delivered to the model if this
|
|
152 * item is selected by the user
|
|
153 * @param label Label to be rendered for this item in the response
|
|
154 * @param description Description of this item, for use in tools
|
|
155 * @param disabled Flag indicating that this option is disabled
|
|
156 * @param escape Flag indicating that the text of this option should be
|
|
157 * escaped when rendered.
|
|
158 * @since 1.2
|
|
159 */
|
|
160 public SelectItem(Object value, String label, String description,
|
|
161 boolean disabled, boolean escape) {
|
|
162
|
|
163 this(value, label, description, disabled, escape, false);
|
|
164
|
|
165 }
|
|
166
|
|
167
|
|
168 /**
|
|
169 * <p>Construct a <code>SelectItem</code> instance with the specified
|
|
170 * property values.</p>
|
|
171 *
|
|
172 * @param value Value to be delivered to the model if this
|
|
173 * item is selected by the user
|
|
174 * @param label Label to be rendered for this item in the response
|
|
175 * @param description Description of this item, for use in tools
|
|
176 * @param disabled Flag indicating that this option is disabled
|
|
177 * @param escape Flag indicating that the text of this option should be
|
|
178 * escaped when rendered.
|
|
179 * @param noSelectionOption Flag indicating that the current option is a "no selection" option
|
|
180 * @since 1.2
|
|
181 */
|
|
182 public SelectItem(Object value, String label, String description,
|
|
183 boolean disabled, boolean escape, boolean noSelectionOption) {
|
|
184
|
|
185 super();
|
|
186 setValue(value);
|
|
187 setLabel(label);
|
|
188 setDescription(description);
|
|
189 setDisabled(disabled);
|
|
190 setEscape(escape);
|
|
191 setNoSelectionOption(noSelectionOption);
|
|
192
|
|
193 }
|
|
194
|
|
195
|
|
196
|
|
197
|
|
198 // ------------------------------------------------------ Instance Variables
|
|
199
|
|
200
|
|
201 private String description = null;
|
|
202 private boolean disabled = false;
|
|
203 private String label = null;
|
|
204 //@author jurzua
|
|
205 private String style = null;
|
|
206 @SuppressWarnings({"NonSerializableFieldInSerializableClass"})
|
|
207 private Object value = null;
|
|
208
|
|
209
|
|
210 // -------------------------------------------------------------- Properties
|
|
211
|
|
212
|
|
213 /**
|
|
214 * <p>Return a description of this item, for use in development tools.
|
|
215 */
|
|
216 public String getDescription() {
|
|
217
|
|
218 return (this.description);
|
|
219
|
|
220 }
|
|
221
|
|
222
|
|
223 /**
|
|
224 * <p>Set the description of this item, for use in development tools.</p>
|
|
225 *
|
|
226 * @param description The new description
|
|
227 */
|
|
228 public void setDescription(String description) {
|
|
229
|
|
230 this.description = description;
|
|
231
|
|
232 }
|
|
233
|
|
234
|
|
235 /**
|
|
236 * <p>Return the disabled flag for this item, which should modify the
|
|
237 * rendered output to make this item unavailable for selection by the user
|
|
238 * if set to <code>true</code>.</p>
|
|
239 */
|
|
240 public boolean isDisabled() {
|
|
241
|
|
242 return (this.disabled);
|
|
243
|
|
244 }
|
|
245
|
|
246
|
|
247 /**
|
|
248 * <p>Set the disabled flag for this item, which should modify the
|
|
249 * rendered output to make this item unavailable for selection by the user
|
|
250 * if set to <code>true</code>.</p>
|
|
251 *
|
|
252 * @param disabled The new disabled flag
|
|
253 */
|
|
254 public void setDisabled(boolean disabled) {
|
|
255
|
|
256 this.disabled = disabled;
|
|
257
|
|
258 }
|
|
259
|
|
260
|
|
261 /**
|
|
262 * <p>Return the label of this item, to be rendered visibly for the user.
|
|
263 */
|
|
264 public String getLabel() {
|
|
265
|
|
266 return (this.label);
|
|
267
|
|
268 }
|
|
269
|
|
270
|
|
271 /**
|
|
272 * <p>Set the label of this item, to be rendered visibly for the user.
|
|
273 *
|
|
274 * @param label The new label
|
|
275 */
|
|
276 public void setLabel(String label) {
|
|
277
|
|
278 this.label = label;
|
|
279
|
|
280 }
|
|
281
|
|
282
|
|
283 /**
|
|
284 * <p>Return the value of this item, to be delivered to the model
|
|
285 * if this item is selected by the user.
|
|
286 */
|
|
287 public Object getValue() {
|
|
288
|
|
289 return (this.value);
|
|
290
|
|
291 }
|
|
292
|
|
293
|
|
294 /**
|
|
295 * <p>Set the value of this item, to be delivered to the model
|
|
296 * if this item is selected by this user.
|
|
297 *
|
|
298 * @param value The new value
|
|
299 *
|
|
300 */
|
|
301 public void setValue(Object value) {
|
|
302
|
|
303 this.value = value;
|
|
304
|
|
305 }
|
|
306
|
|
307 private boolean escape;
|
|
308
|
|
309 /**
|
|
310 * <p class="changed_added_2_0_rev_a">If and only if this returns
|
|
311 * <code>true</code>, the code that renders this select item must
|
|
312 * escape the label using escaping syntax appropriate to the content
|
|
313 * type being rendered. </p>
|
|
314 *
|
|
315 * @since 2.0
|
|
316 */
|
|
317 public boolean isEscape() {
|
|
318 return this.escape;
|
|
319 }
|
|
320
|
|
321 /**
|
|
322 * <p class="changed_added_2_0_rev_a">Set the value of the escape
|
|
323 * property. See {@link #isEscape}.</p>
|
|
324 *
|
|
325 * @since 2.0
|
|
326 */
|
|
327 public void setEscape(boolean escape) {
|
|
328 this.escape = escape;
|
|
329 }
|
|
330
|
|
331 private boolean noSelectionOption = false;
|
|
332
|
|
333 /** <p class="changed_added_2_0">Return the value of the
|
|
334 * <code>noSelectionOption</code> property. If the value of this
|
|
335 * property is <code>true</code>, the system interprets the option
|
|
336 * represented by this <code>SelectItem</code> instance as
|
|
337 * representing a "no selection" option. See {@link
|
|
338 * UISelectOne#validateValue} and {@link UISelectMany#validateValue}
|
|
339 * for usage.</p>
|
|
340 *
|
|
341 * @since 2.0
|
|
342 */
|
|
343
|
|
344 public boolean isNoSelectionOption() {
|
|
345 return noSelectionOption;
|
|
346 }
|
|
347
|
|
348 /**
|
|
349 * <p class="changed_added_2_0">Set the value of the
|
|
350 * <code>noSelectionOption</code> property.</p>
|
|
351 *
|
|
352 * @since 2.0
|
|
353 */
|
|
354
|
|
355 public void setNoSelectionOption(boolean noSelectionOption) {
|
|
356 this.noSelectionOption = noSelectionOption;
|
|
357 }
|
|
358
|
|
359 /**
|
|
360 * @author jurzua
|
|
361 */
|
|
362 public void setStyle(String style){
|
|
363 this.style = style;
|
|
364 }
|
|
365
|
|
366 /**
|
|
367 * @author jurzua
|
|
368 */
|
|
369 public String getStyle(){
|
|
370 return (this.style);
|
|
371 }
|
|
372
|
|
373 }
|