<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Flex Examples &#187; itemOpen</title>
	<atom:link href="http://blog.flexexamples.com/tag/itemopen/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.flexexamples.com</link>
	<description>Just a bunch of Adobe Flex Examples</description>
	<lastBuildDate>Wed, 26 Jan 2011 18:09:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Detecting when a user opens or closes a Tree control in Flex</title>
		<link>http://blog.flexexamples.com/2007/11/28/detecting-when-a-user-opens-or-closes-a-tree-control-in-flex/</link>
		<comments>http://blog.flexexamples.com/2007/11/28/detecting-when-a-user-opens-or-closes-a-tree-control-in-flex/#comments</comments>
		<pubDate>Thu, 29 Nov 2007 07:06:46 +0000</pubDate>
		<dc:creator>Peter deHaan</dc:creator>
				<category><![CDATA[Tree]]></category>
		<category><![CDATA[itemClose]]></category>
		<category><![CDATA[itemOpen]]></category>

		<guid isPermaLink="false">http://blog.flexexamples.com/2007/11/28/detecting-when-a-user-opens-or-closes-a-tree-control-in-flex/</guid>
		<description><![CDATA[<p>The following example shows you how you can listen for when the user opens or closes a node in a Flex Tree control by listening for the itemOpen and itemClose events to be dispatched.</p> <p>Full code after the jump.</p> <p></p> <p class="download"><a href="http://blog.flexexamples.com/wp-content/uploads/Tree_itemOpen_test/main.mxml">View MXML</a></p> &#60;?xml version="1.0" encoding="utf-8"?&#62; &#60;!-- http://blog.flexexamples.com/2007/11/28/detecting-when-a-user-opens-or-closes-a-tree-control-in-flex/ --&#62; &#60;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" verticalAlign="middle" backgroundColor="white"&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>The following example shows you how you can listen for when the user opens or closes a node in a Flex Tree control by listening for the <code>itemOpen</code> and <code>itemClose</code> events to be dispatched.</p>
<p>Full code after the jump.</p>
<p><span id="more-338"></span></p>
<p class="download"><a href="http://blog.flexexamples.com/wp-content/uploads/Tree_itemOpen_test/main.mxml">View MXML</a></p>
<pre class="code">
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;!-- http://blog.flexexamples.com/2007/11/28/detecting-when-a-user-opens-or-closes-a-tree-control-in-flex/ --&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="horizontal"
        verticalAlign="middle"
        backgroundColor="white"&gt;

    &lt;mx:Script&gt;
        &lt;![CDATA[
            import mx.events.CollectionEvent;
            import mx.events.CollectionEventKind;
            import mx.events.TreeEvent;

            private function tree_itemOpen(evt:TreeEvent):void {
                arrColl.addItem({type:evt.type, label:evt.item.@label});
            }

            private function tree_itemClose(evt:TreeEvent):void {
                arrColl.addItem({type:evt.type, label:evt.item.@label});
            }

            private function arrColl_collectionChange(evt:CollectionEvent):void {
                switch (evt.kind) {
                    case CollectionEventKind.ADD:
                        callLater(autoScroll);
                        break;
                }
            }

            private function autoScroll():void {
                dataGrid.verticalScrollPosition = dataGrid.maxVerticalScrollPosition;
            }
        ]]&gt;
    &lt;/mx:Script&gt;

    &lt;mx:ArrayCollection id="arrColl"
            collectionChange="arrColl_collectionChange(event);" /&gt;

    &lt;mx:XMLListCollection id="xmlListColl"&gt;
        &lt;mx:source&gt;
            &lt;mx:XMLList&gt;
                &lt;node label="One"&gt;
                    &lt;node label="One.1"&gt;
                        &lt;node label="One.1.1"&gt;
                            &lt;node label="One.1.1.1"&gt;
                                &lt;node label="One.1.1.1.1" /&gt;
                            &lt;/node&gt;
                        &lt;/node&gt;
                    &lt;/node&gt;
                    &lt;node label="One.2" /&gt;
                    &lt;node label="One.3" /&gt;
                &lt;/node&gt;
                &lt;node label="Two"&gt;
                    &lt;node label="Two.1" /&gt;
                    &lt;node label="Two.2" /&gt;
                    &lt;node label="Two.3" /&gt;
                &lt;/node&gt;
            &lt;/mx:XMLList&gt;
        &lt;/mx:source&gt;
    &lt;/mx:XMLListCollection&gt;

    &lt;mx:Tree id="tree"
            dataProvider="{xmlListColl}"
            labelField="@label"
            width="350"
            rowCount="6"
            showScrollTips="true"
            itemOpen="tree_itemOpen(event);"
            itemClose="tree_itemClose(event);" /&gt;

    &lt;mx:DataGrid id="dataGrid"
            dataProvider="{arrColl}"
            verticalScrollPolicy="on"
            width="100%"
            height="{tree.height}"&gt;
        &lt;mx:columns&gt;
            &lt;mx:DataGridColumn dataField="type" /&gt;
            &lt;mx:DataGridColumn dataField="label" /&gt;
        &lt;/mx:columns&gt;
    &lt;/mx:DataGrid&gt;

&lt;/mx:Application&gt;
</pre>
<p class="information"><a href="http://blog.flexexamples.com/wp-content/uploads/Tree_itemOpen_test/bin/srcview/index.html">View source</a> is enabled in the following example.</p>
<p><iframe src="http://blog.flexexamples.com/wp-content/uploads/Tree_itemOpen_test/bin/main.html" width="100%" height="200"></iframe></p>
<p>There is also a third event you can listen for to monitor when a node is opened or closed, the <code>itemOpening</code> event. According to the <a href="http://livedocs.adobe.com/flex/3/langref/mx/controls/Tree.html">Flex 3 Tree class documentation</a> the differences between the three events are:</p>
<blockquote><p>
<code>itemClose</code> &#8212; Dispatched when a branch is closed or collapsed.<br />
<code>itemOpen</code> &#8212; Dispatched when a branch is opened or expanded.<br />
<code>itemOpening</code> &#8212; Dispatched when a branch open or close is initiated.
</p></blockquote>
<p>The following example shows how you can use the itemOpening event to determine if the Tree node was opened or closed by checking the <code>opening</code> property of the TreeEvent object.</p>
<p class="download"><a href="http://blog.flexexamples.com/wp-content/uploads/Tree_itemOpening_test/main.mxml">View MXML</a></p>
<pre class="code">
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;!-- http://blog.flexexamples.com/2007/11/28/detecting-when-a-user-opens-or-closes-a-tree-control-in-flex/ --&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="horizontal"
        verticalAlign="middle"
        backgroundColor="white"&gt;

    &lt;mx:Script&gt;
        &lt;![CDATA[
            import mx.events.CollectionEvent;
            import mx.events.CollectionEventKind;
            import mx.events.TreeEvent;

            private function tree_itemOpening(evt:TreeEvent):void {
                arrColl.addItem({type:evt.type, label:evt.item.@label, opening:evt.opening});
            }

            private function arrColl_collectionChange(evt:CollectionEvent):void {
                switch (evt.kind) {
                    case CollectionEventKind.ADD:
                        callLater(autoScroll);
                        break;
                }
            }

            private function autoScroll():void {
                dataGrid.verticalScrollPosition = dataGrid.maxVerticalScrollPosition;
            }
        ]]&gt;
    &lt;/mx:Script&gt;

    &lt;mx:ArrayCollection id="arrColl"
            collectionChange="arrColl_collectionChange(event);" /&gt;

    &lt;mx:XMLListCollection id="xmlListColl"&gt;
        &lt;mx:source&gt;
            &lt;mx:XMLList&gt;
                &lt;node label="One"&gt;
                    &lt;node label="One.1"&gt;
                        &lt;node label="One.1.1"&gt;
                            &lt;node label="One.1.1.1"&gt;
                                &lt;node label="One.1.1.1.1" /&gt;
                            &lt;/node&gt;
                        &lt;/node&gt;
                    &lt;/node&gt;
                    &lt;node label="One.2" /&gt;
                    &lt;node label="One.3" /&gt;
                &lt;/node&gt;
                &lt;node label="Two"&gt;
                    &lt;node label="Two.1" /&gt;
                    &lt;node label="Two.2" /&gt;
                    &lt;node label="Two.3" /&gt;
                &lt;/node&gt;
            &lt;/mx:XMLList&gt;
        &lt;/mx:source&gt;
    &lt;/mx:XMLListCollection&gt;

    &lt;mx:Tree id="tree"
            dataProvider="{xmlListColl}"
            labelField="@label"
            width="250"
            rowCount="6"
            showScrollTips="true"
            itemOpening="tree_itemOpening(event);" /&gt;

    &lt;mx:DataGrid id="dataGrid"
            dataProvider="{arrColl}"
            verticalScrollPolicy="on"
            width="100%"
            height="{tree.height}"&gt;
        &lt;mx:columns&gt;
            &lt;mx:DataGridColumn dataField="type" /&gt;
            &lt;mx:DataGridColumn dataField="label" /&gt;
            &lt;mx:DataGridColumn dataField="opening" /&gt;
        &lt;/mx:columns&gt;
    &lt;/mx:DataGrid&gt;

&lt;/mx:Application&gt;
</pre>
<p class="information"><a href="http://blog.flexexamples.com/wp-content/uploads/Tree_itemOpening_test/bin/srcview/index.html">View source</a> is enabled in the following example.</p>
<p><iframe src="http://blog.flexexamples.com/wp-content/uploads/Tree_itemOpening_test/bin/main.html" width="100%" height="200"></iframe></p>
<div class="evernoteSiteMemory"><a href="javascript:" onclick="Evernote.doClip({title: 'Detecting when a user opens or closes a Tree control in Flex on FlexExamples.com',url: 'http://blog.flexexamples.com/2007/11/28/detecting-when-a-user-opens-or-closes-a-tree-control-in-flex/',contentID: 'post-338',code: 'Pete9667',suggestNotebook: 'FlexExamples',suggestTags: 'itemClose,itemOpen',providerName: 'FlexExamples.com',styling: 'text' });return false" class="evernoteSiteMemoryLink"><img src="http://static.evernote.com/article-clipper-remember.png" class="evernoteSiteMemoryButton" />
				</a>				<div class="evernoteSiteMemoryClear">&nbsp;</div>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.flexexamples.com/2007/11/28/detecting-when-a-user-opens-or-closes-a-tree-control-in-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

