Widget extension providing functionality enabling a Widget to be a parent of another Widget.
In addition to the set of attributes supported by WidgetParent, the constructor
configuration object can also contain a children
which can be used
to add child widgets to the parent during construction. The children
property is an array of either child widget instances or child widget configuration
objects, and is sugar for the add method. See the
add for details on the structure of the child widget
configuration object.
_add
child
child
index
Adds a Widget as a child. If the specified Widget already has a parent it will be removed from its current parent before being added as a child.
child
Widget | Object
The Widget instance, or configuration object for the Widget to be added as a child.
child
Array
Array of Widget instances, or configuration objects for the Widgets to be added as a children.
index
Number
(Optional.) Number representing the position at which the child should be inserted.
_afterActiveDescendantChange
event
Attribute change listener for the activeDescendant
attribute, responsible for setting the value of the
parent's activeDescendant
attribute.
event
EventFacade
The event facade for the attribute change.
_afterDestroyChild
event
Destroy event listener for each child Widget, responsible for removing the destroyed child Widget from the parent's internal array of children (_items property).
event
EventFacade
The event facade for the attribute change.
_afterParentSelectedChange
event
Attribute change listener for the selected
attribute, responsible for syncing the selected state of all children to
match that of their parent Widget.
event
EventFacade
The event facade for the attribute change.
_afterSelectionChange
event
Attribute change listener for the selection
attribute, responsible for setting the value of the
parent's selected
attribute.
event
EventFacade
The event facade for the attribute change.
_bindUIParent
Sets up DOM and CustomEvent listeners for the parent widget.
This method in invoked after bindUI is invoked for the Widget class using YUI's aop infrastructure.
_createChild
config
Creates an instance of a child Widget using the specified configuration.
By default Widget instances will be created of the type specified
by the defaultChildType
attribute. Types can be explicitly
defined via the childType
property of the configuration object
literal. The use of the type
property has been deprecated, but
will still be used as a fallback, if childType
is not defined,
for backwards compatibility.
config
Object
Object literal representing the configuration used to create an instance of a Widget.
_defAddChildFn
event
child
index
Default addChild handler
event
EventFacade
The Event object
child
Widget
The Widget instance, or configuration object for the Widget to be added as a child.
index
Number
Number representing the position at which the child will be inserted.
_defRemoveChildFn
event
child
index
Default removeChild handler
event
EventFacade
The Event object
child
Widget
The Widget instance to be removed.
index
Number
Number representing the index of the Widget to be removed.
_destroyChildren
Destroys all child Widgets for the parent.
This method is invoked before the destructor is invoked for the Widget class using YUI's aop infrastructure.
_item
i
Protected method for optimizations that may be appropriate for API
mirroring. Similar in functionality to item
, but is used by
methods added with ArrayList.addMethod()
.
i
Integer
Index of item to fetch
The item appropriate for pass through API methods
_renderChildren
Renders all child Widgets for the parent.
This method in invoked after renderUI is invoked for the Widget class using YUI's aop infrastructure.
_uiAddChild
child
parentNode
Updates the UI in response to a child being added.
_uiRemoveChild
child
Updates the UI in response to a child being removed.
child
Widget
The child Widget instance to render.
_updateActiveDescendant
event
Attribute change listener for the focused
attribute of child Widgets, responsible for setting the value of the
parent's activeDescendant
attribute.
event
EventFacade
The event facade for the attribute change.
_updateSelection
event
Attribute change listener for the selected
attribute of child Widgets, responsible for setting the value of the
parent's selection
attribute.
event
EventFacade
The event facade for the attribute change.
add
child
child
index
Adds a Widget as a child. If the specified Widget already has a parent it will be removed from its current parent before being added as a child.
child
Widget | Object
The Widget instance, or configuration
object for the Widget to be added as a child. The configuration object
for the child can include a childType
property, which is either
a constructor function or a string which names a constructor function on the
Y instance (e.g. "Tab" would refer to Y.Tab) (childType
used to be
named type
, support for which has been deprecated, but is still
maintained for backward compatibility. childType
takes precedence
over type
if both are defined.
child
Array
Array of Widget instances, or configuration objects for the Widgets to be added as a children.
index
Number
(Optional.) Number representing the position at which the child should be inserted.
Y.ArrayList containing the successfully added Widget instance(s). If no children where added, will return an empty Y.ArrayList instance.
deselectAll
Deselects all children.
destructor
The destructor implementation for Parent widgets. Destroys all children.
each
fn
context
Execute a function on each item of the list, optionally providing a custom execution context. Default context is the item.
The callback signature is callback( item, index )
.
fn
Function
the function to execute
context
Mixed
optional override 'this' in the function
this instance
filter
validator
Create a new ArrayList (or augmenting class instance) from a subset of items as determined by the boolean function passed as the argument. The original ArrayList is unchanged.
The validator signature is validator( item )
.
validator
Function
Boolean function to determine in or out.
New instance based on who passed the validator.
indexOf
needle
Finds the first index of the needle in the managed array of items.
needle
Mixed
The item to search for
Array index if found. Otherwise -1
isEmpty
Is this instance managing any items?
true if 1 or more items are being managed
item
i
Get an item by index from the list. Override this method if managing a list of objects that have a different public representation (e.g. Node instances vs DOM nodes). The iteration methods that accept a user function will use this method for access list items for operation.
i
Integer
index to fetch
the item at the requested index
itemsAreEqual
a
b
Default comparator for items stored in this list. Used by remove().
a
Mixed
item to test equivalence with.
b
Mixed
other item to test equivalance.
true if items are deemed equivalent.
remove
index
Removes the Widget from its parent. Optionally, can remove a child by specifying its index.
index
Number
(Optional.) Number representing the index of the child to be removed.
Widget instance that was successfully removed, otherwise undefined.
removeAll
Removes all of the children from the Widget.
Y.ArrayList instance containing Widgets that were successfully removed. If no children where removed, will return an empty Y.ArrayList instance.
selectAll
Selects all children.
selectChild
i
Selects the child at the given index (zero-based).
i
Number
the index of the child to be selected
size
How many items are in this list?
Number of items in the list
some
fn
context
Execute a function on each item of the list, optionally providing a custom execution context. Default context is the item.
The callback signature is callback( item, index )
.
Unlike each
, if the callback returns true, the
iteration will stop.
fn
Function
the function to execute
context
Mixed
optional override 'this' in the function
True if the function returned true on an item
_childrenContainer
By default WidgetParent will render it's children to the parent's content box.
If the children need to be rendered somewhere else, the _childrenContainer property can be set to the Node which the children should be rendered to. This property should be set before the _renderChildren method is invoked, ideally in your renderUI method, as soon as you create the element to be rendered to.
activeDescendant
Returns the Widget's currently focused descendant Widget.
activeDescendantChange
Fires when the value for the configuration attribute activeDescendant
is
changed. You can listen for the event using the on
method if you
wish to be notified before the attribute's value has changed, or
using the after
method if you wish to be notified after the
attribute's value has changed.
e
EventFacade
defaultChildType
String representing the default type of the children managed by this Widget. Can also supply default type as a constructor reference.
defaultChildTypeChange
Fires when the value for the configuration attribute defaultChildType
is
changed. You can listen for the event using the on
method if you
wish to be notified before the attribute's value has changed, or
using the after
method if you wish to be notified after the
attribute's value has changed.
e
EventFacade
multiple
Boolean indicating if multiple children can be selected at
once. Whether or not multiple selection is enabled is always delegated
to the value of the multiple
attribute of the root widget
in the object hierarchy.
Default: false
multipleChange
Fires when the value for the configuration attribute multiple
is
changed. You can listen for the event using the on
method if you
wish to be notified before the attribute's value has changed, or
using the after
method if you wish to be notified after the
attribute's value has changed.
e
EventFacade
selection
Returns the currently selected child Widget. If the
mulitple
attribte is set to true
will
return an Y.ArrayList instance containing the currently selected
children. If no children are selected, will return null.
selectionChange
Fires when the value for the configuration attribute selection
is
changed. You can listen for the event using the on
method if you
wish to be notified before the attribute's value has changed, or
using the after
method if you wish to be notified after the
attribute's value has changed.
e
EventFacade
addChild
Fires when a Widget is add as a child. The event object will have a 'child' property that returns a reference to the child Widget, as well as an 'index' property that returns a reference to the index specified when the add() method was called.
Subscribers to the "on" moment of this event, will be notified before a child is added.
Subscribers to the "after" moment of this event, will be notified after a child is added.
e
EventFacade
The Event Facade
removeChild
Fires when a child Widget is removed. The event object will have a 'child' property that returns a reference to the child Widget, as well as an 'index' property that returns a reference child's ordinal position.
Subscribers to the "on" moment of this event, will be notified before a child is removed.
Subscribers to the "after" moment of this event, will be notified after a child is removed.
e
EventFacade
The Event Facade