View Javadoc

1   // WARNING: This file was automatically generated. Do not edit it directly,
2   //          or you will lose your changes.
3   
4   /*
5    * Licensed to the Apache Software Foundation (ASF) under one
6    * or more contributor license agreements.  See the NOTICE file
7    * distributed with this work for additional information
8    * regarding copyright ownership.  The ASF licenses this file
9    * to you under the Apache License, Version 2.0 (the
10   * "License"); you may not use this file except in compliance
11   * with the License.  You may obtain a copy of the License at
12   *
13   *   http://www.apache.org/licenses/LICENSE-2.0
14   *
15   * Unless required by applicable law or agreed to in writing,
16   * software distributed under the License is distributed on an
17   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18   * KIND, either express or implied.  See the License for the
19   * specific language governing permissions and limitations
20   * under the License.
21  */
22  package org.apache.myfaces.trinidad.component.core.input;
23  
24  import javax.faces.component.UIComponent;
25  import org.apache.myfaces.trinidad.bean.FacesBean;
26  import org.apache.myfaces.trinidad.bean.PropertyKey;
27  import org.apache.myfaces.trinidad.component.UIXSelectMany;
28  import org.apache.myfaces.trinidad.util.ComponentUtils;
29  
30  /**
31   *
32   * <html><p>The selectManyCheckbox component creates a component which allows
33   *           the user to select many values from a series of checkboxes.
34   *           It can contain any number of
35   *           &lt;f:selectItem&gt;, &lt;f:selectItems&gt;, or
36   *    &lt;tr:selectItem&gt; components,  each of which represents an available checkbox that the user may select.</p></html>
37   *
38   * <h4>Events:</h4>
39   * <table border="1" width="100%" cellpadding="3" summary="">
40   * <tr bgcolor="#CCCCFF" class="TableHeadingColor">
41   * <th align="left">Type</th>
42   * <th align="left">Phases</th>
43   * <th align="left">Description</th>
44   * </tr>
45   * <tr class="TableRowColor">
46   * <td valign="top"><code>javax.faces.event.ValueChangeEvent</code></td>
47   * <td valign="top" nowrap>Process Validations<br>Apply Request Values</td>
48   * <td valign="top">The valueChange event is delivered when the value
49                         attribute is changed.</td>
50   * </tr>
51   * <tr class="TableRowColor">
52   * <td valign="top"><code>org.apache.myfaces.trinidad.event.AttributeChangeEvent</code></td>
53   * <td valign="top" nowrap>Invoke Application<br>Apply Request Values</td>
54   * <td valign="top">Event delivered to describe an attribute change.  Attribute change events are not delivered for any programmatic change to a property.  They are only delivered when a renderer changes a property without the application's specific request.  An example of an attribute change events might include the width of a column that supported client-side resizing.</td>
55   * </tr>
56   * </table>
57   */
58  public class CoreSelectManyCheckbox extends UIXSelectMany
59  {
60    static public final String LAYOUT_HORIZONTAL = "horizontal";
61    static public final String LAYOUT_VERTICAL = "vertical";
62    static public final FacesBean.Type TYPE = new FacesBean.Type(
63      UIXSelectMany.TYPE);
64    static public final PropertyKey CONTENT_STYLE_KEY =
65      TYPE.registerKey("contentStyle", String.class);
66    static public final PropertyKey LAYOUT_KEY =
67      TYPE.registerKey("layout", String.class, "vertical");
68    static public final PropertyKey VALUE_PASS_THRU_KEY =
69      TYPE.registerKey("valuePassThru", Boolean.class, Boolean.FALSE);
70    static public final PropertyKey READ_ONLY_KEY =
71      TYPE.registerKey("readOnly", Boolean.class, Boolean.FALSE);
72    static public final PropertyKey DISABLED_KEY =
73      TYPE.registerKey("disabled", Boolean.class, Boolean.FALSE);
74    static public final PropertyKey LABEL_KEY =
75      TYPE.registerKey("label", String.class);
76    static public final PropertyKey SIMPLE_KEY =
77      TYPE.registerKey("simple", Boolean.class, Boolean.FALSE);
78    static public final PropertyKey ONCHANGE_KEY =
79      TYPE.registerKey("onchange", String.class);
80    static public final PropertyKey INLINE_STYLE_KEY =
81      TYPE.registerKey("inlineStyle", String.class);
82    static public final PropertyKey STYLE_CLASS_KEY =
83      TYPE.registerKey("styleClass", String.class);
84    static public final PropertyKey SHORT_DESC_KEY =
85      TYPE.registerKey("shortDesc", String.class);
86    static public final PropertyKey PARTIAL_TRIGGERS_KEY =
87      TYPE.registerKey("partialTriggers", String[].class);
88    static public final PropertyKey ONCLICK_KEY =
89      TYPE.registerKey("onclick", String.class);
90    static public final PropertyKey ONDBLCLICK_KEY =
91      TYPE.registerKey("ondblclick", String.class);
92    static public final PropertyKey ONMOUSEDOWN_KEY =
93      TYPE.registerKey("onmousedown", String.class);
94    static public final PropertyKey ONMOUSEUP_KEY =
95      TYPE.registerKey("onmouseup", String.class);
96    static public final PropertyKey ONMOUSEOVER_KEY =
97      TYPE.registerKey("onmouseover", String.class);
98    static public final PropertyKey ONMOUSEMOVE_KEY =
99      TYPE.registerKey("onmousemove", String.class);
100   static public final PropertyKey ONMOUSEOUT_KEY =
101     TYPE.registerKey("onmouseout", String.class);
102   static public final PropertyKey ONKEYPRESS_KEY =
103     TYPE.registerKey("onkeypress", String.class);
104   static public final PropertyKey ONKEYDOWN_KEY =
105     TYPE.registerKey("onkeydown", String.class);
106   static public final PropertyKey ONKEYUP_KEY =
107     TYPE.registerKey("onkeyup", String.class);
108   static public final PropertyKey ONBLUR_KEY =
109     TYPE.registerKey("onblur", String.class);
110   static public final PropertyKey ONFOCUS_KEY =
111     TYPE.registerKey("onfocus", String.class);
112   static public final PropertyKey SHOW_REQUIRED_KEY =
113     TYPE.registerKey("showRequired", Boolean.class, Boolean.FALSE);
114   static public final PropertyKey ACCESS_KEY_KEY =
115     TYPE.registerKey("accessKey", Character.class);
116   static public final PropertyKey AUTO_SUBMIT_KEY =
117     TYPE.registerKey("autoSubmit", Boolean.class, Boolean.FALSE);
118   static public final String HELP_FACET = "help";
119 
120   static public final String COMPONENT_FAMILY =
121     "org.apache.myfaces.trinidad.SelectMany";
122   static public final String COMPONENT_TYPE =
123     "org.apache.myfaces.trinidad.CoreSelectManyCheckbox";
124 
125   /**
126    * Construct an instance of the CoreSelectManyCheckbox.
127    */
128   public CoreSelectManyCheckbox()
129   {
130     super("org.apache.myfaces.trinidad.Checkbox");
131   }
132 
133   /**
134    * This facet should contain field level help.
135    */
136   final public UIComponent getHelp()
137   {
138     return getFacet(HELP_FACET);
139   }
140 
141   /**
142    * This facet should contain field level help.
143    */
144   @SuppressWarnings("unchecked")
145   final public void setHelp(UIComponent helpFacet)
146   {
147     getFacets().put(HELP_FACET, helpFacet);
148   }
149 
150   /**
151    * Gets the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".
152    *
153    * @return  the new contentStyle value
154    */
155   final public String getContentStyle()
156   {
157     return ComponentUtils.resolveString(getProperty(CONTENT_STYLE_KEY));
158   }
159 
160   /**
161    * Sets the CSS styles to attach to the content of the component.  For example, you can set the width of that portion to 100 pixels by setting this attribute to "width: 100px".
162    * 
163    * @param contentStyle  the new contentStyle value
164    */
165   final public void setContentStyle(String contentStyle)
166   {
167     setProperty(CONTENT_STYLE_KEY, (contentStyle));
168   }
169 
170   /**
171    * Gets whether the control displays the buttons
172    *               horizontally or vertically.The valid values are "horizontal" and
173    *               "vertical",the default being "vertical".
174    *
175    * @return  the new layout value
176    */
177   final public String getLayout()
178   {
179     return ComponentUtils.resolveString(getProperty(LAYOUT_KEY), "vertical");
180   }
181 
182   /**
183    * Sets whether the control displays the buttons
184    *               horizontally or vertically.The valid values are "horizontal" and
185    *               "vertical",the default being "vertical".
186    * 
187    * @param layout  the new layout value
188    */
189   final public void setLayout(String layout)
190   {
191     setProperty(LAYOUT_KEY, (layout));
192   }
193 
194   /**
195    * Gets whether or not the values are passed through to
196    *         the client. When valuePassThru is false
197    *         the value and the options' values
198    *         are converted to indexes before being sent to the client.
199    *         Therefore, when valuePassThru is false,
200    *         there is no need to write your own converter when you are using custom Objects
201    *         as your values and/or options.
202    *         If you need to know the actual values on the client-side, then you can set
203    *         valuePassThru to true. This will pass the values through to the client,
204    *         using your custom converter if it is available; a custom converter is
205    *         needed if you are using custom objects. The default is false.
206    *
207    * @return  the new valuePassThru value
208    */
209   final public boolean isValuePassThru()
210   {
211     return ComponentUtils.resolveBoolean(getProperty(VALUE_PASS_THRU_KEY), false);
212   }
213 
214   /**
215    * Sets whether or not the values are passed through to
216    *         the client. When valuePassThru is false
217    *         the value and the options' values
218    *         are converted to indexes before being sent to the client.
219    *         Therefore, when valuePassThru is false,
220    *         there is no need to write your own converter when you are using custom Objects
221    *         as your values and/or options.
222    *         If you need to know the actual values on the client-side, then you can set
223    *         valuePassThru to true. This will pass the values through to the client,
224    *         using your custom converter if it is available; a custom converter is
225    *         needed if you are using custom objects. The default is false.
226    * 
227    * @param valuePassThru  the new valuePassThru value
228    */
229   final public void setValuePassThru(boolean valuePassThru)
230   {
231     setProperty(VALUE_PASS_THRU_KEY, valuePassThru ? Boolean.TRUE : Boolean.FALSE);
232   }
233 
234   /**
235    * Gets whether the element is read-only.
236    *
237    * @return  the new readOnly value
238    */
239   final public boolean isReadOnly()
240   {
241     return ComponentUtils.resolveBoolean(getProperty(READ_ONLY_KEY), false);
242   }
243 
244   /**
245    * Sets whether the element is read-only.
246    * 
247    * @param readOnly  the new readOnly value
248    */
249   final public void setReadOnly(boolean readOnly)
250   {
251     setProperty(READ_ONLY_KEY, readOnly ? Boolean.TRUE : Boolean.FALSE);
252   }
253 
254   /**
255    * Gets whether the element is disabled.
256    *
257    * @return  the new disabled value
258    */
259   final public boolean isDisabled()
260   {
261     return ComponentUtils.resolveBoolean(getProperty(DISABLED_KEY), false);
262   }
263 
264   /**
265    * Sets whether the element is disabled.
266    * 
267    * @param disabled  the new disabled value
268    */
269   final public void setDisabled(boolean disabled)
270   {
271     setProperty(DISABLED_KEY, disabled ? Boolean.TRUE : Boolean.FALSE);
272   }
273 
274   /**
275    * Gets the label of the bean.
276    *
277    * @return  the new label value
278    */
279   final public String getLabel()
280   {
281     return ComponentUtils.resolveString(getProperty(LABEL_KEY));
282   }
283 
284   /**
285    * Sets the label of the bean.
286    * 
287    * @param label  the new label value
288    */
289   final public void setLabel(String label)
290   {
291     setProperty(LABEL_KEY, (label));
292   }
293 
294   /**
295    * Gets a boolean value that controls whether the component
296    * provides label and message support;  when set to "true", the component will
297    * not display messaging support or the label (these attributes may be ignored: label,
298    * labelAndAccessKey, accessKey, showRequired,
299    * tip), and may use simpler layout primitives
300    *
301    * @return  the new simple value
302    */
303   final public boolean isSimple()
304   {
305     return ComponentUtils.resolveBoolean(getProperty(SIMPLE_KEY), false);
306   }
307 
308   /**
309    * Sets a boolean value that controls whether the component
310    * provides label and message support;  when set to "true", the component will
311    * not display messaging support or the label (these attributes may be ignored: label,
312    * labelAndAccessKey, accessKey, showRequired,
313    * tip), and may use simpler layout primitives
314    * 
315    * @param simple  the new simple value
316    */
317   final public void setSimple(boolean simple)
318   {
319     setProperty(SIMPLE_KEY, simple ? Boolean.TRUE : Boolean.FALSE);
320   }
321 
322   /**
323    * Gets event handler for when the value is changed.
324    *
325    * @return  the new onchange value
326    */
327   final public String getOnchange()
328   {
329     return ComponentUtils.resolveString(getProperty(ONCHANGE_KEY));
330   }
331 
332   /**
333    * Sets event handler for when the value is changed.
334    * 
335    * @param onchange  the new onchange value
336    */
337   final public void setOnchange(String onchange)
338   {
339     setProperty(ONCHANGE_KEY, (onchange));
340   }
341 
342   /**
343    * Gets the CSS styles to use for this component.
344    *
345    * @return  the new inlineStyle value
346    */
347   final public String getInlineStyle()
348   {
349     return ComponentUtils.resolveString(getProperty(INLINE_STYLE_KEY));
350   }
351 
352   /**
353    * Sets the CSS styles to use for this component.
354    * 
355    * @param inlineStyle  the new inlineStyle value
356    */
357   final public void setInlineStyle(String inlineStyle)
358   {
359     setProperty(INLINE_STYLE_KEY, (inlineStyle));
360   }
361 
362   /**
363    * Gets a CSS style class to use for this component.
364    *
365    * @return  the new styleClass value
366    */
367   final public String getStyleClass()
368   {
369     return ComponentUtils.resolveString(getProperty(STYLE_CLASS_KEY));
370   }
371 
372   /**
373    * Sets a CSS style class to use for this component.
374    * 
375    * @param styleClass  the new styleClass value
376    */
377   final public void setStyleClass(String styleClass)
378   {
379     setProperty(STYLE_CLASS_KEY, (styleClass));
380   }
381 
382   /**
383    * Gets The short description of the component. This text is commonly used by user agents to display tooltip help text.
384    *
385    * @return  the new shortDesc value
386    */
387   final public String getShortDesc()
388   {
389     return ComponentUtils.resolveString(getProperty(SHORT_DESC_KEY));
390   }
391 
392   /**
393    * Sets The short description of the component. This text is commonly used by user agents to display tooltip help text.
394    * 
395    * @param shortDesc  the new shortDesc value
396    */
397   final public void setShortDesc(String shortDesc)
398   {
399     setProperty(SHORT_DESC_KEY, (shortDesc));
400   }
401 
402   /**
403    * Gets the IDs of the components that should trigger a partial update.
404    *         <p>
405    *         This component will listen on the trigger components. If one of the
406    *         trigger components receives an event that will cause it to update
407    *         in some way, this component will request to be updated too.</p>
408    *         <p>
409    *         Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
410    *         </p>
411    *         <p>
412    *         Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
413    *         or use multiple colons to move up through the NamingContainer. For example,
414    *         "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
415    *         ":::" will pop out of two naming containers, etc. The search for
416    *         the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
417    *         component with id = commandButton1 after popping out of two naming containers relative to this component.
418    *         To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".</p>
419    *
420    * @return  the new partialTriggers value
421    */
422   final public String[] getPartialTriggers()
423   {
424     return (String[])getProperty(PARTIAL_TRIGGERS_KEY);
425   }
426 
427   /**
428    * Sets the IDs of the components that should trigger a partial update.
429    *         <p>
430    *         This component will listen on the trigger components. If one of the
431    *         trigger components receives an event that will cause it to update
432    *         in some way, this component will request to be updated too.</p>
433    *         <p>
434    *         Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
435    *         </p>
436    *         <p>
437    *         Identifiers must account for NamingContainers.  You can use a single colon to start the search from the root,
438    *         or use multiple colons to move up through the NamingContainer. For example,
439    *         "::" will pop out of this component's naming container (it pops out of itself if it is a naming container), 
440    *         ":::" will pop out of two naming containers, etc. The search for
441    *         the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the 
442    *         component with id = commandButton1 after popping out of two naming containers relative to this component.
443    *         To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".</p>
444    * 
445    * @param partialTriggers  the new partialTriggers value
446    */
447   final public void setPartialTriggers(String[] partialTriggers)
448   {
449     setProperty(PARTIAL_TRIGGERS_KEY, (partialTriggers));
450   }
451 
452   /**
453    * Gets an onclick Javascript handler.
454    *
455    * @return  the new onclick value
456    */
457   final public String getOnclick()
458   {
459     return ComponentUtils.resolveString(getProperty(ONCLICK_KEY));
460   }
461 
462   /**
463    * Sets an onclick Javascript handler.
464    * 
465    * @param onclick  the new onclick value
466    */
467   final public void setOnclick(String onclick)
468   {
469     setProperty(ONCLICK_KEY, (onclick));
470   }
471 
472   /**
473    * Gets an ondblclick Javascript handler.
474    *
475    * @return  the new ondblclick value
476    */
477   final public String getOndblclick()
478   {
479     return ComponentUtils.resolveString(getProperty(ONDBLCLICK_KEY));
480   }
481 
482   /**
483    * Sets an ondblclick Javascript handler.
484    * 
485    * @param ondblclick  the new ondblclick value
486    */
487   final public void setOndblclick(String ondblclick)
488   {
489     setProperty(ONDBLCLICK_KEY, (ondblclick));
490   }
491 
492   /**
493    * Gets an onmousedown Javascript handler.
494    *
495    * @return  the new onmousedown value
496    */
497   final public String getOnmousedown()
498   {
499     return ComponentUtils.resolveString(getProperty(ONMOUSEDOWN_KEY));
500   }
501 
502   /**
503    * Sets an onmousedown Javascript handler.
504    * 
505    * @param onmousedown  the new onmousedown value
506    */
507   final public void setOnmousedown(String onmousedown)
508   {
509     setProperty(ONMOUSEDOWN_KEY, (onmousedown));
510   }
511 
512   /**
513    * Gets an onmouseup Javascript handler.
514    *
515    * @return  the new onmouseup value
516    */
517   final public String getOnmouseup()
518   {
519     return ComponentUtils.resolveString(getProperty(ONMOUSEUP_KEY));
520   }
521 
522   /**
523    * Sets an onmouseup Javascript handler.
524    * 
525    * @param onmouseup  the new onmouseup value
526    */
527   final public void setOnmouseup(String onmouseup)
528   {
529     setProperty(ONMOUSEUP_KEY, (onmouseup));
530   }
531 
532   /**
533    * Gets an onmouseover Javascript handler.
534    *
535    * @return  the new onmouseover value
536    */
537   final public String getOnmouseover()
538   {
539     return ComponentUtils.resolveString(getProperty(ONMOUSEOVER_KEY));
540   }
541 
542   /**
543    * Sets an onmouseover Javascript handler.
544    * 
545    * @param onmouseover  the new onmouseover value
546    */
547   final public void setOnmouseover(String onmouseover)
548   {
549     setProperty(ONMOUSEOVER_KEY, (onmouseover));
550   }
551 
552   /**
553    * Gets an onmousemove Javascript handler.
554    *
555    * @return  the new onmousemove value
556    */
557   final public String getOnmousemove()
558   {
559     return ComponentUtils.resolveString(getProperty(ONMOUSEMOVE_KEY));
560   }
561 
562   /**
563    * Sets an onmousemove Javascript handler.
564    * 
565    * @param onmousemove  the new onmousemove value
566    */
567   final public void setOnmousemove(String onmousemove)
568   {
569     setProperty(ONMOUSEMOVE_KEY, (onmousemove));
570   }
571 
572   /**
573    * Gets an onmouseout Javascript handler.
574    *
575    * @return  the new onmouseout value
576    */
577   final public String getOnmouseout()
578   {
579     return ComponentUtils.resolveString(getProperty(ONMOUSEOUT_KEY));
580   }
581 
582   /**
583    * Sets an onmouseout Javascript handler.
584    * 
585    * @param onmouseout  the new onmouseout value
586    */
587   final public void setOnmouseout(String onmouseout)
588   {
589     setProperty(ONMOUSEOUT_KEY, (onmouseout));
590   }
591 
592   /**
593    * Gets an onkeypress Javascript handler.
594    *
595    * @return  the new onkeypress value
596    */
597   final public String getOnkeypress()
598   {
599     return ComponentUtils.resolveString(getProperty(ONKEYPRESS_KEY));
600   }
601 
602   /**
603    * Sets an onkeypress Javascript handler.
604    * 
605    * @param onkeypress  the new onkeypress value
606    */
607   final public void setOnkeypress(String onkeypress)
608   {
609     setProperty(ONKEYPRESS_KEY, (onkeypress));
610   }
611 
612   /**
613    * Gets an onkeydown Javascript handler.
614    *
615    * @return  the new onkeydown value
616    */
617   final public String getOnkeydown()
618   {
619     return ComponentUtils.resolveString(getProperty(ONKEYDOWN_KEY));
620   }
621 
622   /**
623    * Sets an onkeydown Javascript handler.
624    * 
625    * @param onkeydown  the new onkeydown value
626    */
627   final public void setOnkeydown(String onkeydown)
628   {
629     setProperty(ONKEYDOWN_KEY, (onkeydown));
630   }
631 
632   /**
633    * Gets an onkeyup Javascript handler.
634    *
635    * @return  the new onkeyup value
636    */
637   final public String getOnkeyup()
638   {
639     return ComponentUtils.resolveString(getProperty(ONKEYUP_KEY));
640   }
641 
642   /**
643    * Sets an onkeyup Javascript handler.
644    * 
645    * @param onkeyup  the new onkeyup value
646    */
647   final public void setOnkeyup(String onkeyup)
648   {
649     setProperty(ONKEYUP_KEY, (onkeyup));
650   }
651 
652   /**
653    * Gets the event handler for the component losing the focus.
654    *
655    * @return  the new onblur value
656    */
657   final public String getOnblur()
658   {
659     return ComponentUtils.resolveString(getProperty(ONBLUR_KEY));
660   }
661 
662   /**
663    * Sets the event handler for the component losing the focus.
664    * 
665    * @param onblur  the new onblur value
666    */
667   final public void setOnblur(String onblur)
668   {
669     setProperty(ONBLUR_KEY, (onblur));
670   }
671 
672   /**
673    * Gets the event handler for the component gaining the focus.
674    *
675    * @return  the new onfocus value
676    */
677   final public String getOnfocus()
678   {
679     return ComponentUtils.resolveString(getProperty(ONFOCUS_KEY));
680   }
681 
682   /**
683    * Sets the event handler for the component gaining the focus.
684    * 
685    * @param onfocus  the new onfocus value
686    */
687   final public void setOnfocus(String onfocus)
688   {
689     setProperty(ONFOCUS_KEY, (onfocus));
690   }
691 
692   /**
693    * Gets whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
694    *           "showRequired" attribute must be false for the visual indication not to be displayed.
695    *
696    * @return  the new showRequired value
697    */
698   final public boolean isShowRequired()
699   {
700     return ComponentUtils.resolveBoolean(getProperty(SHOW_REQUIRED_KEY), false);
701   }
702 
703   /**
704    * Sets whether the associated control displays a visual indication of required user input. If a "required" attribute is also present, both the "required" attribute and the
705    *           "showRequired" attribute must be false for the visual indication not to be displayed.
706    * 
707    * @param showRequired  the new showRequired value
708    */
709   final public void setShowRequired(boolean showRequired)
710   {
711     setProperty(SHOW_REQUIRED_KEY, showRequired ? Boolean.TRUE : Boolean.FALSE);
712   }
713 
714   /**
715    * Gets <html>
716    *  Character used to gain quick access to
717    *                the form element specified by the
718    *          <code>for</code>, if set (or this component itself,
719    *               if it is a "non-simple" form element).
720    *               For accessibility reasons, this functionality is not supported
721    *               in screen reader mode.
722    *               If the same access key appears in multiple locations in the
723    *               same page of output, the rendering user agent will cycle
724    *               among the elements accessed by the similar keys.
725    *               <p>
726    *                 This attribute is sometimes referred to as the "mnemonic".
727    *                 </p></html>
728    *
729    * @return  the new accessKey value
730    */
731   final public char getAccessKey()
732   {
733     return ComponentUtils.resolveCharacter((Character)getProperty(ACCESS_KEY_KEY));
734   }
735 
736   /**
737    * Sets <html>
738    *  Character used to gain quick access to
739    *                the form element specified by the
740    *          <code>for</code>, if set (or this component itself,
741    *               if it is a "non-simple" form element).
742    *               For accessibility reasons, this functionality is not supported
743    *               in screen reader mode.
744    *               If the same access key appears in multiple locations in the
745    *               same page of output, the rendering user agent will cycle
746    *               among the elements accessed by the similar keys.
747    *               <p>
748    *                 This attribute is sometimes referred to as the "mnemonic".
749    *                 </p></html>
750    * 
751    * @param accessKey  the new accessKey value
752    */
753   final public void setAccessKey(char accessKey)
754   {
755     setProperty(ACCESS_KEY_KEY, Character.valueOf(accessKey));
756   }
757 
758   /**
759    * Gets If set to TRUE on a form element, the component will automatically submit
760    *      the enclosing form when an appropriate action takes place (a click, text
761    *      change, etc.).
762    *
763    * @return  the new autoSubmit value
764    */
765   final public boolean isAutoSubmit()
766   {
767     return ComponentUtils.resolveBoolean(getProperty(AUTO_SUBMIT_KEY), false);
768   }
769 
770   /**
771    * Sets If set to TRUE on a form element, the component will automatically submit
772    *      the enclosing form when an appropriate action takes place (a click, text
773    *      change, etc.).
774    * 
775    * @param autoSubmit  the new autoSubmit value
776    */
777   final public void setAutoSubmit(boolean autoSubmit)
778   {
779     setProperty(AUTO_SUBMIT_KEY, autoSubmit ? Boolean.TRUE : Boolean.FALSE);
780   }
781 
782   @Override
783   public String getFamily()
784   {
785     return COMPONENT_FAMILY;
786   }
787 
788   @Override
789   protected FacesBean.Type getBeanType()
790   {
791     return TYPE;
792   }
793 
794   /**
795    * Construct an instance of the CoreSelectManyCheckbox.
796    */
797   protected CoreSelectManyCheckbox(
798     String rendererType
799     )
800   {
801     super(rendererType);
802   }
803 
804   static
805   {
806     TYPE.lockAndRegister("org.apache.myfaces.trinidad.SelectMany","org.apache.myfaces.trinidad.Checkbox");
807   }
808 }