<?xml version="1.0"?>
<!--
  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.
  -->

<!-- DataGrid control example. -->
<mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx"
				paddingBottom="0" paddingTop="0" paddingLeft="0" paddingRight="0"
				height="100%" width="100%">

	<fx:Declarations>
	    <fx:XMLList id="employees">
	        <employee>
	            <name>Christina Coenraets</name>
	            <phone>555-219-2270</phone>
	            <email>ccoenraets@fictitious.com</email>
	            <active>true</active>
	        </employee>
	        <employee>
	            <name>Joanne Wall</name>
	            <phone>555-219-2012</phone>
	            <email>jwall@fictitious.com</email>
	            <active>true</active>
	        </employee>
	        <employee>
	            <name>Maurice Smith</name>
	            <phone>555-219-2012</phone>
	            <email>maurice@fictitious.com</email>
	            <active>false</active>
	        </employee>
	        <employee>
	            <name>Mary Jones</name>
	            <phone>555-219-2000</phone>
	            <email>mjones@fictitious.com</email>
	            <active>true</active>
	        </employee>
	    </fx:XMLList>
	</fx:Declarations>

    <mx:Panel title="DataGrid Control Example"
				paddingBottom="10" paddingTop="10" paddingLeft="10" paddingRight="10"
				height="100%" width="100%">

        <mx:Label width="100%"
            text="Select a row in the DataGrid control."/>

        <mx:DataGrid id="dg" width="100%" height="100%" rowCount="5" dataProvider="{employees}">
            <mx:columns>
                <mx:DataGridColumn dataField="name" headerText="Name"/>
                <mx:DataGridColumn dataField="phone" headerText="Phone"/>
                <mx:DataGridColumn dataField="email" headerText="Email"/>
            </mx:columns>
        </mx:DataGrid>

        <mx:Form width="100%" height="100%">
            <mx:FormItem label="Name">
                <mx:Label text="{dg.selectedItem.name}"/>
            </mx:FormItem>
            <mx:FormItem label="Email">
                <mx:Label text="{dg.selectedItem.email}"/>
            </mx:FormItem>
            <mx:FormItem label="Phone">
                <mx:Label text="{dg.selectedItem.phone}"/>
            </mx:FormItem>
        </mx:Form>
        
    </mx:Panel>
</mx:Module>        
