<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/01/15/expanding-nodes-in-a-flex-tree-control-using-the-openitems-property/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
		layout="vertical"
		verticalAlign="middle"
		backgroundColor="white" viewSourceURL="srcview/index.html">

	<mx:Script>
		<![CDATA[
			private function openSomeNodes():void {
				var xList:XMLList = dp..node.(hasOwnProperty("@isOpen") && @isOpen == "true");
				tree.openItems = xList;
			}

			private function closeAllNodes():void {
				tree.openItems = [];
			}
		]]>
	</mx:Script>

	<mx:XML id="dp">
		<root>
			<node label="Parent 1" isOpen="true">
				<node label="Child 1" />
				<node label="Child 2">
					<node label="Grandchild 1" />
					<node label="Grandchild 2" />
				</node>
				<node label="Child 3" />
				<node label="Child 4" isOpen="true">
					<node label="Grandchild 3">
						<node label="Great-grandchild 1" />
						<node label="Great-grandchild 2" />
						<node label="Great-grandchild 3" />
						<node label="Great-grandchild 4">
							<node label="Great-great-grandchild 1" />
						</node>
						<node label="Grandchild 1" />
					</node>
					<node label="Grandchild 4" />
				</node>
				<node label="Child 5" />
			</node>
		</root>
	</mx:XML>

	<mx:ApplicationControlBar dock="true">
		<mx:Button label="Open some nodes" click="openSomeNodes();" />
		<mx:Button label="Close all nodes" click="closeAllNodes();" />
	</mx:ApplicationControlBar>

	<mx:Tree id="tree"
			dataProvider="{dp}"
			showRoot="false"
			labelField="@label"
			width="300" />

</mx:Application>
