<?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">
	
	<fx:Script>
		<![CDATA[
			
			import mx.collections.ArrayCollection;
			
			[Bindable]
			private var medalsAC:ArrayCollection = new ArrayCollection( [
				{ Country: "USA", Gold: 35, Silver:39, Bronze: 29 },
				{ Country: "China", Gold: 32, Silver:17, Bronze: 14 },
				{ Country: "Russia", Gold: 27, Silver:27, Bronze: 38 } ]);
			
			private function displayGold(data:Object, field:String, index:Number, percentValue:Number):String {
				var temp:String= (" " + percentValue).substr(0,6);
				return data.Country + ": " + '\n' + "Total Gold: " + data.Gold + '\n' + temp + "%";
			}
		]]>
	</fx:Script>
	
	<s:Panel title="PieChart Control" width="100%" height="100%">
		
		<s:layout>
			<s:HorizontalLayout paddingLeft="10" paddingRight="10" paddingTop="10" paddingBottom="10"/>
		</s:layout>
		
		<mx:PieChart id="chart" height="100%" width="100%" paddingRight="5" paddingLeft="5" color="0x323232"
					 showDataTips="true" dataProvider="{medalsAC}" >
			
			<mx:series>
				<mx:PieSeries labelPosition="callout" field="Gold" labelFunction="displayGold">
					<mx:calloutStroke>
						<s:SolidColorStroke weight="0" color="0x888888" alpha="1.0"/>
					</mx:calloutStroke>
					<mx:radialStroke>
						<s:SolidColorStroke weight="0" color="#FFFFFF" alpha="0.20"/>
					</mx:radialStroke>
					<mx:stroke>
						<s:SolidColorStroke color="0" alpha="0.20" weight="2"/>
					</mx:stroke>
				</mx:PieSeries>
			</mx:series>
		</mx:PieChart>
		
	</s:Panel>
	
</s:Module>
