<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/11/29/opening-nodes-in-a-flex-tree-control-using-the-expanditem-method/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
		layout="vertical"
		verticalAlign="middle"
		backgroundColor="white" viewSourceURL="srcview/index.html">

	<mx:Script>
		<![CDATA[
			import mx.events.ListEvent;

			private function comboBox_change(evt:ListEvent):void {
				var team:String = ComboBox(evt.currentTarget).selectedItem.@label;
				var node:XMLList = mlb.league.division.team.(@label == team);
				expandParents(node[0]);

				tree.selectedItem = node[0];
				var idx:int = tree.getItemIndex(node[0]);
				tree.scrollToIndex(idx);
			}

			private function expandParents(node:XML):void {
				if (node && !tree.isItemOpen(node)) {
					tree.expandItem(node, true);
					expandParents(node.parent());
				}
			}
		]]>
	</mx:Script>

	<mx:XML id="mlb" source="mlb.xml" />

	<mx:ApplicationControlBar dock="true">
		<mx:ComboBox id="comboBox"
				prompt="Please select a team..."
				dataProvider="{mlb.league.division.team}"
				labelField="@label"
				change="comboBox_change(event);" />
	</mx:ApplicationControlBar>

	<mx:Tree id="tree"
			dataProvider="{mlb}"
			labelField="@label"
			showRoot="false"
			width="300"
			rowCount="8" />

</mx:Application>

