<?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.
  -->

<!-- Simple example to demonstrate the CandlestickChart control. -->
<mx:Application 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:Script>
        <![CDATA[
          
        import mx.collections.ArrayCollection;

        [Bindable]
        private var companyAAC:ArrayCollection = new ArrayCollection( [
            { Date: "25-Jul", Open: 40.75,  High: 40.75, Low: 40.24, Close:40.31},
            { Date: "26-Jul", Open: 39.98,  High: 40.78, Low: 39.97, Close:40.34},
            { Date: "27-Jul", Open: 40.38,  High: 40.66, Low: 40, Close:40.63},
            { Date: "28-Jul", Open: 40.49,  High: 40.99, Low: 40.3, Close:40.98},
            { Date: "29-Jul", Open: 40.13,  High: 40.4, Low: 39.65, Close:39.95},
            { Date: "1-Aug", Open: 39.00,  High: 39.50, Low: 38.7, Close:38.6}, 
            { Date: "2-Aug", Open: 38.68,  High: 39.34, Low: 37.75, Close:38.84}, 
            { Date: "3-Aug", Open: 38.76,  High: 38.76, Low: 38.03, Close:38.12}, 
            { Date: "4-Aug", Open: 37.98,  High: 37.98, Low: 36.56, Close:36.69},                       
            { Date: "5-Aug", Open: 36.61,  High: 37, Low: 36.48, Close:36.86} ]);

        [Bindable]
        private var companyBAC:ArrayCollection = new ArrayCollection( [
            { Date: "25-Jul", Open: 18.50,  High: 19, Low: 18.48, Close:18.86},
            { Date: "26-Jul", Open: 19.56,  High: 19.98, Low: 18.6, Close:18.69},                       
            { Date: "27-Jul", Open: 20.81,  High: 20.99, Low: 20.03, Close:20.12}, 
            { Date: "28-Jul", Open: 20.70,  High: 21.00, Low: 19.5, Close:20.84}, 
            { Date: "29-Jul", Open: 21.7,  High: 21.79, Low: 20.45, Close:20.6}, 
            { Date: "1-Aug", Open: 22.45,  High: 22.65, Low: 21.65, Close:21.95},
            { Date: "2-Aug", Open: 22.56,  High: 22.6, Low: 22.05, Close:22.98},
            { Date: "3-Aug", Open: 22.42,  High: 22.70, Low: 22.1, Close:22.63},
            { Date: "4-Aug", Open: 21.67,  High: 22.82, Low: 21.67, Close:22.34},
            { Date: "5-Aug", Open: 22.44,  High: 22.85, Low: 22.12, Close:22.31} ]);
        ]]>
    </fx:Script>
    
	<fx:Declarations>
    	<mx:SeriesSlide id="slideIn" duration="1000" direction="up"/>
    	<mx:SeriesSlide id="slideOut" duration="1000" direction="down"/>
	</fx:Declarations>

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

        <mx:CandlestickChart id="candlestickchart" height="100%" width="100%"
            paddingRight="5" paddingLeft="5" 
            showDataTips="true" dataProvider="{companyAAC}">
            
            <mx:verticalAxis>
                <mx:LinearAxis id="vaxis" baseAtZero="false" title="Price"/>
            </mx:verticalAxis>

            <mx:horizontalAxis>
                <mx:CategoryAxis id="haxis" categoryField="Date" title="Date"/>
            </mx:horizontalAxis>

            <mx:horizontalAxisRenderers>
                <mx:AxisRenderer axis="{haxis}" canDropLabels="true"/>
            </mx:horizontalAxisRenderers>

            <mx:series>
                <mx:CandlestickSeries  
                    openField="Open" highField="High" 
                    lowField="Low" closeField="Close"
                    showDataEffect="{slideIn}" 
                    hideDataEffect="{slideOut}"/>
            </mx:series>
        </mx:CandlestickChart>
        
        <mx:Label width="100%"
            text="Choose a company to view recent stock data."/>

        <mx:HBox>
            <mx:RadioButton groupName="stocks" label="View Company A"
                selected="true" click="candlestickchart.dataProvider=companyAAC"/>
            <mx:RadioButton groupName="stocks" label="View Company B"
                click="candlestickchart.dataProvider=companyBAC"/>
        </mx:HBox>
    </mx:Panel>
</mx:Application>