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 org.apache.myfaces.custom.radio;
20  
21  import javax.faces.component.UIComponentBase;
22  
23  import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
24  import org.apache.myfaces.component.AccesskeyProperty;
25  import org.apache.myfaces.component.AlignProperty;
26  import org.apache.myfaces.component.AltProperty;
27  import org.apache.myfaces.component.ChangeSelectProperties;
28  import org.apache.myfaces.component.DisabledClassEnabledClassProperties;
29  import org.apache.myfaces.component.EventAware;
30  import org.apache.myfaces.component.FocusBlurProperties;
31  import org.apache.myfaces.component.StyleAware;
32  import org.apache.myfaces.component.TabindexProperty;
33  import org.apache.myfaces.component.UniversalProperties;
34  import org.apache.myfaces.component.UserRoleAware;
35  
36  /**
37   * This tag is used in conjunction with the extended selectOneRadio 
38   * tag when the "spread" layout is selected. It specifies the 
39   * position within the document that the radio button corresponding 
40   * to a specific SelectItem should be rendered. All HTML pass-through 
41   * attributes for this input are taken from the associated 
42   * selectOneRadio. 
43   * 
44   * Unless otherwise specified, all attributes accept static values or EL expressions.
45   * 
46   * @JSFComponent
47   *   name = "t:radio"
48   *   class = "org.apache.myfaces.custom.radio.HtmlRadio"
49   *   tagClass = "org.apache.myfaces.custom.radio.HtmlRadioTag"
50   * @since 1.1.7
51   * @author Thomas Spiegl (latest modification by $Author: lu4242 $)
52   * @version $Revision: 691856 $ $Date: 2008-09-03 21:40:30 -0500 (miƩ, 03 sep 2008) $
53   */
54  public abstract class AbstractHtmlRadio
55      extends UIComponentBase implements UserRoleAware, 
56      FocusBlurProperties, ChangeSelectProperties, 
57      UniversalProperties, EventAware, AltProperty, 
58      AlignProperty, StyleAware, AccesskeyProperty, TabindexProperty, DisabledClassEnabledClassProperties
59  {
60      //private static final Log log = LogFactory.getLog(HtmlRadio.class);
61  
62      public static final String FOR_ATTR = "for".intern();
63      public static final String INDEX_ATTR = "index".intern();
64  
65  
66      public static final String COMPONENT_TYPE = "org.apache.myfaces.HtmlRadio";
67      public static final String COMPONENT_FAMILY = "org.apache.myfaces.Radio";
68      private static final String DEFAULT_RENDERER_TYPE = "org.apache.myfaces.Radio";
69  
70      /**
71       * The id of the referenced extended selectOneRadio component. 
72       * This value is resolved to the particular component using 
73       * the standard UIComponent.findComponent() searching algorithm.
74       * 
75       * @JSFProperty
76       *   required="true"
77       */
78      public abstract String getFor();
79      
80      /**
81       * The index of the corresponding SelectItem, where 0 represents the first SelectItem.
82       * 
83       * @JSFProperty
84       *   defaultValue = "Integer.MIN_VALUE"
85       *   required="true"
86       */
87      public abstract int getIndex();
88      
89      /**
90       * If this property is set to true, the id generated for the input html markup
91       * will be the logical id composed from the clientId of the associated 
92       * selectOneRadio and the index of this component (for example 'myComp:2').
93       * 
94       * <p>
95       * NOTE: This is provided only for backward compatibility with tomahawk 1.2.
96       * Activate this behavior will make client behaviors added to 
97       * t:selectOneRadio like f:ajax or others fail, because the logical id 
98       * has no counterpart in the component tree.
99       * </p>
100      * 
101      * @return
102      */
103     @JSFProperty(defaultValue="false")
104     public abstract boolean isRenderLogicalId();
105     
106 
107 }