View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package javax.faces.component.html;
20  
21  import javax.faces.component.UISelectMany;
22  
23  import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
24  
25  /**
26   * Allow the user to select zero or more items from a set of
27   * available options. This is presented as a listbox which allows
28   * multiple rows in the list to be selected simultaneously.
29   * <p>
30   * The set of available options is defined by adding child
31   * f:selectItem or f:selectItems components to this component.
32   * </p>
33   * <p>
34   * The list is rendered as an HTML select element. The "multiple"
35   * attribute is set on the element and the size attribute is set to
36   * the provided value, defaulting to the number of items in the list
37   * if no value is provided. If the size is set to 1, then a
38   * "drop-down" list (aka "combo-box") is presented, though if this is
39   * the intention then a selectManyMenu should be used instead.
40   * </p>
41   * <p>
42   * The value attribute must be a value-binding expression to a
43   * property of type List, Object array or primitive array. That
44   * "collection" is expected to contain objects of the same type as
45   * SelectItem.getValue() returns for the child SelectItem objects.
46   * On rendering, any child whose value is in the list will be
47   * selected initially. During the update phase, the property is set
48   * to contain a "collection" of values for those child SelectItem
49   * objects that are currently selected.
50   * </p>
51   *
52   */
53  @JSFComponent
54  (name = "h:selectManyListbox",
55  clazz = "javax.faces.component.html.HtmlSelectManyListbox",template=true,
56  tagClass = "org.apache.myfaces.taglib.html.HtmlSelectManyListboxTag",
57  defaultRendererType = "javax.faces.Listbox"
58  )
59  abstract class _HtmlSelectManyListbox extends UISelectMany implements 
60  _AccesskeyProperty, _UniversalProperties, _DisabledReadonlyProperties,
61  _FocusBlurProperties, _ChangeSelectProperties, _EventProperties,
62  _StyleProperties, _TabindexProperty, _DisabledClassEnabledClassProperties,
63  _LabelProperty
64  {
65  
66    static public final String COMPONENT_FAMILY =
67      "javax.faces.SelectMany";
68    static public final String COMPONENT_TYPE =
69      "javax.faces.HtmlSelectManyListbox";
70  
71    /**
72     * see JSF Spec.
73     * 
74     * @JSFProperty
75     *   defaultValue="Integer.MIN_VALUE"
76     */
77    public abstract int getSize();
78  
79  }