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 }