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