01
Dec
07

Determining which Tree branches are open using the openItems property

The following example shows how you can use the openItems property to determine which branches are currently open in a Flex Tree control.

Full code after the jump.

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/12/01/determining-which-tree-branches-are-open-using-the-openitems-property/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:Script>
        <![CDATA[
            import mx.events.TreeEvent;
            import mx.utils.ObjectUtil;

            private function tree_openItems_change(evt:TreeEvent):void {
                /* Set the array and let binding do the real work. */
                openItemArr = tree.openItems as Array;
            }
        ]]>
    </mx:Script>

    <mx:Array id="openItemArr" />

    <mx:XML id="xmlDP">
        <node>
            <node label="1.a" />
            <node label="1.b" />
            <node label="1.c">
                <node label="1.c.i" />
                <node label="1.c.ii" />
                <node label="1.c.iii" />
                <node label="1.c.iv" />
                <node label="1.c.v" />
            </node>
            <node label="1.d" />
            <node label="1.e">
                <node label="1.e.i" />
                <node label="1.e.ii" />
                <node label="1.e.iii">
                    <node label="1.e.iii.A" />
                </node>
                <node label="1.e.iv" />
            </node>
            <node label="1.f" />
        </node>
    </mx:XML>

    <mx:ApplicationControlBar dock="true">
        <mx:Label text="Tree openItems length: {openItemArr.length}" />
    </mx:ApplicationControlBar>

    <mx:HDividedBox width="100%">
        <mx:Tree id="tree"
                dataProvider="{xmlDP}"
                labelField="@label"
                showRoot="false"
                width="50%"
                rowCount="8"
                itemOpen="tree_openItems_change(event);"
                itemClose="tree_openItems_change(event);" />

        <mx:List id="list"
                dataProvider="{openItemArr}"
                labelField="@label"
                width="50%"
                height="100%" />

        <mx:TextArea id="textArea"
                editable="false"
                text="{ObjectUtil.toString(openItemArr)}"
                width="50%"
                height="100%" />
    </mx:HDividedBox>

</mx:Application>

View source is enabled in the following example.


0 Responses to “Determining which Tree branches are open using the openItems property”


  1. No Comments

Leave a Reply

This blog is terrible at eating HTML tags. If you plan on posting code/XML, please escape your "<" characters as "&lt;" and your ">" characters as "&gt;".




December 2007
M T W T F S S
« Nov   Jan »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Badge Farm

  • Firefox 2
  • Powered by Redoable 1.2
  • Feeds burnt by Feedburner
  • Feed