<?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:Module xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   width="100%" height="100%">
	
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			
			[Bindable]
			private var _locales:ArrayCollection = new ArrayCollection(['en-US','de-DE','ja-JP','ru-RU','ar-SA','zh-CN']);
			
			private function sortInOrder(order:int):void {
				switch (order)
				{
					case 1:
						mySort.fields = [firstField,lastField,ageField];
						break;
					case 2:
						mySort.fields = [lastField,firstField,ageField];
						break;
					case 3:
						mySort.fields = [ageField,firstField,lastField];
						break;
					case 4:
						mySort.fields = [firstField,ageField,lastField];
						break;
				}
				
				employeeArrColl.sort = mySort;
				employeeArrColl.refresh();
			}
		]]>
	</fx:Script>
	
	<fx:Declarations>
		<s:Sort id="mySort" locale="{localeCB.selectedItem}"/>
		
		<s:SortField id="firstField" name="first"/>
		<s:SortField id="lastField" name="last"/>
		<s:SortField id="ageField" name="age"/>
		
		<s:ArrayCollection id="employeeArrColl">
			<fx:Object first="Anders" last="Öhlund" age="36"/>
			<fx:Object first="Eileen" last="Oehland" age="25"/>
			<fx:Object first="Anders" last="Zorn" age="36"/>
			<fx:Object first="Steve" last="Aaron" age="40"/>
			<fx:Object first="Toren" last="Ohlin" age="20"/>
			<fx:Object first="Toren" last="Aaron" age="36"/>
			<fx:Object first="Torolf" last="Aaron" age="40"/>
		</s:ArrayCollection>
	</fx:Declarations>
	
	<s:Panel title="Spark Sort and SortField" width="100%" height="100%">

		<s:layout>
			<s:HorizontalLayout paddingLeft="10" paddingRight="10" paddingTop="10" paddingBottom="10" />
		</s:layout>
		
		<s:Form height="100%" width="100%">
			<s:Label text="Select a locale to see the strings sorting result:"/>
			<s:Spacer height="15"/>
			
			<s:FormItem label="Locale: ">
				<s:ComboBox id="localeCB" dataProvider="{_locales}" selectedIndex="0"/>
			</s:FormItem>
			<s:Label text="     ==========================================================================="/>
			<s:FormItem label="Sorting Priority:" toolTip="Click priority radio button to sort multiple columns">
				<s:RadioButton id="flaRB" groupName="priority" label="first name > last name > age" click="sortInOrder(1)"/>
				<s:RadioButton id="lfaRB" groupName="priority" label="last name > first name > age" click="sortInOrder(2)"/>
				<s:RadioButton id="alfRB" groupName="priority" label="age > first name > last name" click="sortInOrder(3)"/>
				<s:RadioButton id="falRB" groupName="priority" label="first name > age > last name" click="sortInOrder(4)"/>
			</s:FormItem>
			<s:FormItem label="Employee Table:" toolTip="Click data grid column header to sort single one column">
				<s:DataGrid id="dg" dataProvider="{employeeArrColl}" width="100%">
					<s:columns>
						<s:ArrayList>
							<s:GridColumn dataField="first" headerText="First Name"/>
							<s:GridColumn dataField="last" headerText="Last Name"/>
							<s:GridColumn dataField="age" headerText="Age"/>
						</s:ArrayList>
					</s:columns>
				</s:DataGrid>
			</s:FormItem>
		</s:Form>

	</s:Panel>	
</s:Module>
