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  import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
25  
26  /**
27   * Allow the user to select zero or more items from a set of available options.
28   * <p> 
29   * This is presented as a table with one cell per available option; each cell contains a
30   * checkbox and the option's label. The "layout" attribute determines whether the checkboxes
31   * are laid out horizontally or vertically.
32   * </p>
33   * <p>
34   * The set of available options is defined by adding child
35   * f:selectItem or f:selectItems components to this component.
36   * </p>
37   * <p>
38   * The value attribute must be a value-binding expression to a
39   * property of type List, Object array or primitive array. That
40   * "collection" is expected to contain objects of the same type as
41   * SelectItem.getValue() returns for the child SelectItem objects.
42   * On rendering, any child whose value is in the list will be
43   * selected initially. During the update phase, the property setter
44   * is called to replace the original collection with a completely
45   * new collection object of the appropriate type. The new collection
46   * object contains the value of each child SelectItem object that
47   * is currently selected.
48   * </p>
49   *
50   */
51  @JSFComponent
52  (name = "h:selectManyCheckbox",
53  clazz = "javax.faces.component.html.HtmlSelectManyCheckbox",template=true,
54  tagClass = "org.apache.myfaces.taglib.html.HtmlSelectManyCheckboxTag",
55  defaultRendererType = "javax.faces.Checkbox",
56  implementz = "javax.faces.component.behavior.ClientBehaviorHolder",
57  defaultEventName = "valueChange"
58  )
59  abstract class _HtmlSelectManyCheckbox extends UISelectMany implements 
60      _AccesskeyProperty, _UniversalProperties, _FocusBlurProperties,
61      _ChangeSelectProperties, _EventProperties, _StyleProperties,
62      _TabindexProperty, _DisabledReadonlyProperties, 
63      _DisabledClassEnabledClassProperties, _LabelProperty, _RoleProperty
64  {
65  
66    static public final String COMPONENT_FAMILY =
67      "javax.faces.SelectMany";
68    static public final String COMPONENT_TYPE =
69      "javax.faces.HtmlSelectManyCheckbox";
70  
71    /**
72     * HTML: Specifies the width of the border of this element, in pixels.  Deprecated in HTML 4.01.
73     * 
74     * @JSFProperty
75     *   defaultValue="Integer.MIN_VALUE"
76     */
77    public abstract int getBorder();
78    
79    /**
80     * Controls the layout direction of the child elements.  Values include:  
81     * lineDirection (vertical) and pageDirection (horzontal).
82     * 
83     * @JSFProperty
84     */
85    public abstract String getLayout();
86    
87    /**
88     * CSS class to be applied to selected items
89     * 
90     * @since 2.0
91     * @return
92     */
93    @JSFProperty
94    public abstract String getSelectedClass();
95  
96    /**
97     * CSS class to be applied to unselected items
98     * 
99     * @since 2.0
100    * @return
101    */
102   @JSFProperty
103   public abstract String getUnselectedClass();
104 
105 }