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