ContainerControl

The base of all controls that have childControls.

Remarks

ContainerControl is the base class of all controls that have control childControls.

By default, ContainerControl renders as a <div> element, though different subclasses may change this by overriding the Control.getTagName() method.

ContainerControl has a ContainerControl.ID_childControls property that contains a SitedList holding the childControls of the container.

When the ContainerControl is rendered, it first outputs its peer element, then ContainerControl.renderChildren() iterates over the childControls list, rendering each child.

The childControls list may contain either Controls or strings. When strings occur in the childControls list, they are output as-is into the rendered HTML DOM, enabling applications to efficiently encapsulate large amounts of HTML as a single string in the control hierarchy.

Properties

ID_animators (inherited from Control)A SitedList of animators.
ID_childControlsA SitedList of child controls.
ID_controlId (inherited from Control)The ID this control is known in the nearest binding container parent.
ID_eventMask (inherited from Control)(Advanced) A comma-separated list of peer events this control should receive.
ID_isBindingContainer (inherited from Control)(Advanced) Force this control to act as a binding container.
ID_isPeerless (inherited from Control)(Advanced) Set this to true to prevent this control from generating a peer element in the rendered HTML.
ID_submitters (inherited from Control)A SitedList of submitters.
ID_tagName (inherited from Control)Overrides the default HTML tag name used for this control.
ID_visible (inherited from Control)True if this control is visible, false if it is hidden.

Events

ID_mouseDown (inherited from Control)Event handler called when a mouse button is pressed down.
ID_mouseMove (inherited from Control)Event handler called when the mouse is moved.
ID_mouseOut (inherited from Control)Event handler called when a leaves a control.
ID_mouseOver (inherited from Control)Event handler called when a mouse moves over a control.
ID_mouseUp (inherited from Control)Event handler called when a mouse button is released.

Methods

acceptsDrop (inherited from Control)Called to determine if this control will accept a drop.
addBinding (inherited from Control)Adds a databinding between a property on this object and a binding path.
addBindingEx (inherited from Control)Extended entry point for adding a binding.
addCalculatedBinding (inherited from Control)Adds a calculated binding for a property.
addChildAdd a child control to this ContainerControl.
addClassName (inherited from Control)Adds a CSS class to this controls "class" attribute
addEventHandler (inherited from SitedObject)Adds a delegate to be called when the specified eventId occurs on this object.
animateEx (inherited from Control)Animates a property to a value.
blur (inherited from Control)Tells this control's peer to relinquish keyboard focus.
bubble (inherited from Control)Bubbles a message up the control hierarchy - calls onBubbleEvent on this control and each of its parents.
captureMouse (inherited from Control)Register a control to receive mouse move/up events
construct (inherited from Control)Used to initialize a markup control.
equals (inherited from SitedObject)Tests if two objects are equal.
fireEventHandler (inherited from SitedObject)Invokes any user event handlers registered for a particular event using SitedObject.addEventHandler().
focus (inherited from Control)Tells this control's peer to request keyboard focus.
getBindingContainer (inherited from Control)Gets this object's nearest enclosing binding container.
getBindingStatus (inherited from SitedObject)Provides debugging information on bindings for this object.
getChildGets the n'th child
getEventMask (inherited from Control)Gets an object indicating which peer events this control is interested in.
getParent (inherited from Control)Gets the parent Control of this control.
getPathValue (inherited from SitedObject)Traverses a binding path and returns the value at the end of it.
getPeer (inherited from Control)Gets the peer DOM element associated with this control.
getPeerForParent (inherited from Control)Gets the peer element of this control that the parent control should use in DOM manipulations.
getPropertyInfo (inherited from SitedObject)Gets information on a property.
getResource (inherited from Control)Given the ID of a resource, returns the resource's value.
getSite (inherited from SitedObject)Gets this object's site.
getTagName(Override) Gets the HTML tag name this control will use for its peer element.
getValue (inherited from Control)Gets a property, style or attribute.
getViewState (inherited from Control) Retrieve any viewstate that has been saved for this control in a previous session.
getViewStateId (inherited from Control) Get a unique and consistent viewstateId for this control.
invalidateLayout (inherited from Control)Tells the layout system to redo layout.
modifyDOMCalled to manipulate the DOM peer node of this control.
onBubbleEvent (inherited from Control)Called to handle a bubbled event.
onDragEvent (inherited from Control)Called to handle a drag drop event..
onFirstRender (inherited from Control)Called the first time a control is rendered.
onPeerCreated (inherited from Control)Called when a peer is created.
onPeerEvent (inherited from Control)Called to dispatch low level events that arise in the Dom.
onSetValue(Override) Called by SitedObject.setValue() when a property value is set on this object.
onSited (inherited from SitedObject)Called when this object is sited.
onSitedRoot (inherited from Control)Called when a control is added to the main control tree.
onUnsited (inherited from SitedObject)Called when this object is about to lose its site.
onUnsitedRoot (inherited from Control)Called when a control is removed from the main control tree.
onValueSited(Override) Called when an object is sited within this object.
onValueUnsited(Override) Called when an object is about to be unsited in this.
onViewStateChanged (inherited from Control) Overridable. Controls implement this method to update their viewstate.
rebuildInnerHtmlUpdates this controls innerHTML.
reflectOnBoundValue (inherited from Control)Gets runtime reflection information on an underlying bound object.
removeChildRemove a child control from this ContainerControl.
removeClassName (inherited from Control)Removes a CSS class from this controls "class" attribute
removeEventHandler (inherited from SitedObject)Remove an existing delegate from the list of delegates for the specified event.
render (inherited from Control)Places the Html representation of this control into the htmlBuilder.
renderAttributes (inherited from Control)Called by Control.render() to render attributes for this control.
renderChildren(Override) Places the Html markup for all the Control inside this control into the htmlBuilder.
setBounds (inherited from Control)Convenience method to set the left/top/width/height of an element.
setInitialValues (inherited from SitedObject)Sets multiple property values on an object (during initialization only)
setPathValue (inherited from SitedObject)Traverses a binding path and sets the value at the end of it.
setValue (inherited from Control)Sets a property, style or attribute.
setViewState (inherited from Control) Save viewstate that should persist across sessions.
startAnimator (inherited from Control)Starts an animation.
startDragDrop (inherited from Control)Start a drag drop operation.
stopAnimator (inherited from Control)Stops an animation.
toString (inherited from SitedObject)Returns a string representation of this object.

ContainerControl addChild method

Add a child control to this ContainerControl.

JavaScript

containerControl.addChild(childControl)

Remarks

This is a convenience method for getting the ID_childControls property of this control and manipulating that.

Example

Writing:

control.addChild(new LabelControl());
is equivalent to:
var childrenList = control.getValue(ID_childControls);
childrenList.add(new LabelControl());

ContainerControl getChild method

Gets the n'th child

JavaScript

var control = containerControl.getChild(n)

Remarks

This returns the child at position n in the childControls list, or null if there is no such child. Note that the child may either be a string or a Control object.

Returns

A string, Control, or null.

ContainerControl getTagName method (override)

Gets the HTML tag name this control will use for its peer element.

JavaScript

containerControl.getTagName()

Remarks

returns the value of the ID_tagName property if it is available, or "div" by default.

Returns

An HTML tag name string, e.g. "span", "tr", "div" etc.

Base Implementation

Overriden In

ContainerControl ID_childControls property

A SitedList of child controls.

JavaScript

var mixedList = containerControl.getValue(ID_childControls)
containerControl.setValue(ID_childControls, mixedList)

Xml

<j:Container>
<j:di>mixed</j:di>
<j:di>mixed</j:di>
...
</j:Container>

Remarks

Set this to a SitedList containing the child controls of this container.

ContainerControl modifyDOM method

Called to manipulate the DOM peer node of this control.

JavaScript

containerControl.modifyDOM(actionName,parentNode,childNode,nodeInDom)

Remarks

Override the method in subclasses to change how a control inserts or removes childControls to the Dom (e.g. to animate changes).

All framework-generated Dom structural changes go via this method. Subclasses can modify this method to change how the Dom is updated, e.g. to animate the change.

The default implementation looks like this:

function modifyDOM(actionName, parentNode, childNode, nodeInDom)
{
	switch (actionName) {
		case ID_appendChild: {
			parentNode.appendChild(childNode); break;
		case ID_insertBefore:
			parentNode.insertBefore(childNode, nodeInDom); break;
		case ID_removeChild:
			parentNode.removeChild(childNode); break;
		case ID_replaceChild:
			parentNode.replaceChild(childNode, nodeInDom); break;
	}
}
Either ID_appendChild, ID_insertBefore, ID_removeChild, or ID_replaceChild.The Dom node to to perform the append, insert, remove or replace on.The child node to append, insert, remove or replace.For insertBefore or replaceChild, this is the node to insert before or replace.

ContainerControl onSetValue method (override)

Called by SitedObject.setValue() when a property value is set on this object.

JavaScript

containerControl.onSetValue(propertyId,oldVal,newVal,notificationSource)

Remarks

Used to listens for changes to the ID_childControls list on this object.

Base Implementation

Overriden In

ContainerControl onValueSited method (override)

Called when an object is sited within this object.

JavaScript

containerControl.onValueSited(propertyId,val)

Remarks

Used to listen for changes to the ID_childControls list on this object.

Base Implementation

ContainerControl onValueUnsited method (override)

Called when an object is about to be unsited in this.

JavaScript

containerControl.onValueUnsited(propertyId,val)

Remarks

Used to listen for changes to the ID_childControls list on this object.

Base Implementation

ContainerControl rebuildInnerHtml method

Updates this controls innerHTML.

JavaScript

containerControl.rebuildInnerHtml()

Remarks

Subclasses typically call this method when something about the internal structure of the container has changed and the peer needs to be updated. This method calls ContainerControl.renderChildren() and then updates the container's peer's innerHTML property to the resulting HTML.

ContainerControl removeChild method

Remove a child control from this ContainerControl.

JavaScript

containerControl.removeChild(childControl)

Remarks

This is a convenience method for getting the ID_childControls property of this control and manipulating that.

Example

Writing:

control.removeChild(aChild);
is roughly equivalent to:
list = control.getValue(ID_childControls);
list.remove(aChild);

ContainerControl renderChildren method (override)

Places the Html markup for all the Control inside this control into the htmlBuilder.

JavaScript

containerControl.renderChildren(htmlBuilder)

Remarks

Overrides Control.renderChildren() to render all the childControls of this control. For each child in this control, if the child is a string, this calls htmlBuilder.add(string). Otherwise this calls child.render(htmlBuilder).

Base Implementation