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.data;
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.UIXTreeTable;
35 import org.apache.myfaces.trinidad.util.ComponentUtils;
36
37 /**
38 *
39 * <html:p>
40 * The Trinidad TreeTable is used to display data that is structured in a hierarchical format.
41 * This component displays a hierarchy
42 * in a UI similar to an Trinidad Table, and is more elaborate than the Tree component.
43 * TreeTable supports displaying columns of data per element in the hierarchy.
44 * Unlike the Tree component, TreeTable
45 * only supports single rooted hierarchies. The features of the TreeTable
46 * component include mechanisms for focusing in on subtrees (within the main
47 * tree), as well as expanding and collapsing elements in the hierarchy.
48 * </html:p>
49 *
50 * <html:p>
51 * Like the Table, the TreeTable's children must be Trinidad
52 * Column components. Like the Tree, the TreeTable has a "nodeStamp"
53 * facet which renders the "Object Name" Column.
54 *
55 * The "Object Name" Column contains the primary identifier of an element
56 * in the hierarchy. For example, in an organization chart of employees, the "Object Name"
57 * Column might be the employee name.
58 * </html:p>
59 *
60 * <h4>Events:</h4>
61 * <table border="1" width="100%" cellpadding="3" summary="">
62 * <tr bgcolor="#CCCCFF" class="TableHeadingColor">
63 * <th align="left">Type</th>
64 * <th align="left">Phases</th>
65 * <th align="left">Description</th>
66 * </tr>
67 * <tr class="TableRowColor">
68 * <td valign="top"><code>org.apache.myfaces.trinidad.event.RowDisclosureEvent</code></td>
69 * <td valign="top" nowrap>Apply<br>Request<br>Values<br>Invoke<br>Application</td>
70 * <td valign="top">The expansion event is generated for a table when the detail facet of a row is expanded or collapsed. For tree or a treeTable, the expansion
71 event is generated when tree nodes are expanded or collapsed.</td>
72 * </tr>
73 * <tr class="TableRowColor">
74 * <td valign="top"><code>org.apache.myfaces.trinidad.event.SelectionEvent</code></td>
75 * <td valign="top" nowrap>Apply<br>Request<br>Values<br>Invoke<br>Application</td>
76 * <td valign="top">The selection event is delivered when the table selection
77 changes.</td>
78 * </tr>
79 * <tr class="TableRowColor">
80 * <td valign="top"><code>org.apache.myfaces.trinidad.event.FocusEvent</code></td>
81 * <td valign="top" nowrap>Apply<br>Request<br>Values<br>Invoke<br>Application</td>
82 * <td valign="top">Event delivered when user clicks to focus on (or zoom into) a particular element's subtree of children.
83 The TreeTable responds to this event by modifying the "focusPath" property appropriately.
84 Subsequently, any registered FocusListener instances are called.</td>
85 * </tr>
86 * <tr class="TableRowColor">
87 * <td valign="top"><code>org.apache.myfaces.trinidad.event.AttributeChangeEvent</code></td>
88 * <td valign="top" nowrap>Invoke<br>Application<br>Apply<br>Request<br>Values</td>
89 * <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>
90 * </tr>
91 * </table>
92 */
93 public class CoreTreeTable extends UIXTreeTable
94 implements ClientBehaviorHolder
95 {
96 static public final String ROW_SELECTION_NONE = "none";
97 static public final String ROW_SELECTION_SINGLE = "single";
98 static public final String ROW_SELECTION_MULTIPLE = "multiple";
99 static public final FacesBean.Type TYPE = new FacesBean.Type(
100 UIXTreeTable.TYPE);
101 static public final PropertyKey HORIZONTAL_GRID_VISIBLE_KEY =
102 TYPE.registerKey("horizontalGridVisible", Boolean.class, Boolean.TRUE);
103 static public final PropertyKey VERTICAL_GRID_VISIBLE_KEY =
104 TYPE.registerKey("verticalGridVisible", Boolean.class, Boolean.TRUE);
105 static public final PropertyKey EMPTY_TEXT_KEY =
106 TYPE.registerKey("emptyText", String.class);
107 static public final PropertyKey COLUMN_BANDING_INTERVAL_KEY =
108 TYPE.registerKey("columnBandingInterval", Integer.class, Integer.valueOf(0));
109 static public final PropertyKey ROW_BANDING_INTERVAL_KEY =
110 TYPE.registerKey("rowBandingInterval", Integer.class, Integer.valueOf(0));
111 static public final PropertyKey ROW_SELECTION_KEY =
112 TYPE.registerKey("rowSelection", String.class, "none");
113 static public final PropertyKey AUTO_SUBMIT_KEY =
114 TYPE.registerKey("autoSubmit", Boolean.class, Boolean.FALSE);
115 static public final PropertyKey WIDTH_KEY =
116 TYPE.registerKey("width", String.class);
117 static public final PropertyKey SUMMARY_KEY =
118 TYPE.registerKey("summary", String.class);
119 static public final PropertyKey INLINE_STYLE_KEY =
120 TYPE.registerKey("inlineStyle", String.class);
121 static public final PropertyKey STYLE_CLASS_KEY =
122 TYPE.registerKey("styleClass", String.class);
123 static public final PropertyKey SHORT_DESC_KEY =
124 TYPE.registerKey("shortDesc", String.class);
125 static public final PropertyKey PARTIAL_TRIGGERS_KEY =
126 TYPE.registerKey("partialTriggers", String[].class, null, 0, PropertyKey.Mutable.RARELY);
127 static public final PropertyKey ONCLICK_KEY =
128 TYPE.registerKey("onclick", String.class);
129 static public final PropertyKey ONDBLCLICK_KEY =
130 TYPE.registerKey("ondblclick", String.class);
131 static public final PropertyKey ONMOUSEDOWN_KEY =
132 TYPE.registerKey("onmousedown", String.class);
133 static public final PropertyKey ONMOUSEUP_KEY =
134 TYPE.registerKey("onmouseup", String.class);
135 static public final PropertyKey ONMOUSEOVER_KEY =
136 TYPE.registerKey("onmouseover", String.class);
137 static public final PropertyKey ONMOUSEMOVE_KEY =
138 TYPE.registerKey("onmousemove", String.class);
139 static public final PropertyKey ONMOUSEOUT_KEY =
140 TYPE.registerKey("onmouseout", String.class);
141 static public final PropertyKey ONKEYPRESS_KEY =
142 TYPE.registerKey("onkeypress", String.class);
143 static public final PropertyKey ONKEYDOWN_KEY =
144 TYPE.registerKey("onkeydown", String.class);
145 static public final PropertyKey ONKEYUP_KEY =
146 TYPE.registerKey("onkeyup", String.class);
147 static public final PropertyKey EXPAND_ALL_ENABLED_KEY =
148 TYPE.registerKey("expandAllEnabled", Boolean.class, Boolean.TRUE);
149 static public final String FOOTER_FACET = "footer";
150 static public final String HEADER_FACET = "header";
151 static public final String ACTIONS_FACET = "actions";
152 static public final String PATH_STAMP_FACET = "pathStamp";
153
154 static public final String COMPONENT_FAMILY =
155 "org.apache.myfaces.trinidad.TreeTable";
156 static public final String COMPONENT_TYPE =
157 "org.apache.myfaces.trinidad.CoreTreeTable";
158 // Supported client events for client behaviors:
159 private final static Collection<String> _EVENT_NAMES = Collections.unmodifiableCollection(
160 Arrays.asList(
161 "click", "dblclick", "mousedown", "mouseup", "mouseover", "mousemove",
162 "mouseout", "keypress", "keydown", "keyup"
163 ));
164
165 /**
166 * Construct an instance of the CoreTreeTable.
167 */
168 public CoreTreeTable()
169 {
170 super("org.apache.myfaces.trinidad.TreeTable");
171 }
172
173 /**
174 * the component used to render the table footer.
175 */
176 final public UIComponent getFooter()
177 {
178 return getFacet(FOOTER_FACET);
179 }
180
181 /**
182 * the component used to render the table footer.
183 */
184 @SuppressWarnings("unchecked")
185 final public void setFooter(UIComponent footerFacet)
186 {
187 getFacets().put(FOOTER_FACET, footerFacet);
188 }
189
190 /**
191 * the component used to render the table header.
192 */
193 final public UIComponent getHeader()
194 {
195 return getFacet(HEADER_FACET);
196 }
197
198 /**
199 * the component used to render the table header.
200 */
201 @SuppressWarnings("unchecked")
202 final public void setHeader(UIComponent headerFacet)
203 {
204 getFacets().put(HEADER_FACET, headerFacet);
205 }
206
207 /**
208 * content to be rendered inline with the navigation bar.
209 */
210 final public UIComponent getActions()
211 {
212 return getFacet(ACTIONS_FACET);
213 }
214
215 /**
216 * content to be rendered inline with the navigation bar.
217 */
218 @SuppressWarnings("unchecked")
219 final public void setActions(UIComponent actionsFacet)
220 {
221 getFacets().put(ACTIONS_FACET, actionsFacet);
222 }
223
224 /**
225 * the component used to stamp each step of the focus path of this
226 * treeTable.
227 */
228 final public UIComponent getPathStamp()
229 {
230 return getFacet(PATH_STAMP_FACET);
231 }
232
233 /**
234 * the component used to stamp each step of the focus path of this
235 * treeTable.
236 */
237 @SuppressWarnings("unchecked")
238 final public void setPathStamp(UIComponent pathStampFacet)
239 {
240 getFacets().put(PATH_STAMP_FACET, pathStampFacet);
241 }
242
243 /**
244 * Gets if the horizontal grid lines will be drawn.
245 *
246 * @return the new horizontalGridVisible value
247 */
248 final public boolean isHorizontalGridVisible()
249 {
250 return ComponentUtils.resolveBoolean(getProperty(HORIZONTAL_GRID_VISIBLE_KEY), true);
251 }
252
253 /**
254 * Sets if the horizontal grid lines will be drawn.
255 *
256 * @param horizontalGridVisible the new horizontalGridVisible value
257 */
258 final public void setHorizontalGridVisible(boolean horizontalGridVisible)
259 {
260 setProperty(HORIZONTAL_GRID_VISIBLE_KEY, horizontalGridVisible ? Boolean.TRUE : Boolean.FALSE);
261 }
262
263 /**
264 * Gets if the vertical grid lines will be drawn.
265 *
266 * @return the new verticalGridVisible value
267 */
268 final public boolean isVerticalGridVisible()
269 {
270 return ComponentUtils.resolveBoolean(getProperty(VERTICAL_GRID_VISIBLE_KEY), true);
271 }
272
273 /**
274 * Sets if the vertical grid lines will be drawn.
275 *
276 * @param verticalGridVisible the new verticalGridVisible value
277 */
278 final public void setVerticalGridVisible(boolean verticalGridVisible)
279 {
280 setProperty(VERTICAL_GRID_VISIBLE_KEY, verticalGridVisible ? Boolean.TRUE : Boolean.FALSE);
281 }
282
283 /**
284 * Gets text displayed when a table is empty.
285 *
286 * @return the new emptyText value
287 */
288 final public String getEmptyText()
289 {
290 return ComponentUtils.resolveString(getProperty(EMPTY_TEXT_KEY));
291 }
292
293 /**
294 * Sets text displayed when a table is empty.
295 *
296 * @param emptyText the new emptyText value
297 */
298 final public void setEmptyText(String emptyText)
299 {
300 setProperty(EMPTY_TEXT_KEY, (emptyText));
301 }
302
303 /**
304 * Gets the interval between which the column banding alternates. For example, a columnBandingInterval of 1 would display alternately banded columns.
305 *
306 * @return the new columnBandingInterval value
307 */
308 final public int getColumnBandingInterval()
309 {
310 return ComponentUtils.resolveInteger(getProperty(COLUMN_BANDING_INTERVAL_KEY), 0);
311 }
312
313 /**
314 * Sets the interval between which the column banding alternates. For example, a columnBandingInterval of 1 would display alternately banded columns.
315 *
316 * @param columnBandingInterval the new columnBandingInterval value
317 */
318 final public void setColumnBandingInterval(int columnBandingInterval)
319 {
320 setProperty(COLUMN_BANDING_INTERVAL_KEY, Integer.valueOf(columnBandingInterval));
321 }
322
323 /**
324 * Gets the interval between which the row banding alternates. For example, rowBandingInterval=1 would displayalternately banded rows in the Grid.
325 *
326 * @return the new rowBandingInterval value
327 */
328 final public int getRowBandingInterval()
329 {
330 return ComponentUtils.resolveInteger(getProperty(ROW_BANDING_INTERVAL_KEY), 0);
331 }
332
333 /**
334 * Sets the interval between which the row banding alternates. For example, rowBandingInterval=1 would displayalternately banded rows in the Grid.
335 *
336 * @param rowBandingInterval the new rowBandingInterval value
337 */
338 final public void setRowBandingInterval(int rowBandingInterval)
339 {
340 setProperty(ROW_BANDING_INTERVAL_KEY, Integer.valueOf(rowBandingInterval));
341 }
342
343 /**
344 * Gets whether rows in this table selectable. Valid values are "none", "single", "multiple"
345 *
346 * @return the new rowSelection value
347 */
348 final public String getRowSelection()
349 {
350 return ComponentUtils.resolveString(getProperty(ROW_SELECTION_KEY), "none");
351 }
352
353 /**
354 * Sets whether rows in this table selectable. Valid values are "none", "single", "multiple"
355 *
356 * @param rowSelection the new rowSelection value
357 */
358 final public void setRowSelection(String rowSelection)
359 {
360 setProperty(ROW_SELECTION_KEY, (rowSelection));
361 }
362
363 /**
364 * Gets If set to TRUE on a form element, the component will automatically submit
365 * the enclosing form when an appropriate action takes place (a click, text
366 * change, etc.). This only takes effect if rowSelection attribute enabled.
367 *
368 * @return the new autoSubmit value
369 */
370 final public boolean isAutoSubmit()
371 {
372 return ComponentUtils.resolveBoolean(getProperty(AUTO_SUBMIT_KEY), false);
373 }
374
375 /**
376 * Sets If set to TRUE on a form element, the component will automatically submit
377 * the enclosing form when an appropriate action takes place (a click, text
378 * change, etc.). This only takes effect if rowSelection attribute enabled.
379 *
380 * @param autoSubmit the new autoSubmit value
381 */
382 final public void setAutoSubmit(boolean autoSubmit)
383 {
384 setProperty(AUTO_SUBMIT_KEY, autoSubmit ? Boolean.TRUE : Boolean.FALSE);
385 }
386
387 /**
388 * Gets the width of the table. The value must either be a number of pixels or a percentage - it is not a CSS width.
389 *
390 * @return the new width value
391 */
392 final public String getWidth()
393 {
394 return ComponentUtils.resolveString(getProperty(WIDTH_KEY));
395 }
396
397 /**
398 * Sets the width of the table. The value must either be a number of pixels or a percentage - it is not a CSS width.
399 *
400 * @param width the new width value
401 */
402 final public void setWidth(String width)
403 {
404 setProperty(WIDTH_KEY, (width));
405 }
406
407 /**
408 * Gets the summary of this table's purpose and structure
409 * for user agents rendering to non-visual media.
410 *
411 * @return the new summary value
412 */
413 final public String getSummary()
414 {
415 return ComponentUtils.resolveString(getProperty(SUMMARY_KEY));
416 }
417
418 /**
419 * Sets the summary of this table's purpose and structure
420 * for user agents rendering to non-visual media.
421 *
422 * @param summary the new summary value
423 */
424 final public void setSummary(String summary)
425 {
426 setProperty(SUMMARY_KEY, (summary));
427 }
428
429 /**
430 * Gets the CSS styles to use for this component.
431 *
432 * @return the new inlineStyle value
433 */
434 final public String getInlineStyle()
435 {
436 return ComponentUtils.resolveString(getProperty(INLINE_STYLE_KEY));
437 }
438
439 /**
440 * Sets the CSS styles to use for this component.
441 *
442 * @param inlineStyle the new inlineStyle value
443 */
444 final public void setInlineStyle(String inlineStyle)
445 {
446 setProperty(INLINE_STYLE_KEY, (inlineStyle));
447 }
448
449 /**
450 * Gets a CSS style class to use for this component.
451 *
452 * @return the new styleClass value
453 */
454 final public String getStyleClass()
455 {
456 return ComponentUtils.resolveString(getProperty(STYLE_CLASS_KEY));
457 }
458
459 /**
460 * Sets a CSS style class to use for this component.
461 *
462 * @param styleClass the new styleClass value
463 */
464 final public void setStyleClass(String styleClass)
465 {
466 setProperty(STYLE_CLASS_KEY, (styleClass));
467 }
468
469 /**
470 * Gets The short description of the component. This text is commonly used by user agents to display tooltip help text.
471 *
472 * @return the new shortDesc value
473 */
474 final public String getShortDesc()
475 {
476 return ComponentUtils.resolveString(getProperty(SHORT_DESC_KEY));
477 }
478
479 /**
480 * Sets The short description of the component. This text is commonly used by user agents to display tooltip help text.
481 *
482 * @param shortDesc the new shortDesc value
483 */
484 final public void setShortDesc(String shortDesc)
485 {
486 setProperty(SHORT_DESC_KEY, (shortDesc));
487 }
488
489 /**
490 * Gets the IDs of the components that should trigger a partial update.
491 * <p>
492 * This component will listen on the trigger components. If one of the
493 * trigger components receives an event that will cause it to update
494 * in some way, this component will request to be updated too.</p>
495 * <p>
496 * Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
497 * </p>
498 * <p>
499 * Identifiers must account for NamingContainers. You can use a single colon to start the search from the root,
500 * or use multiple colons to move up through the NamingContainer. For example,
501 * "::" will pop out of this component's naming container (it pops out of itself if it is a naming container),
502 * ":::" will pop out of two naming containers, etc. The search for
503 * the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the
504 * component with id = commandButton1 after popping out of two naming containers relative to this component.
505 * To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".</p>
506 *
507 * @return the new partialTriggers value
508 */
509 final public String[] getPartialTriggers()
510 {
511 return (String[])getProperty(PARTIAL_TRIGGERS_KEY);
512 }
513
514 /**
515 * Sets the IDs of the components that should trigger a partial update.
516 * <p>
517 * This component will listen on the trigger components. If one of the
518 * trigger components receives an event that will cause it to update
519 * in some way, this component will request to be updated too.</p>
520 * <p>
521 * Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
522 * </p>
523 * <p>
524 * Identifiers must account for NamingContainers. You can use a single colon to start the search from the root,
525 * or use multiple colons to move up through the NamingContainer. For example,
526 * "::" will pop out of this component's naming container (it pops out of itself if it is a naming container),
527 * ":::" will pop out of two naming containers, etc. The search for
528 * the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the
529 * component with id = commandButton1 after popping out of two naming containers relative to this component.
530 * To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".</p>
531 *
532 * @param partialTriggers the new partialTriggers value
533 */
534 final public void setPartialTriggers(String[] partialTriggers)
535 {
536 setProperty(PARTIAL_TRIGGERS_KEY, (partialTriggers));
537 }
538
539 /**
540 * Gets an onclick Javascript handler.
541 *
542 * @return the new onclick value
543 */
544 final public String getOnclick()
545 {
546 return ComponentUtils.resolveString(getProperty(ONCLICK_KEY));
547 }
548
549 /**
550 * Sets an onclick Javascript handler.
551 *
552 * @param onclick the new onclick value
553 */
554 final public void setOnclick(String onclick)
555 {
556 setProperty(ONCLICK_KEY, (onclick));
557 }
558
559 /**
560 * Gets an ondblclick Javascript handler.
561 *
562 * @return the new ondblclick value
563 */
564 final public String getOndblclick()
565 {
566 return ComponentUtils.resolveString(getProperty(ONDBLCLICK_KEY));
567 }
568
569 /**
570 * Sets an ondblclick Javascript handler.
571 *
572 * @param ondblclick the new ondblclick value
573 */
574 final public void setOndblclick(String ondblclick)
575 {
576 setProperty(ONDBLCLICK_KEY, (ondblclick));
577 }
578
579 /**
580 * Gets an onmousedown Javascript handler.
581 *
582 * @return the new onmousedown value
583 */
584 final public String getOnmousedown()
585 {
586 return ComponentUtils.resolveString(getProperty(ONMOUSEDOWN_KEY));
587 }
588
589 /**
590 * Sets an onmousedown Javascript handler.
591 *
592 * @param onmousedown the new onmousedown value
593 */
594 final public void setOnmousedown(String onmousedown)
595 {
596 setProperty(ONMOUSEDOWN_KEY, (onmousedown));
597 }
598
599 /**
600 * Gets an onmouseup Javascript handler.
601 *
602 * @return the new onmouseup value
603 */
604 final public String getOnmouseup()
605 {
606 return ComponentUtils.resolveString(getProperty(ONMOUSEUP_KEY));
607 }
608
609 /**
610 * Sets an onmouseup Javascript handler.
611 *
612 * @param onmouseup the new onmouseup value
613 */
614 final public void setOnmouseup(String onmouseup)
615 {
616 setProperty(ONMOUSEUP_KEY, (onmouseup));
617 }
618
619 /**
620 * Gets an onmouseover Javascript handler.
621 *
622 * @return the new onmouseover value
623 */
624 final public String getOnmouseover()
625 {
626 return ComponentUtils.resolveString(getProperty(ONMOUSEOVER_KEY));
627 }
628
629 /**
630 * Sets an onmouseover Javascript handler.
631 *
632 * @param onmouseover the new onmouseover value
633 */
634 final public void setOnmouseover(String onmouseover)
635 {
636 setProperty(ONMOUSEOVER_KEY, (onmouseover));
637 }
638
639 /**
640 * Gets an onmousemove Javascript handler.
641 *
642 * @return the new onmousemove value
643 */
644 final public String getOnmousemove()
645 {
646 return ComponentUtils.resolveString(getProperty(ONMOUSEMOVE_KEY));
647 }
648
649 /**
650 * Sets an onmousemove Javascript handler.
651 *
652 * @param onmousemove the new onmousemove value
653 */
654 final public void setOnmousemove(String onmousemove)
655 {
656 setProperty(ONMOUSEMOVE_KEY, (onmousemove));
657 }
658
659 /**
660 * Gets an onmouseout Javascript handler.
661 *
662 * @return the new onmouseout value
663 */
664 final public String getOnmouseout()
665 {
666 return ComponentUtils.resolveString(getProperty(ONMOUSEOUT_KEY));
667 }
668
669 /**
670 * Sets an onmouseout Javascript handler.
671 *
672 * @param onmouseout the new onmouseout value
673 */
674 final public void setOnmouseout(String onmouseout)
675 {
676 setProperty(ONMOUSEOUT_KEY, (onmouseout));
677 }
678
679 /**
680 * Gets an onkeypress Javascript handler.
681 *
682 * @return the new onkeypress value
683 */
684 final public String getOnkeypress()
685 {
686 return ComponentUtils.resolveString(getProperty(ONKEYPRESS_KEY));
687 }
688
689 /**
690 * Sets an onkeypress Javascript handler.
691 *
692 * @param onkeypress the new onkeypress value
693 */
694 final public void setOnkeypress(String onkeypress)
695 {
696 setProperty(ONKEYPRESS_KEY, (onkeypress));
697 }
698
699 /**
700 * Gets an onkeydown Javascript handler.
701 *
702 * @return the new onkeydown value
703 */
704 final public String getOnkeydown()
705 {
706 return ComponentUtils.resolveString(getProperty(ONKEYDOWN_KEY));
707 }
708
709 /**
710 * Sets an onkeydown Javascript handler.
711 *
712 * @param onkeydown the new onkeydown value
713 */
714 final public void setOnkeydown(String onkeydown)
715 {
716 setProperty(ONKEYDOWN_KEY, (onkeydown));
717 }
718
719 /**
720 * Gets an onkeyup Javascript handler.
721 *
722 * @return the new onkeyup value
723 */
724 final public String getOnkeyup()
725 {
726 return ComponentUtils.resolveString(getProperty(ONKEYUP_KEY));
727 }
728
729 /**
730 * Sets an onkeyup Javascript handler.
731 *
732 * @param onkeyup the new onkeyup value
733 */
734 final public void setOnkeyup(String onkeyup)
735 {
736 setProperty(ONKEYUP_KEY, (onkeyup));
737 }
738
739 /**
740 * Gets Whether the Expand All, Collapse All links should be rendered.
741 *
742 * @return the new expandAllEnabled value
743 */
744 final public boolean isExpandAllEnabled()
745 {
746 return ComponentUtils.resolveBoolean(getProperty(EXPAND_ALL_ENABLED_KEY), true);
747 }
748
749 /**
750 * Sets Whether the Expand All, Collapse All links should be rendered.
751 *
752 * @param expandAllEnabled the new expandAllEnabled value
753 */
754 final public void setExpandAllEnabled(boolean expandAllEnabled)
755 {
756 setProperty(EXPAND_ALL_ENABLED_KEY, expandAllEnabled ? Boolean.TRUE : Boolean.FALSE);
757 }
758
759 @Override
760 public String getDefaultEventName()
761 {
762 return "click";
763 }
764
765 @Override
766 public Collection<String> getEventNames()
767 {
768 return _EVENT_NAMES;
769 }
770
771 @Override
772 public Map<String, List<ClientBehavior>> getClientBehaviors()
773 {
774 return super.getClientBehaviors();
775 }
776
777 @Override
778 public void addClientBehavior(
779 String eventName,
780 ClientBehavior behavior)
781 {
782 super.addClientBehavior(eventName, behavior);
783 }
784
785 @Override
786 public String getFamily()
787 {
788 return COMPONENT_FAMILY;
789 }
790
791 @Override
792 protected FacesBean.Type getBeanType()
793 {
794 return TYPE;
795 }
796
797 /**
798 * Construct an instance of the CoreTreeTable.
799 */
800 protected CoreTreeTable(
801 String rendererType
802 )
803 {
804 super(rendererType);
805 }
806
807 static
808 {
809 TYPE.lockAndRegister("org.apache.myfaces.trinidad.TreeTable","org.apache.myfaces.trinidad.TreeTable");
810 }
811 }