Print Friendly

# Class Ext.data.Node

Package: | Ext.data
Class: | Node
Extends: | Observable
Subclasses: | TreeNode
Defined In: | Tree.js

Properties - Methods - Events - Config Options

## Public Properties

Property | Defined By
--- | ---
| attributes : Object | Node
The attributes supplied for the node. You can use this property to access any custom attributes you supplied.
| childNodes : Array | Node
All child nodes of this node.
| firstChild : Node | Node
The first direct child node of this node, or null if this node has no child nodes.
| id : String | Node
The node id.
| lastChild : Node | Node
The last direct child node of this node, or null if this node has no child nodes.
| nextSibling : Node | Node
The node immediately following this node in the tree, or null if there is no sibling node.
| parentNode : Node | Node
The parent node for this node.
| previousSibling : Node | Node
The node immediately preceding this node in the tree, or null if there is no sibling node.

## Public Methods

Method | Defined By
--- | ---
| Node(`Object attributes`) | Node
| addEvents(`Object object`) : void | Observable
Copies any events from the passed object onto this object if they do not already exist. The passed object must also ...
| addListener(`String eventName`, `Function handler`, [`Object scope`], [`Object options`]) : void | Observable
Appends an event handler to this component
| appendChild(`Node/Array node`) : Node | Node
Insert node(s) as the last child node of this node.
| bubble(`Function fn`, [`Object scope`], [`Array args`]) : void | Node
Bubbles up the tree from this node, calling the specified function with each node. The scope (this) of function call...
| cascade(`Function fn`, [`Object scope`], [`Array args`]) : void | Node
Cascades down the tree from this node, calling the specified function with each node. The scope (this) of function c...
| contains(`Node node`) : Boolean | Node
Returns true if this node is an ancestor (at any point) of the passed node.
| eachChild(`Function fn`, [`Object scope`], [`Array args`]) : void | Node
Interates the child nodes of this node, calling the specified function with each node. The scope (this) of function ...
| findChild(`String attribute`, `Mixed value`) : Node | Node
Finds the first child that has the attribute with the specified value.
| findChildBy(`Function fn`, [`Object scope`]) : Node | Node
Finds the first child by a custom function. The child matches if the function passed returns true.
| fireEvent(`String eventName`, `Object... args`) : Boolean | Observable
Fires the specified event with the passed parameters (minus the event name).
| getDepth() : Number | Node
Returns depth of this node (the root node has a depth of 0)
| getOwnerTree() : Tree | Node
Returns the tree this node is in.
| getPath([`String attr`]) : String | Node
Returns the path for this node. The path can be used to expand or select this node programmatically.
| hasListener(`String eventName`) : Boolean | Observable
Checks to see if this object is currently listening for a specified event
| indexOf(`Node node`) : Number | Node
Returns the index of a child node
| insertBefore(`Node node`, `Node refNode`) : Node | Node
Inserts the first node before the second node in this nodes childNodes collection.
| isAncestor(`Node node`) : Boolean | Node
Returns true if the passed node is an ancestor (at any point) of this node.
| isFirst() : Boolean | Node
Returns true if this node is the first child of its parent
| isLast() : Boolean | Node
Returns true if this node is the last child of its parent
| isLeaf() : Boolean | Node
Returns true if this node is a leaf
| item(`Number index`) : Node | Node
Returns the child node at the specified index.
| on(`String eventName`, `Function handler`, [`Object options`]) : void | Observable
Appends an event handler to this element (shorthand for addListener)
| purgeListeners() : void | Observable
Removes all listeners for this object
| removeChild(`Node node`) : Node | Node
Removes a child node from this node.
| removeListener(`String eventName`, `Function handler`, [`Object scope`]) : void | Observable
Removes a listener
| replaceChild(`Node newChild`, `Node oldChild`) : Node | Node
Replaces one child node in this node with another.
| sort(`Function fn`, [`Object scope`]) : void | Node
Sorts this nodes children using the supplied sort function
| un(`String eventName`, `Function handler`, [`Object scope`]) : void | Observable
Removes a listener (shorthand for removeListener)

## Public Events

Event | Defined By
--- | ---
| append : (`Tree tree`, `Node this`, `Node node`, `Number index`) | Node
Fires when a new child node is appended
| beforeappend : (`Tree tree`, `Node this`, `Node node`) | Node
Fires before a new child is appended, return false to cancel the append.
| beforeinsert : (`Tree tree`, `Node this`, `Node node`, `Node refNode`) | Node
Fires before a new child is inserted, return false to cancel the insert.
| beforemove : (`Tree tree`, `Node this`, `Node oldParent`, `Node newParent`, `Number index`) | Node
Fires before this node is moved to a new location in the tree. Return false to cancel the move.
| beforeremove : (`Tree tree`, `Node this`, `Node node`) | Node
Fires before a child is removed, return false to cancel the remove.
| insert : (`Tree tree`, `Node this`, `Node node`, `Node refNode`) | Node
Fires when a new child node is inserted.
| move : (`Tree tree`, `Node this`, `Node oldParent`, `Node newParent`, `Number index`) | Node
Fires when this node is moved to a new location in the tree
| remove : (`Tree tree`, `Node this`, `Node node`) | Node
Fires when a child node is removed

## Config Options

Config Options | Defined By
--- | ---
| id : String | Node
The id for this node. If one is not specified, one is generated.
| leaf : Boolean | Node
true if this node is a leaf and does not have children

## Property Details

### attributes

`public Object attributes`
The attributes supplied for the node. You can use this property to access any custom attributes you supplied.
This property is defined by Node.

### childNodes

`public Array childNodes`
All child nodes of this node.
This property is defined by Node.

### firstChild

`public Node firstChild`
The first direct child node of this node, or null if this node has no child nodes.
This property is defined by Node.

### id

`public String id`
The node id.
This property is defined by Node.

### lastChild

`public Node lastChild`
The last direct child node of this node, or null if this node has no child nodes.
This property is defined by Node.

### nextSibling

`public Node nextSibling`
The node immediately following this node in the tree, or null if there is no sibling node.
This property is defined by Node.

### parentNode

`public Node parentNode`
The parent node for this node.
This property is defined by Node.

### previousSibling

`public Node previousSibling`
The node immediately preceding this node in the tree, or null if there is no sibling node.
This property is defined by Node.

## Constructor Details

### Node

`public function Node(`Object attributes`)`
Parameters:

- `attributes` : Object
  The attributes/config for the node

## Method Details

### addEvents

`public function addEvents(`Object object`)`
Copies any events from the passed object onto this object if they do not already exist. The passed object must also inherit from Observable for this method to have any effect.
Parameters:

- `object` : Object
  The object from which to copy events

Returns:

- `void`

This method is defined by Observable.

### addListener

`public function addListener(`String eventName`, `Function handler`, [`Object scope`], [`Object options`])`
Appends an event handler to this component
Parameters:

- `eventName` : String
  The type of event to listen for
- `handler` : Function
  The method the event invokes
- `scope` : Object
  (optional) The scope in which to execute the handler function. The handler function's "this" context.
- `options` : Object
  (optional) An object containing handler configuration properties. This may contain any of the following properties:
  - scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
  - delegate {String} A simple selector to filter the target or look for a descendant of the target
  - stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
  - preventDefault {Boolean} True to prevent the default action
  - stopPropagation {Boolean} True to prevent event propagation
  - normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
  - delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
  - single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
  - buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

  Combining Options
  Using the options argument, it is possible to combine different types of listeners:
  A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

  Code:

      el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

  The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

  Attaching multiple handlers in 1 call
  Code:

      el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

  Or a shorthand syntax:
  Code:

      el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });

Returns:

- `void`

This method is defined by Observable.

### appendChild

`public function appendChild(`Node/Array node`)`
Insert node(s) as the last child node of this node.
Parameters:

- `node` : Node/Array
  The node or Array of nodes to append

Returns:

- `Node`
  The appended node if single append, or null if an array was passed

This method is defined by Node.

### bubble

`public function bubble(`Function fn`, [`Object scope`], [`Array args`])`
Bubbles up the tree from this node, calling the specified function with each node. The scope (this) of function call will be the scope provided or the current node. The arguments to the function will be the args provided or the current node. If the function returns false at any point, the bubble is stopped.
Parameters:

- `fn` : Function
  The function to call
- `scope` : Object
  (optional) The scope of the function (defaults to current node)
- `args` : Array
  (optional) The args to call the function with (default to passing the current node)

Returns:

- `void`

This method is defined by Node.

### cascade

`public function cascade(`Function fn`, [`Object scope`], [`Array args`])`
Cascades down the tree from this node, calling the specified function with each node. The scope (this) of function call will be the scope provided or the current node. The arguments to the function will be the args provided or the current node. If the function returns false at any point, the cascade is stopped on that branch.
Parameters:

- `fn` : Function
  The function to call
- `scope` : Object
  (optional) The scope of the function (defaults to current node)
- `args` : Array
  (optional) The args to call the function with (default to passing the current node)

Returns:

- `void`

This method is defined by Node.

### contains

`public function contains(`Node node`)`
Returns true if this node is an ancestor (at any point) of the passed node.
Parameters:

- `node` : Node

Returns:

- `Boolean`

This method is defined by Node.

### eachChild

`public function eachChild(`Function fn`, [`Object scope`], [`Array args`])`
Interates the child nodes of this node, calling the specified function with each node. The scope (this) of function call will be the scope provided or the current node. The arguments to the function will be the args provided or the current node. If the function returns false at any point, the iteration stops.
Parameters:

- `fn` : Function
  The function to call
- `scope` : Object
  (optional) The scope of the function (defaults to current node)
- `args` : Array
  (optional) The args to call the function with (default to passing the current node)

Returns:

- `void`

This method is defined by Node.

### findChild

`public function findChild(`String attribute`, `Mixed value`)`
Finds the first child that has the attribute with the specified value.
Parameters:

- `attribute` : String
  The attribute name
- `value` : Mixed
  The value to search for

Returns:

- `Node`
  The found child or null if none was found

This method is defined by Node.

### findChildBy

`public function findChildBy(`Function fn`, [`Object scope`])`
Finds the first child by a custom function. The child matches if the function passed returns true.
Parameters:

- `fn` : Function
- `scope` : Object
  (optional)

Returns:

- `Node`
  The found child or null if none was found

This method is defined by Node.

### fireEvent

`public function fireEvent(`String eventName`, `Object... args`)`
Fires the specified event with the passed parameters (minus the event name).
Parameters:

- `eventName` : String
- `args` : Object...
  Variable number of parameters are passed to handlers

Returns:

- `Boolean`
  returns false if any of the handlers return false otherwise it returns true

This method is defined by Observable.

### getDepth

`public function getDepth()`
Returns depth of this node (the root node has a depth of 0)
Parameters:

- None.

Returns:

- `Number`

This method is defined by Node.

### getOwnerTree

`public function getOwnerTree()`
Returns the tree this node is in.
Parameters:

- None.

Returns:

- `Tree`

This method is defined by Node.

### getPath

`public function getPath([`String attr`])`
Returns the path for this node. The path can be used to expand or select this node programmatically.
Parameters:

- `attr` : String
  (optional) The attr to use for the path (defaults to the node's id)

Returns:

- `String`
  The path

This method is defined by Node.

### hasListener

`public function hasListener(`String eventName`)`
Checks to see if this object is currently listening for a specified event
Parameters:

- `eventName` : String
  The name of the event to check for

Returns:

- `Boolean`
  True if the event is being listened for, else false

This method is defined by Observable.

### indexOf

`public function indexOf(`Node node`)`
Returns the index of a child node
Parameters:

- `node` : Node

Returns:

- `Number`
  The index of the node or -1 if it was not found

This method is defined by Node.

### insertBefore

`public function insertBefore(`Node node`, `Node refNode`)`
Inserts the first node before the second node in this nodes childNodes collection.
Parameters:

- `node` : Node
  The node to insert
- `refNode` : Node
  The node to insert before (if null the node is appended)

Returns:

- `Node`
  The inserted node

This method is defined by Node.

### isAncestor

`public function isAncestor(`Node node`)`
Returns true if the passed node is an ancestor (at any point) of this node.
Parameters:

- `node` : Node

Returns:

- `Boolean`

This method is defined by Node.

### isFirst

`public function isFirst()`
Returns true if this node is the first child of its parent
Parameters:

- None.

Returns:

- `Boolean`

This method is defined by Node.

### isLast

`public function isLast()`
Returns true if this node is the last child of its parent
Parameters:

- None.

Returns:

- `Boolean`

This method is defined by Node.

### isLeaf

`public function isLeaf()`
Returns true if this node is a leaf
Parameters:

- None.

Returns:

- `Boolean`

This method is defined by Node.

### item

`public function item(`Number index`)`
Returns the child node at the specified index.
Parameters:

- `index` : Number

Returns:

- `Node`

This method is defined by Node.

### on

`public function on(`String eventName`, `Function handler`, [`Object options`])`
Appends an event handler to this element (shorthand for addListener)
Parameters:

- `eventName` : String
  The type of event to listen for
- `handler` : Function
  The method the event invokes
- `options` : Object
  (optional)

Returns:

- `void`

This method is defined by Observable.

### purgeListeners

`public function purgeListeners()`
Removes all listeners for this object
Parameters:

- None.

Returns:

- `void`

This method is defined by Observable.

### removeChild

`public function removeChild(`Node node`)`
Removes a child node from this node.
Parameters:

- `node` : Node
  The node to remove

Returns:

- `Node`
  The removed node

This method is defined by Node.

### removeListener

`public function removeListener(`String eventName`, `Function handler`, [`Object scope`])`
Removes a listener
Parameters:

- `eventName` : String
  The type of event to listen for
- `handler` : Function
  The handler to remove
- `scope` : Object
  (optional) The scope (this object) for the handler

Returns:

- `void`

This method is defined by Observable.

### replaceChild

`public function replaceChild(`Node newChild`, `Node oldChild`)`
Replaces one child node in this node with another.
Parameters:

- `newChild` : Node
  The replacement node
- `oldChild` : Node
  The node to replace

Returns:

- `Node`
  The replaced node

This method is defined by Node.

### sort

`public function sort(`Function fn`, [`Object scope`])`
Sorts this nodes children using the supplied sort function
Parameters:

- `fn` : Function
- `scope` : Object
  (optional)

Returns:

- `void`

This method is defined by Node.

### un

`public function un(`String eventName`, `Function handler`, [`Object scope`])`
Removes a listener (shorthand for removeListener)
Parameters:

- `eventName` : String
  The type of event to listen for
- `handler` : Function
  The handler to remove
- `scope` : Object
  (optional) The scope (this object) for the handler

Returns:

- `void`

This method is defined by Observable.

## Event Details

### append

`public event append`
Fires when a new child node is appended
Subscribers will be called with the following parameters:

- `tree` : Tree
  The owner tree
- `this` : Node
  This node
- `node` : Node
  The newly appended node
- `index` : Number
  The index of the newly appended node

This event is defined by Node.

### beforeappend

`public event beforeappend`
Fires before a new child is appended, return false to cancel the append.
Subscribers will be called with the following parameters:

- `tree` : Tree
  The owner tree
- `this` : Node
  This node
- `node` : Node
  The child node to be appended

This event is defined by Node.

### beforeinsert

`public event beforeinsert`
Fires before a new child is inserted, return false to cancel the insert.
Subscribers will be called with the following parameters:

- `tree` : Tree
  The owner tree
- `this` : Node
  This node
- `node` : Node
  The child node to be inserted
- `refNode` : Node
  The child node the node is being inserted before

This event is defined by Node.

### beforemove

`public event beforemove`
Fires before this node is moved to a new location in the tree. Return false to cancel the move.
Subscribers will be called with the following parameters:

- `tree` : Tree
  The owner tree
- `this` : Node
  This node
- `oldParent` : Node
  The parent of this node
- `newParent` : Node
  The new parent this node is moving to
- `index` : Number
  The index it is being moved to

This event is defined by Node.

### beforeremove

`public event beforeremove`
Fires before a child is removed, return false to cancel the remove.
Subscribers will be called with the following parameters:

- `tree` : Tree
  The owner tree
- `this` : Node
  This node
- `node` : Node
  The child node to be removed

This event is defined by Node.

### insert

`public event insert`
Fires when a new child node is inserted.
Subscribers will be called with the following parameters:

- `tree` : Tree
  The owner tree
- `this` : Node
  This node
- `node` : Node
  The child node inserted
- `refNode` : Node
  The child node the node was inserted before

This event is defined by Node.

### move

`public event move`
Fires when this node is moved to a new location in the tree
Subscribers will be called with the following parameters:

- `tree` : Tree
  The owner tree
- `this` : Node
  This node
- `oldParent` : Node
  The old parent of this node
- `newParent` : Node
  The new parent of this node
- `index` : Number
  The index it was moved to

This event is defined by Node.

### remove

`public event remove`
Fires when a child node is removed
Subscribers will be called with the following parameters:

- `tree` : Tree
  The owner tree
- `this` : Node
  This node
- `node` : Node
  The removed node

This event is defined by Node.

## Config Details

### id

`id : String`
The id for this node. If one is not specified, one is generated.
This config option is defined by Node.

### leaf

`leaf : Boolean`
true if this node is a leaf and does not have children
This config option is defined by Node.

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.