Package | feathers.controls |
Class | public class Tree |
Inheritance | Tree Scroller FeathersControl starling.display.Sprite |
Product Version : | Feathers 3.3.0 |
The following example creates a tree, gives it a data provider, and tells the item renderer how to interpret the data:
var tree:Tree = new Tree(); tree.dataProvider = new ArrayHierarchicalCollection( [ { text: "Node 1", children: [ { text: "Node 1A", children: [ { text: "Node 1A-I" }, { text: "Node 1A-II" }, ] }, { text: "Node 1B" }, ] }, { text: "Node 2" }, { text: "Node 3", children: [ { text: "Node 3A" }, { text: "Node 3B" }, { text: "Node 3C" }, ] } ]); tree.itemRendererFactory = function():ITreeItemRenderer { var itemRenderer:DefaultTreeItemRenderer = new DefaultTreeItemRenderer(); itemRenderer.labelField = "text"; return itemRenderer; }; this.addChild( tree );
See also
Property | Defined By | ||
---|---|---|---|
addedEffect : Function
An optional effect that is activated when the component is added to
the stage. | FeathersControl | ||
bottomPullView : DisplayObject
A view that is displayed at the bottom of the scroller's view port
when dragging up. | Scroller | ||
bottomPullViewDisplayMode : String
Indicates whether the bottom pull view may be dragged with the
content, or if its position is fixed to the edge of the scroller. | Scroller | ||
dataProvider : IHierarchicalCollection
The collection of data displayed by the tree. | Tree | ||
defaultTextEditorFactory : Function [static]
A function used by all UI controls that support text editor to
create an ITextEditor instance. | FeathersControl | ||
defaultTextRendererFactory : Function [static]
A function used by all UI controls that support text renderers to
create an ITextRenderer instance. | FeathersControl | ||
depth : int [read-only]
The component's depth in the display list, relative to the stage. | FeathersControl | ||
effectsSuspended : Boolean [read-only]
Indicates if effects have been suspended. | FeathersControl | ||
explicitHeight : Number [read-only]
The height value explicitly set by passing a value to the
height setter or by calling the setSize()
function. | FeathersControl | ||
explicitMaxHeight : Number [read-only]
The maximum height value explicitly set by passing a value to the
maxHeight setter. | FeathersControl | ||
explicitMaxWidth : Number [read-only]
The maximum width value explicitly set by passing a value to the
maxWidth setter. | FeathersControl | ||
explicitMinHeight : Number [read-only]
The minimum height value explicitly set by passing a value to the
minHeight setter. | FeathersControl | ||
explicitMinWidth : Number [read-only]
The minimum width value explicitly set by passing a value to the
minWidth setter. | FeathersControl | ||
explicitWidth : Number [read-only]
The width value explicitly set by passing a value to the
width setter or to the setSize() method. | FeathersControl | ||
factoryIDFunction : Function
When a tree requires multiple item renderer types, this function is
used to determine which type of item renderer is required for a
specific item (or index). | Tree | ||
focusInEffect : Function
An optional effect that is activated when the component receives
focus. | FeathersControl | ||
focusManager : IFocusManager
The implementation of this property is provided for convenience,
but it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
The current focus manager for this component. | FeathersControl | ||
focusOutEffect : Function
An optional effect that is activated when the component loses focus. | FeathersControl | ||
focusOwner : IFocusDisplayObject
The implementation of this property is provided for convenience,
but it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
Used for associating focusable display objects that are not direct
children with an "owner" focusable display object, such as pop-ups. | FeathersControl | ||
globalStyleProvider : IStyleProvider [static]
The default IStyleProvider for all Tree
components. | Tree | ||
height : Number [override]
The height of the component, in pixels. | FeathersControl | ||
hideEffect : Function
An optional effect that is activated when the component is hidden. | FeathersControl | ||
horizontalPageCount : int [read-only]
The number of horizontal pages, if snapping is enabled. | Scroller | ||
horizontalPageIndex : int
The index of the horizontal page, if snapping is enabled. | Scroller | ||
horizontalScrollBarFactory : Function
Creates the horizontal scroll bar. | Scroller | ||
horizontalScrollBarProperties : Object
An object that stores properties for the container's horizontal
scroll bar, and the properties will be passed down to the horizontal
scroll bar when the container validates. | Scroller | ||
horizontalScrollPolicy : String
Determines whether the scroller may scroll horizontally (on the
x-axis) or not. | Scroller | ||
horizontalScrollPosition : Number
The number of pixels the container has been scrolled horizontally (on
the x-axis). | Scroller | ||
horizontalScrollStep : Number
The number of pixels the horizontal scroll position can be adjusted
by a "step". | Scroller | ||
includeInLayout : Boolean
Determines if the ILayout should use this object or ignore it. | FeathersControl | ||
isBottomPullViewActive : Boolean
Indicates if the bottomPullView has been activated. | Scroller | ||
isCreated : Boolean [read-only]
Determines if the component has been initialized and validated for
the first time. | FeathersControl | ||
isEnabled : Boolean
Indicates whether the control is interactive or not. | FeathersControl | ||
isFocusEnabled : Boolean
The implementation of this property is provided for convenience,
but it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
Determines if this component can receive focus. | FeathersControl | ||
isInitialized : Boolean [read-only]
Determines if the component has been initialized yet. | FeathersControl | ||
isLeftPullViewActive : Boolean
Indicates if the leftPullView has been activated. | Scroller | ||
isQuickHitAreaEnabled : Boolean
Similar to mouseChildren on the classic display list. | FeathersControl | ||
isRightPullViewActive : Boolean
Indicates if the rightPullView has been activated. | Scroller | ||
isScrolling : Boolean [read-only]
Determines if the scroller is currently scrolling with user
interaction or with animation. | Scroller | ||
isSelectable : Boolean
Determines if an item in the tree may be selected. | Tree | ||
isShowingFocus : Boolean [read-only]
The implementation of this method is provided for convenience, but
it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
Indicates if the showFocus() method has been called on
the object when it has focus. | FeathersControl | ||
isTopPullViewActive : Boolean
Indicates if the topPullView has been activated. | Scroller | ||
itemRendererFactory : Function
A function called that is expected to return a new item renderer. | Tree | ||
itemRendererType : Class
The class used to instantiate item renderers. | Tree | ||
layoutData : ILayoutData
Extra parameters associated with this display object that will be
used by the layout algorithm. | FeathersControl | ||
leftPullView : DisplayObject
A view that is displayed to the left of the scroller's view port
when dragging to the right. | Scroller | ||
leftPullViewDisplayMode : String
Indicates whether the left pull view may be dragged with the content,
or if its position is fixed to the edge of the scroller. | Scroller | ||
maintainTouchFocus : Boolean [read-only]
The implementation of this method is provided for convenience, but
it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
If true, the display object should remain in focus,
even if something else is touched. | FeathersControl | ||
maxHeight : Number
The maximum recommended height to be used for self-measurement and,
optionally, by any code that is resizing this component. | FeathersControl | ||
maxHorizontalPageIndex : int [read-only]
The maximum horizontal page index that may be displayed by this
container, if page snapping is enabled. | Scroller | ||
maxHorizontalScrollPosition : Number [read-only]
The number of pixels the scroller may be scrolled horizontally to the
right. | Scroller | ||
maxVerticalPageIndex : int [read-only]
The maximum vertical page index that may be displayed by this
container, if page snapping is enabled. | Scroller | ||
maxVerticalScrollPosition : Number [read-only]
The number of pixels the scroller may be scrolled vertically beyond
the bottom edge. | Scroller | ||
maxWidth : Number
The maximum recommended width to be used for self-measurement and,
optionally, by any code that is resizing this component. | FeathersControl | ||
measureViewPort : Boolean
Determines if the dimensions of the view port are used when measuring
the scroller. | Scroller | ||
minHeight : Number
The minimum recommended height to be used for self-measurement and,
optionally, by any code that is resizing this component. | FeathersControl | ||
minHorizontalPageIndex : int [read-only]
The minimum horizontal page index that may be displayed by this
container, if page snapping is enabled. | Scroller | ||
minHorizontalScrollPosition : Number [read-only]
The number of pixels the scroller may be scrolled horizontally to the
left. | Scroller | ||
minimumDragDistance : Number
The minimum physical distance (in inches) that a touch must move
before the scroller starts scrolling. | Scroller | ||
minimumPageThrowVelocity : Number
The minimum physical velocity (in inches per second) that a touch
must move before the scroller will "throw" to the next page. | Scroller | ||
minTouchHeight : Number
If using isQuickHitAreaEnabled, and the hit area's
height is smaller than this value, it will be expanded. | FeathersControl | ||
minTouchWidth : Number
If using isQuickHitAreaEnabled, and the hit area's
width is smaller than this value, it will be expanded. | FeathersControl | ||
minVerticalPageIndex : int [read-only]
The minimum vertical page index that may be displayed by this
container, if page snapping is enabled. | Scroller | ||
minVerticalScrollPosition : Number [read-only]
The number of pixels the scroller may be scrolled vertically beyond
the top edge. | Scroller | ||
minWidth : Number
The minimum recommended width to be used for self-measurement and,
optionally, by any code that is resizing this component. | FeathersControl | ||
moveEffect : Function
An optional effect that is activated when the component is moved to
a new position. | FeathersControl | ||
nextDownFocus : IFocusDisplayObject
The implementation of this property is provided for convenience,
but it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
The next object that will receive focus when
Keyboard.DOWN is pressed at
KeyLocation.D_PAD and a focus manager is enabled. | FeathersControl | ||
nextLeftFocus : IFocusDisplayObject
The implementation of this property is provided for convenience,
but it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
The next object that will receive focus when
Keyboard.LEFT is pressed at
KeyLocation.D_PAD and a focus manager is enabled. | FeathersControl | ||
nextRightFocus : IFocusDisplayObject
The implementation of this property is provided for convenience,
but it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
The next object that will receive focus when
Keyboard.RIGHT is pressed at
KeyLocation.D_PAD and a focus manager is enabled. | FeathersControl | ||
nextTabFocus : IFocusDisplayObject
The implementation of this property is provided for convenience,
but it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
The next object that will receive focus when the tab key is pressed
when a focus manager is enabled. | FeathersControl | ||
nextUpFocus : IFocusDisplayObject
The implementation of this property is provided for convenience,
but it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
The next object that will receive focus when
Keyboard.UP is pressed at
KeyLocation.D_PAD and a focus manager is enabled. | FeathersControl | ||
pageHeight : Number
When set, the vertical pages snap to this height value instead of
the height of the scroller. | Scroller | ||
pageWidth : Number
When set, the horizontal pages snap to this width value instead of
the width of the scroller. | Scroller | ||
previousTabFocus : IFocusDisplayObject
The implementation of this property is provided for convenience,
but it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
The previous object that will receive focus when the tab key is
pressed while holding shift when a focus manager is enabled. | FeathersControl | ||
resizeEffect : Function
An optional effect that is activated when the component is resized
with new dimensions. | FeathersControl | ||
rightPullView : DisplayObject
A view that is displayed to the right of the scroller's view port
when dragging to the left. | Scroller | ||
rightPullViewDisplayMode : String
Indicates whether the right pull view may be dragged with the
content, or if its position is fixed to the edge of the scroller. | Scroller | ||
selectedItem : Object
The currently selected item. | Tree | ||
selectedLocation : Vector.<int>
The currently selected location. | Tree | ||
showEffect : Function
An optional effect that is activated when the component is shown. | FeathersControl | ||
styleName : String
The concatenated styleNameList, with values separated
by spaces. | FeathersControl | ||
styleNameList : TokenList [read-only]
Contains a list of all "styles" assigned to this control. | FeathersControl | ||
styleProvider : IStyleProvider
When a component initializes, a style provider may be used to set
properties that affect the component's visual appearance. | FeathersControl | ||
toolTip : String
Text to display in a tool tip to when hovering over this component,
if the ToolTipManager is enabled. | FeathersControl | ||
topPullView : DisplayObject
A view that is displayed at the top of the scroller's view port when
dragging down. | Scroller | ||
topPullViewDisplayMode : String
Indicates whether the top pull view may be dragged with the content,
or if its position is fixed to the edge of the scroller. | Scroller | ||
typicalItem : Object
Used to auto-size the tree when a virtualized layout is used. | Tree | ||
verticalMouseWheelScrollDirection : String
The direction of scrolling when the user scrolls the mouse wheel
vertically. | Scroller | ||
verticalMouseWheelScrollStep : Number
The number of pixels the vertical scroll position can be adjusted by
a "step" when using the mouse wheel. | Scroller | ||
verticalPageCount : int [read-only]
The number of vertical pages, if snapping is enabled. | Scroller | ||
verticalPageIndex : int
The index of the vertical page, if snapping is enabled. | Scroller | ||
verticalScrollBarFactory : Function
Creates the vertical scroll bar. | Scroller | ||
verticalScrollBarProperties : Object
An object that stores properties for the container's vertical scroll
bar, and the properties will be passed down to the vertical scroll
bar when the container validates. | Scroller | ||
verticalScrollPolicy : String
Determines whether the scroller may scroll vertically (on the
y-axis) or not. | Scroller | ||
verticalScrollPosition : Number
The number of pixels the container has been scrolled vertically (on
the y-axis). | Scroller | ||
verticalScrollStep : Number
The number of pixels the vertical scroll position can be adjusted
by a "step". | Scroller | ||
viewPort : IViewPort
The display object displayed and scrolled within the Scroller. | Scroller | ||
width : Number [override]
The width of the component, in pixels. | FeathersControl |
Method | Defined By | ||
---|---|---|---|
Tree()
Constructor
| Tree | ||
getBounds(targetSpace:DisplayObject, resultRect:Rectangle = null):Rectangle [override]
Feathers components use an optimized getBounds()
implementation that may sometimes behave differently than regular
Starling display objects. | FeathersControl | ||
getItemRendererFactoryWithID(id:String):Function
Returns the item renderer factory associated with a specific ID. | Tree | ||
getSelectedLocation(result:Vector.<int> = null):Vector.<int>
Returns the currently selected location, or an empty
Vector.<int>, if no item is currently selected. | Tree | ||
hideFocus():void
The implementation of this method is provided for convenience, but
it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
| FeathersControl | ||
initializeNow():void
If the component has not yet initialized, initializes immediately. | FeathersControl | ||
invalidate(flag:String):void
Call this function to tell the UI control that a redraw is pending. | FeathersControl | ||
isBranchOpen(branch:Object):Boolean
Indicates if a branch from the data provider is open or closed. | Tree | ||
isInvalid(flag:String = null):Boolean
Indicates whether the control is pending validation or not. | FeathersControl | ||
itemToItemRenderer(item:Object):ITreeItemRenderer
Returns the current item renderer used to render a specific item. | Tree | ||
move(x:Number, y:Number):void
Sets both the x and the y positions of the control in a single
function call. | FeathersControl | ||
removeFromParentWithEffect(effect:Function, dispose:Boolean = false):void
Plays an effect before removing the component from its parent. | FeathersControl | ||
resetStyleProvider():void
Resets the styleProvider property to its default value,
which is usually the global style provider for the component. | FeathersControl | ||
resumeEffects():void
Indicates that effects should be re-activated after being suspended. | FeathersControl | ||
revealScrollBars():void
If the scroll bars are floating, briefly show them as a hint to the
user. | Scroller | ||
scrollToDisplayLocation(location:Vector.<int>, animationDuration:Number = 0):void
After the next validation, scrolls the list so that the specified
item is visible. | Tree | ||
scrollToPageIndex(horizontalPageIndex:int, verticalPageIndex:int, animationDuration:Number):void
After the next validation, animates the scroll position to a specific
page index. | Scroller | ||
scrollToPosition(horizontalScrollPosition:Number, verticalScrollPosition:Number, animationDuration:Number):void
After the next validation, animates the scroll positions to a
specific location. | Scroller | ||
setItemRendererFactoryWithID(id:String, factory:Function):void
Associates an item renderer factory with an ID to allow multiple
types of item renderers may be displayed in the tree. | Tree | ||
setSize(width:Number, height:Number):void
Sets both the width and the height of the control in a single
function call. | FeathersControl | ||
showFocus():void
The implementation of this method is provided for convenience, but
it cannot be used unless a subclass implements the
IFocusDisplayObject interface.
| FeathersControl | ||
stopScrolling():void
If the user is scrolling with touch or if the scrolling is animated,
calling stopScrolling() will cause the scroller to ignore the drag
and stop animations. | Scroller | ||
suspendEffects():void
Indicates that effects should not be activated temporarily. | FeathersControl | ||
toggleBranch(branch:Object, open:Boolean):void
Opens or closes a branch. | Tree | ||
validate():void
Immediately validates the display object, if it is invalid. | FeathersControl |
Event | Summary | Defined By | ||
---|---|---|---|---|
Dispatched when the user starts dragging the scroller when ScrollInteractionMode.TOUCH is enabled or when the user starts interacting with the scroll bar. | Scroller | |||
Dispatched when the selected item changes. | Tree | |||
Dispatched when a branch is closed. | Tree | |||
Dispatched after the component has validated for the first time. | FeathersControl | |||
Dispatched when the user stops dragging the scroller when ScrollInteractionMode.TOUCH is enabled or when the user stops interacting with the scroll bar. | Scroller | |||
Dispatched when the component receives focus. | Scroller | |||
Dispatched when the component loses focus. | Scroller | |||
Dispatched after initialize() has been called, but before the first time that draw() has been called. | FeathersControl | |||
Dispatched when a branch is opened. | Tree | |||
Dispatched when an item renderer is added to the tree. | Tree | |||
Dispatched when an item renderer is removed from the tree. | Tree | |||
Dispatched when the width or height of the control changes. | FeathersControl | |||
Dispatched when the scroller scrolls in either direction or when the view port's scrolling bounds have changed. | Scroller | |||
Dispatched when the scroller finishes scrolling in either direction as a result of either user interaction or animation. | Scroller | |||
Dispatched when the scroller starts scrolling in either direction as a result of either user interaction or animation. | Scroller | |||
Dispatched when the the user taps or clicks an item renderer in the tree. | Tree | |||
Dispatched when a pull view is activated. | Scroller |
Style | Defined By | ||
---|---|---|---|
autoHideBackground : Boolean If true, the background's visible property will be set to false when the scroll position is greater than or equal to the minimum scroll position and less than or equal to the maximum scroll position. | Scroller | ||
backgroundDisabledSkin : DisplayObject A background to display when the container is disabled. | Scroller | ||
backgroundSkin : DisplayObject The default background to display. | Scroller | ||
clipContent : Boolean If true, the viewport will be clipped to the scroller's bounds. | Scroller | ||
customHorizontalScrollBarStyleName : String A style name to add to the container's horizontal scroll bar sub-component. | Scroller | ||
customItemRendererStyleName : String A style name to add to all item renderers in this tree. | Tree | ||
customVerticalScrollBarStyleName : String A style name to add to the container's vertical scroll bar sub-component. | Scroller | ||
decelerationRate : Number This value is used to decelerate the scroller when "thrown". | Scroller | ||
elasticity : Number If the scroll position goes outside the minimum or maximum bounds when the scroller's content is being actively dragged, the scrolling will be constrained using this multiplier. | Scroller | ||
elasticSnapDuration : Number The duration, in seconds, of the animation when a the scroller snaps back to the minimum or maximum position after going out of bounds. | Scroller | ||
focusIndicatorSkin : DisplayObject If this component supports focus, this optional skin will be displayed above the component when showFocus() is called. | FeathersControl | ||
focusPadding : Number Quickly sets all focus padding properties to the same value. | FeathersControl | ||
focusPaddingBottom : Number The minimum space, in pixels, between the object's bottom edge and the bottom edge of the focus indicator skin. | FeathersControl | ||
focusPaddingLeft : Number The minimum space, in pixels, between the object's left edge and the left edge of the focus indicator skin. | FeathersControl | ||
focusPaddingRight : Number The minimum space, in pixels, between the object's right edge and the right edge of the focus indicator skin. | FeathersControl | ||
focusPaddingTop : Number The minimum space, in pixels, between the object's top edge and the top edge of the focus indicator skin. | FeathersControl | ||
hasElasticEdges : Boolean Determines if the scrolling can go beyond the edges of the viewport. | Scroller | ||
hideScrollBarAnimationDuration : Number The duration, in seconds, of the animation when a scroll bar fades out. | Scroller | ||
hideScrollBarAnimationEase : Object The easing function used for hiding the scroll bars, if applicable. | Scroller | ||
horizontalScrollBarPosition : String Determines where the horizontal scroll bar will be positioned. | Scroller | ||
interactionMode : String Determines how the user may interact with the scroller. | Scroller | ||
keyScrollDuration : Number The duration, in seconds, of the animation when the selected item is changed by keyboard navigation and the item scrolls into view. | Tree | ||
layout : ILayout The layout algorithm used to position and, optionally, size the tree's items. | Tree | ||
mouseWheelScrollDuration : Number The duration, in seconds, of the animation when the mouse wheel initiates a scroll action. | Scroller | ||
padding : Number Quickly sets all padding properties to the same value. | Scroller | ||
paddingBottom : Number The minimum space, in pixels, between the container's bottom edge and the container's content. | Scroller | ||
paddingLeft : Number The minimum space, in pixels, between the container's left edge and the container's content. | Scroller | ||
paddingRight : Number The minimum space, in pixels, between the container's right edge and the container's content. | Scroller | ||
paddingTop : Number The minimum space, in pixels, between the container's top edge and the container's content. | Scroller | ||
pageThrowDuration : Number The duration, in seconds, of the animation when the scroller is thrown to a page. | Scroller | ||
revealScrollBarsDuration : Number The duration, in seconds, that the scroll bars will be shown when calling revealScrollBars(). | Scroller | ||
scrollBarDisplayMode : String Determines how the scroll bars are displayed. | Scroller | ||
snapScrollPositionsToPixels : Boolean If enabled, the scroll position will always be adjusted to the nearest pixel on the physical screen. | Scroller | ||
snapToPages : Boolean Determines if scrolling will snap to the nearest page. | Scroller | ||
throwEase : Object The easing function used for "throw" animations. | Scroller | ||
throwElasticity : Number If the scroll position goes outside the minimum or maximum bounds when the scroller's content is "thrown", the scrolling will be constrained using this multiplier. | Scroller | ||
useFixedThrowDuration : Boolean If true, the duration of a "throw" animation will be the same no matter the value of the throw's initial velocity. | Scroller | ||
verticalScrollBarPosition : String Determines where the vertical scroll bar will be positioned. | Scroller |
dataProvider | property |
dataProvider:IHierarchicalCollection
The collection of data displayed by the tree. Changing this property to a new value is considered a drastic change to the tree's data, so the horizontal and vertical scroll positions will be reset, and the tree's selection will be cleared.
The following example passes in a data provider and tells the item renderer how to interpret the data:
tree.dataProvider = new ArrayHierarchicalCollection( [ { text: "Node 1", children: [ { text: "Node 1A", children: [ { text: "Node 1A-I" }, { text: "Node 1A-II" }, ] }, { text: "Node 1B" }, ] }, { text: "Node 2" }, { text: "Node 3", children: [ { text: "Node 3A" }, { text: "Node 3B" }, { text: "Node 3C" }, ] } ]); tree.itemRendererFactory = function():ITreeItemRenderer { var itemRenderer:DefaultTreeItemRenderer = new DefaultTreeItemRenderer(); itemRenderer.labelField = "text"; return itemRenderer; };
Warning: A tree's data provider cannot contain duplicate items. To display the same item in multiple item renderers, you must create separate objects with the same properties. This restriction exists because it significantly improves performance.
Warning: If the data provider contains display objects,
concrete textures, or anything that needs to be disposed, those
objects will not be automatically disposed when the list is disposed.
Similar to how starling.display.Image
cannot
automatically dispose its texture because the texture may be used
by other display objects, a list cannot dispose its data provider
because the data provider may be used by other lists. See the
dispose()
function on IHierarchicalCollection
to
see how the data provider can be disposed properly.
The default value is null
.
public function get dataProvider():IHierarchicalCollection
public function set dataProvider(value:IHierarchicalCollection):void
See also
factoryIDFunction | property |
factoryIDFunction:Function
When a tree requires multiple item renderer types, this function is
used to determine which type of item renderer is required for a
specific item (or index). Returns the ID of the item renderer type
to use for the item, or null
if the default
itemRendererFactory
should be used.
The function is expected to have one of the following signatures:
function(item:Object):String
function(item:Object, location:Vector.<int>):String
The following example provides a factoryIDFunction
:
function regularItemFactory():ITreeItemRenderer { return new DefaultTreeItemRenderer(); } function firstItemFactory():ITreeItemRenderer { return new CustomItemRenderer(); } tree.setItemRendererFactoryWithID( "regular-item", regularItemFactory ); tree.setItemRendererFactoryWithID( "first-item", firstItemFactory ); tree.factoryIDFunction = function( item:Object, location:Vector.<int> ):String { if(location.length == 1 && location[0] == 0) { return "first-item"; } return "regular-item"; };
The default value is null
.
public function get factoryIDFunction():Function
public function set factoryIDFunction(value:Function):void
See also
globalStyleProvider | property |
public static var globalStyleProvider:IStyleProvider
The default IStyleProvider
for all Tree
components.
The default value is null
.
See also
isSelectable | property |
isSelectable:Boolean
Determines if an item in the tree may be selected.
The following example disables selection:
tree.isSelectable = false;
The default value is true
.
public function get isSelectable():Boolean
public function set isSelectable(value:Boolean):void
See also
itemRendererFactory | property |
itemRendererFactory:Function
A function called that is expected to return a new item renderer. Has
a higher priority than itemRendererType
. Typically, you
would use an itemRendererFactory
instead of an
itemRendererType
if you wanted to initialize some
properties on each separate item renderer, such as skins.
The function is expected to have the following signature:
function():ITreeItemRenderer
The following example provides a factory for the item renderer:
tree.itemRendererFactory = function():ITreeItemRenderer { var renderer:CustomItemRendererClass = new CustomItemRendererClass(); renderer.backgroundSkin = new Quad( 10, 10, 0xff0000 ); return renderer; };
The default value is null
.
public function get itemRendererFactory():Function
public function set itemRendererFactory(value:Function):void
See also
itemRendererType | property |
itemRendererType:Class
The class used to instantiate item renderers. Must implement the
ITreeItemRenderer
interface.
To customize properties on the item renderer, use
itemRendererFactory
instead.
The following example changes the item renderer type:
tree.itemRendererType = CustomItemRendererClass;
The default value is feathers.controls.renderers.DefaultTreeItemRenderer
.
public function get itemRendererType():Class
public function set itemRendererType(value:Class):void
See also
selectedItem | property |
selectedItem:Object
The currently selected item. Returns null
if no item is
selected.
The following example listens for when selection changes and requests the selected item:
function tree_changeHandler( event:Event ):void { var tree:Tree = Tree( event.currentTarget ); var item:Object = tree.selectedItem; } tree.addEventListener( Event.CHANGE, tree_changeHandler );
The default value is null
.
public function get selectedItem():Object
public function set selectedItem(value:Object):void
selectedLocation | property |
selectedLocation:Vector.<int>
The currently selected location. Returns an empty
Vector.<int>
if no item is selected.
The following example listens for when selection changes and requests the selected location:
function tree_changeHandler( event:Event ):void { var tree:Tree = Tree( event.currentTarget ); var location:Vector.<int> = tree.selectedLocation; } tree.addEventListener( Event.CHANGE, tree_changeHandler );
Alternatively, you may use the getSelectedLocation()
method to get the selected location without creating a new
Vector.<int>
instance, to avoid garbage
collection of temporary objects.
public function get selectedLocation():Vector.<int>
public function set selectedLocation(value:Vector.<int>):void
See also
typicalItem | property |
typicalItem:Object
Used to auto-size the tree when a virtualized layout is used. If the tree's width or height is unknown, the tree will try to automatically pick an ideal size. This item is used to create a sample item renderer to measure item renderers that are virtual and not visible in the viewport.
The following example provides a typical item:
tree.typicalItem = { text: "A typical item", thumbnail: texture };
The default value is null
.
public function get typicalItem():Object
public function set typicalItem(value:Object):void
Tree | () | Constructor |
public function Tree()
Constructor
getItemRendererFactoryWithID | () | method |
public function getItemRendererFactoryWithID(id:String):Function
Returns the item renderer factory associated with a specific ID.
Returns null
if no factory is associated with the ID.
Parameters
id:String |
Function |
See also
getSelectedLocation | () | method |
public function getSelectedLocation(result:Vector.<int> = null):Vector.<int>
Returns the currently selected location, or an empty
Vector.<int>
, if no item is currently selected.
The following example listens for when selection changes and requests the selected location:
function tree_changeHandler( event:Event ):void { var tree:Tree = Tree( event.currentTarget ); var result:Vector.<int> = new <int>[]; var location:Vector.<int> = tree.getSelectedLocation(result); } tree.addEventListener( Event.CHANGE, tree_changeHandler );
Parameters
result:Vector.<int> (default = null )
|
Vector.<int> |
See also
isBranchOpen | () | method |
public function isBranchOpen(branch:Object):Boolean
Indicates if a branch from the data provider is open or closed.
Parameters
branch:Object |
Boolean |
See also
itemToItemRenderer | () | method |
public function itemToItemRenderer(item:Object):ITreeItemRenderer
Returns the current item renderer used to render a specific item. May
return null
if an item doesn't currently have an item
renderer. Most trees use virtual layouts where only the visible items
will have an item renderer, so the result will usually be
null
for most items in the data provider.
Parameters
item:Object |
ITreeItemRenderer |
See also
scrollToDisplayLocation | () | method |
public function scrollToDisplayLocation(location:Vector.<int>, animationDuration:Number = 0):void
After the next validation, scrolls the list so that the specified
item is visible. If animationDuration
is greater than
zero, the scroll will animate. The duration is in seconds.
In the following example, the list is scrolled to display the third item in the second branch:
tree.scrollToDisplayLocation( new <int>[1, 2] );
Parameters
location:Vector.<int> | |
animationDuration:Number (default = 0 )
|
setItemRendererFactoryWithID | () | method |
public function setItemRendererFactoryWithID(id:String, factory:Function):void
Associates an item renderer factory with an ID to allow multiple
types of item renderers may be displayed in the tree. A custom
factoryIDFunction
may be specified to return the ID of
the factory to use for a specific item in the data provider.
Parameters
id:String | |
factory:Function |
See also
toggleBranch | () | method |
public function toggleBranch(branch:Object, open:Boolean):void
Opens or closes a branch.
Parameters
branch:Object | |
open:Boolean |
See also
change | Event |
starling.events.Event
starling.events.Event.CHANGE
Dispatched when the selected item changes.
The properties of the event object have the following values:
Property | Value |
---|---|
bubbles | false |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget . |
data | null |
target | The Object that dispatched the event;
it is not always the Object listening for the event. Use the
currentTarget property to always access the Object
listening for the event. |
See also
close | Event |
starling.events.Event
starling.events.Event.CLOSE
Dispatched when a branch is closed.
The properties of the event object have the following values:
Property | Value |
---|---|
bubbles | false |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget . |
data | The data for the branch that was closed |
target | The Object that dispatched the event;
it is not always the Object listening for the event. Use the
currentTarget property to always access the Object
listening for the event. |
See also
open | Event |
starling.events.Event
starling.events.Event.OPEN
Dispatched when a branch is opened.
The properties of the event object have the following values:
Property | Value |
---|---|
bubbles | false |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget . |
data | The data for the branch that was opened |
target | The Object that dispatched the event;
it is not always the Object listening for the event. Use the
currentTarget property to always access the Object
listening for the event. |
See also
rendererAdd | Event |
starling.events.Event
feathers.events.FeathersEventType.RENDERER_ADD
Dispatched when an item renderer is added to the tree. When the layout is virtualized, item renderers may not exist for every item in the data provider. This event can be used to track which items currently have renderers.
The properties of the event object have the following values:
Property | Value |
---|---|
bubbles | false |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget . |
data | The item renderer that was added |
target | The Object that dispatched the event;
it is not always the Object listening for the event. Use the
currentTarget property to always access the Object
listening for the event. |
FeathersEventType.RENDERER_ADD
event type is used by
Feathers components with item renderers to indicate when a new
renderer has been added. This event type is meant to be used with
virtualized layouts where only a limited set of renderers will be
created for a data provider that may include a larger number of items.
rendererRemove | Event |
starling.events.Event
feathers.events.FeathersEventType.RENDERER_REMOVE
Dispatched when an item renderer is removed from the tree. When the layout is virtualized, item renderers may not exist for every item in the data provider. This event can be used to track which items currently have renderers.
The properties of the event object have the following values:
Property | Value |
---|---|
bubbles | false |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget . |
data | The item renderer that was removed |
target | The Object that dispatched the event;
it is not always the Object listening for the event. Use the
currentTarget property to always access the Object
listening for the event. |
FeathersEventType.RENDERER_REMOVE
event type is used
by Feathers controls with item renderers to indicate when a renderer
is removed. This event type is meant to be used with virtualized
layouts where only a limited set of renderers will be created for
a data provider that may include a larger number items.
triggered | Event |
starling.events.Event
starling.events.Event.TRIGGERED
Dispatched when the the user taps or clicks an item renderer in the tree. The touch must remain within the bounds of the item renderer on release, and the tree must not have scrolled, to register as a tap or a click.
The properties of the event object have the following values:
Property | Value |
---|---|
bubbles | false |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget . |
data | The item associated with the item renderer that was triggered. |
target | The Object that dispatched the event;
it is not always the Object listening for the event. Use the
currentTarget property to always access the Object
listening for the event. |
layout | style |
layout:ILayout
The layout algorithm used to position and, optionally, size the tree's items.
By default, if no layout is provided by the time that the tree initializes, a vertical layout with options targeted at touch screens is created.
The following example tells the tree to use a horizontal layout:
var layout:HorizontalLayout = new HorizontalLayout(); layout.gap = 20; layout.padding = 20; tree.layout = layout;
keyScrollDuration | style |
keyScrollDuration:Number
The duration, in seconds, of the animation when the selected item is changed by keyboard navigation and the item scrolls into view.
In the following example, the duration of the animation that scrolls the tree to a new selected item is set to 500 milliseconds:
tree.keyScrollDuration = 0.5;
The default value is 0.25
.
customItemRendererStyleName | style |
customItemRendererStyleName:String
A style name to add to all item renderers in this tree. Typically used by a theme to provide different styles to different trees.
The following example sets the item renderer style name:
tree.customItemRendererStyleName = "my-custom-item-renderer";
In your theme, you can target this sub-component style name to provide different skins than the default:
getStyleProviderForClass( DefaultTreeItemRenderer ).setFunctionForStyleName( "my-custom-item-renderer", setCustomItemRendererStyles );
The default value is null
.
See also