A hierarchical list whose items can contain child items.

The ListItem children of this control (in the items array) can be of type node, which means that they can contain child items. An item with child items can expanded, so that the child items are displayed, or collapsed, so that the child items are hidden Individual items can be selected at any level of the tree.


add, addEventListener, dispatchEvent, find, hide, notify, remove, removeAll, removeEventListener, show



True if this element is active.

An active control is the one with keyboard focus—that is, the one that accepts keystrokes, or in the case of a Button, is selected when the user types Return or Enter in Windows, or the space bar in Mac OS.


The alignment style for this element. If defined, this value overrides the alignChildren setting for the parent container.

This can be a single string, which indicates the alignment for the orientation specified in the parent container, or an array of two strings, indicating both the horizontal and vertical alignment (in that order). Allowed values depend on the orientation value of the parent container. They are not case sensitive.

- For orientation=row:top, bottom, fill

- For orientation=column: left, right, fill

- For orientation=stack:top, bottom, left, right, fill


The boundaries of the element, in parent-relative coordinates.

Setting an element's size or location changes its bounds property, and vice-versa.

childrenArray of ObjectreadonlyAn array of child elements.

True if this element is enabled.

An enabled element can accept input, according to its type. When false, control elements do not accept input, and all types of elements have a dimmed appearance.

graphicsScriptUIGraphicsreadonlyThe graphics object that can be used to customize the element's appearance, in response to the onDraw event.
helpTipStringr/wThe help text that is displayed when the mouse hovers over the element.

The number of pixels to indent the element during automatic layout.

Applies for column orientation and left alignment, or row orientation and top alignment.


The width and height in pixels of each item in the list.

Used by auto-layout to determine the preferredSize of the list, if not otherwise specified. If not set explicitly, the size of each item is set to match the largest height and width among all items in the list

itemsArray of ListItemreadonly

The array of top-level choice items displayed in the list.

Access this array with a 0-based index. To obtain the number of items in the list, use items.length.The objects are created when items are specified on creation of the parent list object, or afterward using the list control’s add() method.


The upper left corner of this element relative to its parent.

The location is defined as [bounds.x, bounds.y]. Setting an element's location changes its bounds property, and vice-versa.

maximumSizeDimensionr/w The maximum height and width to which the element can be resized.
minimumSizeDimensionr/w The minimum height and width to which the element can be resized.
parentObjectreadonlyThe parent element.

The preferred size, used by layout managers to determine the best size for each element.

If not explicitly set by a script, value is established by the UI framework in which ScriptUI is employed, and is based on such attributes of the element as its text, font, font size, icon size, and other UI framework-specific attributes.A script can explicitly set preferredSize before the layout manager is invoked in order to establish an element size other than the default.


An object that contains one or more creation properties of the control (properties used only when the element is created).

Creation properties of a ListBox object can include:

- items: An array of strings for the text of each top-level list item. An item object is created for each item. An item with the text string "-" creates a separator item. Supply this property, or the items argument to the add() method, not both. This form is most useful for elements defined using Resource Specifications.


The currently selected list item.

Setting this value causes the selected item to be highlighted and to be scrolled into view if necessary. If no items are selected, the value is null. Set to null to deselect all items.You can set the value using the index of an item, rather than an object reference. If set to an index value that is out of range, the operation is ignored. When set with an index value, the property still returns an object reference.

shortcutKeyStringr/wThe key sequence that invokes the onShortcutKey callback for this element (in Windows only).

The current dimensions of this element.

Initially undefined, and unless explicitly set by a script, it is defined by a LayoutManager. A script can explicitly set size before the layout manager is invoked to establish an element size other than the preferredSize or the default size, but this is not recommended. Defined as [bounds.width, bounds.height]. Setting an element's size changes its bounds property, and vice-versa.

typeStringreadonlyThe element type, "treeview".

True if this element is shown, false if it is hidden.

When a container is hidden, its children are also hidden, but they retain their own visibility values, and are shown or hidden accordingly when the parent is next shown.

windowWindowreadonlyThe window that this element belongs to.
windowBoundsBoundsreadonlyThe bounds of this element relative to the top-level parent window.


ListItem add (type:String, text:String)
Adds an item to the top-level choices in this list.

Returns the item control object.

typeStringThe type of the child element, the string "item".
textStringThe localizable text label for the item.

bool addEventListener (eventName:String, handler:Function [, capturePhase:bool=false])
Registers an event handler for a particular type of event occuring in this element.


The name of the event.

Event names are listed in the JavaScript Tools Guide.


The function that handles the event.

This can be the name of a function defined in the extension, or a locally defined handler function to be executed when the event occurs. A handler function takes one argument, the UIEvent object.


When true, the handler is called only in the capturing phase of the event propagation. (default: false)

Default is false, meaning that the handler is called in the bubbling phase if this object is an ancestor of the target, or in the at-target phase if this object is itself the target.

Event dispatchEvent ()
Simulates the occurrence of an event in this target.

A script can create a UIEvent object for a specific event and pass it to this method to start the event propagation for the event.

ListItem find (text:String)
Retrieves an item object from the list that has a given text label.

textStringThe text string to match.

void hide ()
Hides this element.

void notify (eventName:String)
Sends a notification message, simulating the specified user interaction event.


The name of the control event handler to call.

One of: onClick, onChange, onChanging. By default, simulates the onChange event for an edittext control, an onClick event for controls that support that event.

void remove (what:Any)
Removes a child item from the list.

whatAnyThe item or child to remove, specified by 0-based index in the top-level item list, text value, or as a ListItem object.

void removeAll ()
Removes all child items from the list.

bool removeEventListener (eventName:String, handler:Function [, capturePhase:bool=false])
Unregisters an event handler for a particular type of event occuring in this element.

All arguments must be identical to those that were used to register the event handler.

eventNameStringThe name of the event.
handlerFunctionThe function that handles the event.
capturePhaseboolWhether to call the handler only in the capturing phase of the event propagation. (default: false)

void show ()
Shows this element.

When a window or container is hidden, its children are also hidden, but when it is shown again, the children retain their own visibility states.

Contents :: Index