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 * The selectManyShuttle component provides a mechanism for selecting
33 * multiple values from a list of values by allowing the user to move
34 * items between two lists. The "value" attribute of the selectManyShuttle,
35 * like any other selectMany component, must be a List or array of values
36 * that correspond to a value of one of the contained SelectItems. If a
37 * value of one of the SelectItems is in the List or array, that item
38 * will appear in the trailing list. Looked at another way, you can
39 * change a selectManyListbox directly into a selectManyShuttle; instead
40 * of the "value" driving which items are selected in the listbox, it
41 * affects which items appear in the trailing list of the shuttle.
42 * <html:p>
43 * The selectManyShuttle does not allow for reordering;
44 * the selectOrderShuttle component adds this functionality
45 * to selectManyShuttle. selectManyShuttle also does not include
46 * automatic messaging support, unlike most other Trinidad messaging
47 * components.
48 * </html:p>
49 * <section name="Attributes">
50 * <html:p>
51 * Each list in the shuttle has a header, the
52 * text of which can be set as the "leadingHeader" attribute
53 * and the "trailingHeader" attribute.
54 * </html:p>
55 * <html:p>
56 * Each container in the shuttle can have an area to display item
57 * descriptions below the list. To indicate whether or not
58 * a container should have such an area set the attributes
59 * <html:code>"leadingDescShown"</html:code> attribute
60 * and the <html:code>"trailingDescShown"</html:code> attribute.
61 * </html:p>
62 * <html:p>
63 * To control the display size(number of items) of the lists, the
64 * size attribute has to be specified. The size specified must be
65 * between 10 and 20 items. If the attribute is not set or has a
66 * value less than 10, the size would have a default or minimum
67 * value of 10. If the attribute value specified is more than 20 items,
68 * the size would have the maximum value of 20.
69 * </html:p>
70 * </section>
71 *
72 * <section name="Shuttle Footers">
73 * <html:p>
74 * The shuttle allows the user to place components - typically,
75 * buttons or icons - below each of the lists. These
76 * buttons or icons will take up only one row below the lists
77 * (no wrapping), and should have a maximum height of 26 pixels
78 * if the layout of the shuttle is to remain consistent. The
79 * buttons and icons should be placed within the
80 * shuttle as the <html:code>leadingFooter</html:code>
81 * or the <html:code>trailingFooter</html:code> facet,
82 * depending on which list the buttons should go under.
83 * Leave the appropriate facet empty if no footer is
84 * required under a list. These buttons and icons can be
85 * used to perform operations upon the shuttle using a
86 * ShuttleProxy as described below.
87 * </html:p>
88 * </section>
89 * <section name="Shuttle Filter">
90 * <html:p>
91 * The shuttle allows the user to place a filter above the
92 * list in the leading container. The filter is added as the
93 * <html:code>filter</html:code> facet. The filter can be used to
94 * perform operations upon the shuttle using a ShuttleProxy as
95 * described below.
96 * </html:p>
97 * </section>
98 *
99 * <section name="JavaScript proxies">
100 * <html:p>
101 * In some cases, developers will need to use JavaScript to
102 * manipulate or use the contents of the lists. This may be
103 * required as actions for the buttons or icons in the
104 * shuttle footers or outside the shuttle all together. Thus,
105 * a set of Javascript utility methods are available that
106 * operate on the lists. These are located in the shuttle.js
107 * Javascript library, which is automatically loaded if you
108 * use the shuttle.
109 * </html:p>
110 * <html:p>
111 * These methods can be accessed by creating a
112 * <html:code>ShuttleProxy</html:code> instance based on the
113 * shuttle client ID and form.
114 * <html:pre>
115 * // create the proxy object
116 * var proxy2 = new ShuttleProxy("testShuttle2", "testForm2");
117 * </html:pre>
118 * </html:p>
119 * <html:p>
120 * Once the proxy is created, you can use it to gain
121 * information about the lists or to manipulate the lists in
122 * the shuttle. The proxy provides the following functions:
123 *
124 * <html:ul>
125 *
126 * <html:li><html:code>move(fromLeadingList, allItems)</html:code> : moves items from
127 * one list to the other. If <html:code>fromLeadingList</html:code> is true, the items
128 * move from the leading list to the trailing list. If
129 * <html:code>fromLeadingList</html:code> is false, the items move the opposite
130 * direction. If <html:code>allItems</html:code> is true, all the items are moved,
131 * otherwise only the selected items are moved.</html:li>
132 *
133 * <html:li><html:code>reorderList(down, allTheWay, leadingList)</html:code> : reorders
134 * a list. If <html:code>down</html:code> is true, the items move down in the list,
135 * otherwise they move up. If <html:code>allTheWay</html:code> is true, the items move
136 * all the way to the top or bottom of the list depending on the value of
137 * <html:code>down</html:code>. If <html:code>leadingList</html:code> is true, the leading list
138 * is reordered, otherwise the trailing list is reordered.</html:li>
139 *
140 * <html:li><html:code>getItems(leadingList)</html:code> : returns an array of
141 * <html:code>option</html:code> objects that make up a list. If <html:code>leadingList</html:code>
142 * is true, the array has the leading list's options, otherwise the items
143 * are from the trailing list. Note that the array will not include the
144 * horizontal bar at the end of the lists.</html:li>
145 *
146 * <html:li><html:code>getSelectedItems(leadingList)</html:code> : returns an array of
147 * <html:code>option</html:code> objects that are selected in a list. If
148 * <html:code>leadingList</html:code> is true, the array has the leading list's options,
149 * otherwise the items are from the trailingList. Note that the array will not
150 * include the horizontal bar at the end of the lists.</html:li>
151 *
152 * <html:li><html:code>getItemCount(leadingList)</html:code> : returns the number of
153 * items in a list. If <html:code>leadingList</html:code> is true, the number returned
154 * is the number of items in the leading list. Otherwise, the number returned
155 * is the number of items in the trailing list. Note that the horizontal bar
156 * at the end of the lists is not included in this count -- you only get the
157 * number of actual items.</html:li>
158 *
159 * <html:li><html:code>getSelectedItemCount(leadingList)</html:code> : returns the number
160 * of selected items in a list. If <html:code>leadingList</html:code> is true, the
161 * number returned is the number of selected items in the leading list.
162 * Otherwise, the number returned is the number of selected items in the
163 * trailing list. Note that the horizontal bar at the end of the lists is not
164 * included in this count -- you only get the number of actual items.</html:li>
165 *
166 * <html:li><html:code>addItem(leadingList, index, text, value, description)</html:code> : adds an item
167 * at the given index to a list. The item is added to the leading list if
168 * <html:code>leadingList</html:code> is true, otherwise it is added to the trailing list.
169 * The <html:code>index</html:code> should be 0 based. Thus, to insert an item at
170 * the end of a list, set <html:code>index</html:code> to
171 * <html:code>shuttleProxy.getItemCount(leadinglist)</html:code>. The <html:code>text</html:code>
172 * parameter specifies the display text for the item, while the
173 * <html:code>value</html:code> parameter specifies the value that represents this item
174 * upon form submission. The <html:code>description</html:code> parameter specifies a
175 * description of the item. The <html:code>description</html:code> parameter can be omitted.</html:li>
176 *
177 * <html:li><html:code>deleteItemByValue(leadingList, value)</html:code> :
178 * deletes an item
179 * from a list. The item is deleted from the leading list if
180 * <html:code>leadingList</html:code> is true, otherwise it is deleted from the trailing
181 * list. The item deleted is the first item with the value (not text) of
182 * <html:code>value</html:code>.</html:li>
183 *
184 * <html:li><html:code>deleteSelectedItems(leadingList)</html:code> : deletes items
185 * from a list. The items are deleted from the leading list if
186 * <html:code>leadingList</html:code> is true, otherwise they are deleted from the
187 * trailing list. The items deleted are the items that are selected in the
188 * appropriate list.</html:li>
189 *
190 * <html:li><html:code>reset()</html:code> : reset the shuttle
191 * to its initial state.</html:li>
192 *
193 * </html:ul>
194 *
195 * </html:p>
196 *
197 * </section>
198 *
199 * <h4>Events:</h4>
200 * <table border="1" width="100%" cellpadding="3" summary="">
201 * <tr bgcolor="#CCCCFF" class="TableHeadingColor">
202 * <th align="left">Type</th>
203 * <th align="left">Phases</th>
204 * <th align="left">Description</th>
205 * </tr>
206 * <tr class="TableRowColor">
207 * <td valign="top"><code>javax.faces.event.ValueChangeEvent</code></td>
208 * <td valign="top" nowrap>Process Validations<br>Apply Request Values</td>
209 * <td valign="top">The valueChange event is delivered when the value
210 attribute is changed.</td>
211 * </tr>
212 * <tr class="TableRowColor">
213 * <td valign="top"><code>org.apache.myfaces.trinidad.event.AttributeChangeEvent</code></td>
214 * <td valign="top" nowrap>Invoke Application<br>Apply Request Values</td>
215 * <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>
216 * </tr>
217 * </table>
218 */
219 public class CoreSelectManyShuttle extends UIXSelectMany
220 {
221 static public final FacesBean.Type TYPE = new FacesBean.Type(
222 UIXSelectMany.TYPE);
223 static public final PropertyKey VALUE_PASS_THRU_KEY =
224 TYPE.registerKey("valuePassThru", Boolean.class, Boolean.FALSE);
225 static public final PropertyKey READ_ONLY_KEY =
226 TYPE.registerKey("readOnly", Boolean.class, Boolean.FALSE);
227 static public final PropertyKey DISABLED_KEY =
228 TYPE.registerKey("disabled", Boolean.class, Boolean.FALSE);
229 static public final PropertyKey ONCHANGE_KEY =
230 TYPE.registerKey("onchange", String.class);
231 static public final PropertyKey INLINE_STYLE_KEY =
232 TYPE.registerKey("inlineStyle", String.class);
233 static public final PropertyKey STYLE_CLASS_KEY =
234 TYPE.registerKey("styleClass", String.class);
235 static public final PropertyKey SHORT_DESC_KEY =
236 TYPE.registerKey("shortDesc", String.class);
237 static public final PropertyKey PARTIAL_TRIGGERS_KEY =
238 TYPE.registerKey("partialTriggers", String[].class);
239 static public final PropertyKey ONCLICK_KEY =
240 TYPE.registerKey("onclick", String.class);
241 static public final PropertyKey ONDBLCLICK_KEY =
242 TYPE.registerKey("ondblclick", String.class);
243 static public final PropertyKey ONMOUSEDOWN_KEY =
244 TYPE.registerKey("onmousedown", String.class);
245 static public final PropertyKey ONMOUSEUP_KEY =
246 TYPE.registerKey("onmouseup", String.class);
247 static public final PropertyKey ONMOUSEOVER_KEY =
248 TYPE.registerKey("onmouseover", String.class);
249 static public final PropertyKey ONMOUSEMOVE_KEY =
250 TYPE.registerKey("onmousemove", String.class);
251 static public final PropertyKey ONMOUSEOUT_KEY =
252 TYPE.registerKey("onmouseout", String.class);
253 static public final PropertyKey ONKEYPRESS_KEY =
254 TYPE.registerKey("onkeypress", String.class);
255 static public final PropertyKey ONKEYDOWN_KEY =
256 TYPE.registerKey("onkeydown", String.class);
257 static public final PropertyKey ONKEYUP_KEY =
258 TYPE.registerKey("onkeyup", String.class);
259 static public final PropertyKey ONBLUR_KEY =
260 TYPE.registerKey("onblur", String.class);
261 static public final PropertyKey ONFOCUS_KEY =
262 TYPE.registerKey("onfocus", String.class);
263 static public final PropertyKey SIZE_KEY =
264 TYPE.registerKey("size", Integer.class);
265 static public final PropertyKey LEADING_HEADER_KEY =
266 TYPE.registerKey("leadingHeader", String.class);
267 static public final PropertyKey TRAILING_HEADER_KEY =
268 TYPE.registerKey("trailingHeader", String.class);
269 static public final PropertyKey LEADING_DESC_SHOWN_KEY =
270 TYPE.registerKey("leadingDescShown", Boolean.class, Boolean.FALSE);
271 static public final PropertyKey TRAILING_DESC_SHOWN_KEY =
272 TYPE.registerKey("trailingDescShown", Boolean.class, Boolean.FALSE);
273 static public final PropertyKey LABEL_KEY =
274 TYPE.registerKey("label", String.class);
275 static public final String FILTER_FACET = "filter";
276 static public final String LEADING_FOOTER_FACET = "leadingFooter";
277 static public final String TRAILING_FOOTER_FACET = "trailingFooter";
278
279 static public final String COMPONENT_FAMILY =
280 "org.apache.myfaces.trinidad.SelectMany";
281 static public final String COMPONENT_TYPE =
282 "org.apache.myfaces.trinidad.CoreSelectManyShuttle";
283
284 /**
285 * Construct an instance of the CoreSelectManyShuttle.
286 */
287 public CoreSelectManyShuttle()
288 {
289 super("org.apache.myfaces.trinidad.Shuttle");
290 }
291
292 /**
293 * the filter above the leading list.
294 */
295 final public UIComponent getFilter()
296 {
297 return getFacet(FILTER_FACET);
298 }
299
300 /**
301 * the filter above the leading list.
302 */
303 @SuppressWarnings("unchecked")
304 final public void setFilter(UIComponent filterFacet)
305 {
306 getFacets().put(FILTER_FACET, filterFacet);
307 }
308
309 /**
310 * the footer of buttons/images under the leading list.
311 */
312 final public UIComponent getLeadingFooter()
313 {
314 return getFacet(LEADING_FOOTER_FACET);
315 }
316
317 /**
318 * the footer of buttons/images under the leading list.
319 */
320 @SuppressWarnings("unchecked")
321 final public void setLeadingFooter(UIComponent leadingFooterFacet)
322 {
323 getFacets().put(LEADING_FOOTER_FACET, leadingFooterFacet);
324 }
325
326 /**
327 * the footer of buttons/images under the trailing list.
328 */
329 final public UIComponent getTrailingFooter()
330 {
331 return getFacet(TRAILING_FOOTER_FACET);
332 }
333
334 /**
335 * the footer of buttons/images under the trailing list.
336 */
337 @SuppressWarnings("unchecked")
338 final public void setTrailingFooter(UIComponent trailingFooterFacet)
339 {
340 getFacets().put(TRAILING_FOOTER_FACET, trailingFooterFacet);
341 }
342
343 /**
344 * Gets whether or not the values are passed through to
345 * the client. When valuePassThru is false
346 * the value and the options' values
347 * are converted to indexes before being sent to the client.
348 * Therefore, when valuePassThru is false,
349 * there is no need to write your own converter when you are using custom Objects
350 * as your values and/or options.
351 * If you need to know the actual values on the client-side, then you can set
352 * valuePassThru to true. This will pass the values through to the client,
353 * using your custom converter if it is available; a custom converter is
354 * needed if you are using custom objects. The default is false.
355 *
356 * @return the new valuePassThru value
357 */
358 final public boolean isValuePassThru()
359 {
360 return ComponentUtils.resolveBoolean(getProperty(VALUE_PASS_THRU_KEY), false);
361 }
362
363 /**
364 * Sets whether or not the values are passed through to
365 * the client. When valuePassThru is false
366 * the value and the options' values
367 * are converted to indexes before being sent to the client.
368 * Therefore, when valuePassThru is false,
369 * there is no need to write your own converter when you are using custom Objects
370 * as your values and/or options.
371 * If you need to know the actual values on the client-side, then you can set
372 * valuePassThru to true. This will pass the values through to the client,
373 * using your custom converter if it is available; a custom converter is
374 * needed if you are using custom objects. The default is false.
375 *
376 * @param valuePassThru the new valuePassThru value
377 */
378 final public void setValuePassThru(boolean valuePassThru)
379 {
380 setProperty(VALUE_PASS_THRU_KEY, valuePassThru ? Boolean.TRUE : Boolean.FALSE);
381 }
382
383 /**
384 * Gets whether the element is read-only.
385 *
386 * @return the new readOnly value
387 */
388 final public boolean isReadOnly()
389 {
390 return ComponentUtils.resolveBoolean(getProperty(READ_ONLY_KEY), false);
391 }
392
393 /**
394 * Sets whether the element is read-only.
395 *
396 * @param readOnly the new readOnly value
397 */
398 final public void setReadOnly(boolean readOnly)
399 {
400 setProperty(READ_ONLY_KEY, readOnly ? Boolean.TRUE : Boolean.FALSE);
401 }
402
403 /**
404 * Gets whether the element is disabled.
405 *
406 * @return the new disabled value
407 */
408 final public boolean isDisabled()
409 {
410 return ComponentUtils.resolveBoolean(getProperty(DISABLED_KEY), false);
411 }
412
413 /**
414 * Sets whether the element is disabled.
415 *
416 * @param disabled the new disabled value
417 */
418 final public void setDisabled(boolean disabled)
419 {
420 setProperty(DISABLED_KEY, disabled ? Boolean.TRUE : Boolean.FALSE);
421 }
422
423 /**
424 * Gets event handler for when the value is changed.
425 *
426 * @return the new onchange value
427 */
428 final public String getOnchange()
429 {
430 return ComponentUtils.resolveString(getProperty(ONCHANGE_KEY));
431 }
432
433 /**
434 * Sets event handler for when the value is changed.
435 *
436 * @param onchange the new onchange value
437 */
438 final public void setOnchange(String onchange)
439 {
440 setProperty(ONCHANGE_KEY, (onchange));
441 }
442
443 /**
444 * Gets the CSS styles to use for this component.
445 *
446 * @return the new inlineStyle value
447 */
448 final public String getInlineStyle()
449 {
450 return ComponentUtils.resolveString(getProperty(INLINE_STYLE_KEY));
451 }
452
453 /**
454 * Sets the CSS styles to use for this component.
455 *
456 * @param inlineStyle the new inlineStyle value
457 */
458 final public void setInlineStyle(String inlineStyle)
459 {
460 setProperty(INLINE_STYLE_KEY, (inlineStyle));
461 }
462
463 /**
464 * Gets a CSS style class to use for this component.
465 *
466 * @return the new styleClass value
467 */
468 final public String getStyleClass()
469 {
470 return ComponentUtils.resolveString(getProperty(STYLE_CLASS_KEY));
471 }
472
473 /**
474 * Sets a CSS style class to use for this component.
475 *
476 * @param styleClass the new styleClass value
477 */
478 final public void setStyleClass(String styleClass)
479 {
480 setProperty(STYLE_CLASS_KEY, (styleClass));
481 }
482
483 /**
484 * Gets The short description of the component. This text is commonly used by user agents to display tooltip help text.
485 *
486 * @return the new shortDesc value
487 */
488 final public String getShortDesc()
489 {
490 return ComponentUtils.resolveString(getProperty(SHORT_DESC_KEY));
491 }
492
493 /**
494 * Sets The short description of the component. This text is commonly used by user agents to display tooltip help text.
495 *
496 * @param shortDesc the new shortDesc value
497 */
498 final public void setShortDesc(String shortDesc)
499 {
500 setProperty(SHORT_DESC_KEY, (shortDesc));
501 }
502
503 /**
504 * Gets the IDs of the components that should trigger a partial update.
505 * <p>
506 * This component will listen on the trigger components. If one of the
507 * trigger components receives an event that will cause it to update
508 * in some way, this component will request to be updated too.</p>
509 * <p>
510 * Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
511 * </p>
512 * <p>
513 * Identifiers must account for NamingContainers. You can use a single colon to start the search from the root,
514 * or use multiple colons to move up through the NamingContainer. For example,
515 * "::" will pop out of this component's naming container (it pops out of itself if it is a naming container),
516 * ":::" will pop out of two naming containers, etc. The search for
517 * the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the
518 * component with id = commandButton1 after popping out of two naming containers relative to this component.
519 * To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".</p>
520 *
521 * @return the new partialTriggers value
522 */
523 final public String[] getPartialTriggers()
524 {
525 return (String[])getProperty(PARTIAL_TRIGGERS_KEY);
526 }
527
528 /**
529 * Sets the IDs of the components that should trigger a partial update.
530 * <p>
531 * This component will listen on the trigger components. If one of the
532 * trigger components receives an event that will cause it to update
533 * in some way, this component will request to be updated too.</p>
534 * <p>
535 * Separate multiple triggers with a space. e.g., partialTriggers="cmp1 cmp2"
536 * </p>
537 * <p>
538 * Identifiers must account for NamingContainers. You can use a single colon to start the search from the root,
539 * or use multiple colons to move up through the NamingContainer. For example,
540 * "::" will pop out of this component's naming container (it pops out of itself if it is a naming container),
541 * ":::" will pop out of two naming containers, etc. The search for
542 * the partialTrigger begins from there. e.g., partialTriggers=":::commandButton1" the search begins for the
543 * component with id = commandButton1 after popping out of two naming containers relative to this component.
544 * To go into naming containers, you separate the naming containers with ':', e.g.,partialTriggers= "nc1:nc2:nc3:componentId".</p>
545 *
546 * @param partialTriggers the new partialTriggers value
547 */
548 final public void setPartialTriggers(String[] partialTriggers)
549 {
550 setProperty(PARTIAL_TRIGGERS_KEY, (partialTriggers));
551 }
552
553 /**
554 * Gets an onclick Javascript handler.
555 *
556 * @return the new onclick value
557 */
558 final public String getOnclick()
559 {
560 return ComponentUtils.resolveString(getProperty(ONCLICK_KEY));
561 }
562
563 /**
564 * Sets an onclick Javascript handler.
565 *
566 * @param onclick the new onclick value
567 */
568 final public void setOnclick(String onclick)
569 {
570 setProperty(ONCLICK_KEY, (onclick));
571 }
572
573 /**
574 * Gets an ondblclick Javascript handler.
575 *
576 * @return the new ondblclick value
577 */
578 final public String getOndblclick()
579 {
580 return ComponentUtils.resolveString(getProperty(ONDBLCLICK_KEY));
581 }
582
583 /**
584 * Sets an ondblclick Javascript handler.
585 *
586 * @param ondblclick the new ondblclick value
587 */
588 final public void setOndblclick(String ondblclick)
589 {
590 setProperty(ONDBLCLICK_KEY, (ondblclick));
591 }
592
593 /**
594 * Gets an onmousedown Javascript handler.
595 *
596 * @return the new onmousedown value
597 */
598 final public String getOnmousedown()
599 {
600 return ComponentUtils.resolveString(getProperty(ONMOUSEDOWN_KEY));
601 }
602
603 /**
604 * Sets an onmousedown Javascript handler.
605 *
606 * @param onmousedown the new onmousedown value
607 */
608 final public void setOnmousedown(String onmousedown)
609 {
610 setProperty(ONMOUSEDOWN_KEY, (onmousedown));
611 }
612
613 /**
614 * Gets an onmouseup Javascript handler.
615 *
616 * @return the new onmouseup value
617 */
618 final public String getOnmouseup()
619 {
620 return ComponentUtils.resolveString(getProperty(ONMOUSEUP_KEY));
621 }
622
623 /**
624 * Sets an onmouseup Javascript handler.
625 *
626 * @param onmouseup the new onmouseup value
627 */
628 final public void setOnmouseup(String onmouseup)
629 {
630 setProperty(ONMOUSEUP_KEY, (onmouseup));
631 }
632
633 /**
634 * Gets an onmouseover Javascript handler.
635 *
636 * @return the new onmouseover value
637 */
638 final public String getOnmouseover()
639 {
640 return ComponentUtils.resolveString(getProperty(ONMOUSEOVER_KEY));
641 }
642
643 /**
644 * Sets an onmouseover Javascript handler.
645 *
646 * @param onmouseover the new onmouseover value
647 */
648 final public void setOnmouseover(String onmouseover)
649 {
650 setProperty(ONMOUSEOVER_KEY, (onmouseover));
651 }
652
653 /**
654 * Gets an onmousemove Javascript handler.
655 *
656 * @return the new onmousemove value
657 */
658 final public String getOnmousemove()
659 {
660 return ComponentUtils.resolveString(getProperty(ONMOUSEMOVE_KEY));
661 }
662
663 /**
664 * Sets an onmousemove Javascript handler.
665 *
666 * @param onmousemove the new onmousemove value
667 */
668 final public void setOnmousemove(String onmousemove)
669 {
670 setProperty(ONMOUSEMOVE_KEY, (onmousemove));
671 }
672
673 /**
674 * Gets an onmouseout Javascript handler.
675 *
676 * @return the new onmouseout value
677 */
678 final public String getOnmouseout()
679 {
680 return ComponentUtils.resolveString(getProperty(ONMOUSEOUT_KEY));
681 }
682
683 /**
684 * Sets an onmouseout Javascript handler.
685 *
686 * @param onmouseout the new onmouseout value
687 */
688 final public void setOnmouseout(String onmouseout)
689 {
690 setProperty(ONMOUSEOUT_KEY, (onmouseout));
691 }
692
693 /**
694 * Gets an onkeypress Javascript handler.
695 *
696 * @return the new onkeypress value
697 */
698 final public String getOnkeypress()
699 {
700 return ComponentUtils.resolveString(getProperty(ONKEYPRESS_KEY));
701 }
702
703 /**
704 * Sets an onkeypress Javascript handler.
705 *
706 * @param onkeypress the new onkeypress value
707 */
708 final public void setOnkeypress(String onkeypress)
709 {
710 setProperty(ONKEYPRESS_KEY, (onkeypress));
711 }
712
713 /**
714 * Gets an onkeydown Javascript handler.
715 *
716 * @return the new onkeydown value
717 */
718 final public String getOnkeydown()
719 {
720 return ComponentUtils.resolveString(getProperty(ONKEYDOWN_KEY));
721 }
722
723 /**
724 * Sets an onkeydown Javascript handler.
725 *
726 * @param onkeydown the new onkeydown value
727 */
728 final public void setOnkeydown(String onkeydown)
729 {
730 setProperty(ONKEYDOWN_KEY, (onkeydown));
731 }
732
733 /**
734 * Gets an onkeyup Javascript handler.
735 *
736 * @return the new onkeyup value
737 */
738 final public String getOnkeyup()
739 {
740 return ComponentUtils.resolveString(getProperty(ONKEYUP_KEY));
741 }
742
743 /**
744 * Sets an onkeyup Javascript handler.
745 *
746 * @param onkeyup the new onkeyup value
747 */
748 final public void setOnkeyup(String onkeyup)
749 {
750 setProperty(ONKEYUP_KEY, (onkeyup));
751 }
752
753 /**
754 * Gets the event handler for the component losing the focus.
755 *
756 * @return the new onblur value
757 */
758 final public String getOnblur()
759 {
760 return ComponentUtils.resolveString(getProperty(ONBLUR_KEY));
761 }
762
763 /**
764 * Sets the event handler for the component losing the focus.
765 *
766 * @param onblur the new onblur value
767 */
768 final public void setOnblur(String onblur)
769 {
770 setProperty(ONBLUR_KEY, (onblur));
771 }
772
773 /**
774 * Gets the event handler for the component gaining the focus.
775 *
776 * @return the new onfocus value
777 */
778 final public String getOnfocus()
779 {
780 return ComponentUtils.resolveString(getProperty(ONFOCUS_KEY));
781 }
782
783 /**
784 * Sets the event handler for the component gaining the focus.
785 *
786 * @param onfocus the new onfocus value
787 */
788 final public void setOnfocus(String onfocus)
789 {
790 setProperty(ONFOCUS_KEY, (onfocus));
791 }
792
793 /**
794 * Gets the display size(number of items) of the lists. The size
795 * specified must be between 10 and 20 items. If the attribute is not
796 * set or has a value less than 10, the size would have a default or
797 * minimum value of 10. If the attribute value specified is more than
798 * 20 items, the size would have the maximum value of 20.
799 *
800 * @return the new size value
801 */
802 final public int getSize()
803 {
804 return ComponentUtils.resolveInteger(getProperty(SIZE_KEY));
805 }
806
807 /**
808 * Sets the display size(number of items) of the lists. The size
809 * specified must be between 10 and 20 items. If the attribute is not
810 * set or has a value less than 10, the size would have a default or
811 * minimum value of 10. If the attribute value specified is more than
812 * 20 items, the size would have the maximum value of 20.
813 *
814 * @param size the new size value
815 */
816 final public void setSize(int size)
817 {
818 setProperty(SIZE_KEY, Integer.valueOf(size));
819 }
820
821 /**
822 * Gets the header of the leading list of the shuttle.
823 *
824 * @return the new leadingHeader value
825 */
826 final public String getLeadingHeader()
827 {
828 return ComponentUtils.resolveString(getProperty(LEADING_HEADER_KEY));
829 }
830
831 /**
832 * Sets the header of the leading list of the shuttle.
833 *
834 * @param leadingHeader the new leadingHeader value
835 */
836 final public void setLeadingHeader(String leadingHeader)
837 {
838 setProperty(LEADING_HEADER_KEY, (leadingHeader));
839 }
840
841 /**
842 * Gets the header of the trailing list of the shuttle.
843 *
844 * @return the new trailingHeader value
845 */
846 final public String getTrailingHeader()
847 {
848 return ComponentUtils.resolveString(getProperty(TRAILING_HEADER_KEY));
849 }
850
851 /**
852 * Sets the header of the trailing list of the shuttle.
853 *
854 * @param trailingHeader the new trailingHeader value
855 */
856 final public void setTrailingHeader(String trailingHeader)
857 {
858 setProperty(TRAILING_HEADER_KEY, (trailingHeader));
859 }
860
861 /**
862 * Gets whether or not the leading list has an area to display descriptions.
863 *
864 * @return the new leadingDescShown value
865 */
866 final public boolean isLeadingDescShown()
867 {
868 return ComponentUtils.resolveBoolean(getProperty(LEADING_DESC_SHOWN_KEY), false);
869 }
870
871 /**
872 * Sets whether or not the leading list has an area to display descriptions.
873 *
874 * @param leadingDescShown the new leadingDescShown value
875 */
876 final public void setLeadingDescShown(boolean leadingDescShown)
877 {
878 setProperty(LEADING_DESC_SHOWN_KEY, leadingDescShown ? Boolean.TRUE : Boolean.FALSE);
879 }
880
881 /**
882 * Gets whether or not the trailing list has an area to display descriptions.
883 *
884 * @return the new trailingDescShown value
885 */
886 final public boolean isTrailingDescShown()
887 {
888 return ComponentUtils.resolveBoolean(getProperty(TRAILING_DESC_SHOWN_KEY), false);
889 }
890
891 /**
892 * Sets whether or not the trailing list has an area to display descriptions.
893 *
894 * @param trailingDescShown the new trailingDescShown value
895 */
896 final public void setTrailingDescShown(boolean trailingDescShown)
897 {
898 setProperty(TRAILING_DESC_SHOWN_KEY, trailingDescShown ? Boolean.TRUE : Boolean.FALSE);
899 }
900
901 /**
902 * Gets the label for the shuttle that is used to identify the component only when displaying error messages. The label specified does not otherwise appear on the page.
903 *
904 * @return the new label value
905 */
906 final public String getLabel()
907 {
908 return ComponentUtils.resolveString(getProperty(LABEL_KEY));
909 }
910
911 /**
912 * Sets the label for the shuttle that is used to identify the component only when displaying error messages. The label specified does not otherwise appear on the page.
913 *
914 * @param label the new label value
915 */
916 final public void setLabel(String label)
917 {
918 setProperty(LABEL_KEY, (label));
919 }
920
921 @Override
922 public String getFamily()
923 {
924 return COMPONENT_FAMILY;
925 }
926
927 @Override
928 protected FacesBean.Type getBeanType()
929 {
930 return TYPE;
931 }
932
933 /**
934 * Construct an instance of the CoreSelectManyShuttle.
935 */
936 protected CoreSelectManyShuttle(
937 String rendererType
938 )
939 {
940 super(rendererType);
941 }
942
943 static
944 {
945 TYPE.lockAndRegister("org.apache.myfaces.trinidad.SelectMany","org.apache.myfaces.trinidad.Shuttle");
946 }
947 }