<?xml version="1.0" encoding="utf-8"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" >

    <fx:Script>
<![CDATA[

]]>
</fx:Script>
<!-- Embed fonts for cross platform compatibility of bitmap compares. -->
<fx:Style>
	@namespace "library://ns.adobe.com/flex/mx";
    @font-face {
        src: url("../../../../Assets/Fonts/Open_Sans/OpenSans-Regular.ttf");
        fontFamily: EmbeddedVerdana;
			embedAsCFF: false;
    }

    @font-face {
        src: url("../../../../Assets/Fonts/Open_Sans/OpenSans-Bold.ttf");
        fontWeight: bold;
        fontFamily: EmbeddedVerdana;
			embedAsCFF: false;
    }

    @font-face {
        src: url("../../../../Assets/Fonts/Open_Sans/OpenSans-Italic.ttf");
        fontStyle: italic;
        fontFamily: EmbeddedVerdana;
			embedAsCFF: false;
    }

    Tree{
        fontFamily: EmbeddedVerdana;
        fontAntiAliasType: normal;
    }
</fx:Style>
<fx:Declarations>
	<fx:XML id="treeXMLEmptyBranches">
		<node label="rootnode">
			<node label="Containers">
			    <node label="DividedBoxClasses">
					<node label="BoxDivider" data="BoxDivider.as" />
			    </node>
			    <node label="GridClasses">
				     <node label="empty branch2" isBranch="true"/>
					<node label="GridRow" data="GridRow.as" />
					<node label="GridItem" data="GridItem.as" />
			    </node>
			</node>
			<node label="Printing">
				<node label="PrintJob" data="PrintJob.as" />
				<node label="PrintJob1" data="PrintJob1.as" />
				<node label="PrintTree" data="PrintTree.as" />
			</node>
			<node label="empty branch1" isBranch="true"/>
		</node>
	</fx:XML>

<fx:XML id="treeXML">
	<node label="rootnode">
		<node label="Containers">
		    <node label="DividedBoxClasses">
				<node label="BoxDivider" data="BoxDivider.as" />
		    </node>
		    <node label="GridClasses">
				<node label="GridRow" data="GridRow.as" />
				<node label="GridItem" data="GridItem.as" />
		    </node>
		</node>
		<node label="Printing">
			<node label="PrintJob" data="PrintJob.as" />
			<node label="PrintJob1" data="PrintJob1.as" />
			<node label="PrintTree" data="PrintTree.as" />
		</node>
	</node>
</fx:XML>
</fx:Declarations>
<mx:HBox id="hb" >
<mx:Tree id="tree"  />
<mx:Tree id="tree2" />
</mx:HBox>

</s:Application>
