<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" 
    xmlns:charts="com.iwobanas.charts.*" viewSourceURL="srcview/index.html">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.charts.chartClasses.IAxis;
            
            /**
            * Axis label function converting item index to category name.
            * If xField of the series is not specified Flex passes item index as labelValue.
            * If labelValue is out of data provider indexes bounds empty string is returned.
            */
            public function categoryLabelFunction(labelValue:Object, previousValue:Object, axis:IAxis):String
            {
                var index:int = int(labelValue);
                
                if (index >= 0 && index < dp.length)
                    return dp[index].Month;
                return "";
            }
            
            [Bindable]
            public var dp:ArrayCollection = new ArrayCollection( [
                { Month: "Jan", Profit: 2000, Expenses: 1500, Amount: 450 },
                { Month: "Feb", Profit: 1000, Expenses: 200, Amount: 600 },
                { Month: "Mar", Profit: 1500, Expenses: 500, Amount: 300 },
                { Month: "Apr", Profit: 1800, Expenses: 1200, Amount: 900 },
                { Month: "May", Profit: 2400, Expenses: 575, Amount: 500 } ]);

        ]]>
    </mx:Script>
    
    <charts:ChartScroller chart="{columnChart}" />
    
    <mx:Panel title="ChartScroller - CategoryAxis simulation" width="100%" height="100%">
        
        <mx:ColumnChart id="columnChart" width="100%" height="100%" 
            gutterLeft="50" gutterRight="40" dataProvider="{dp}">
            <mx:series>
                <!-- Note that xField is not specified -->
                <mx:ColumnSeries yField="Profit" />
                <mx:ColumnSeries yField="Expenses" />
                <mx:ColumnSeries yField="Amount" />
            </mx:series>
            <mx:horizontalAxis>
                <!-- LinearAxis simulating CategoryAxis -->
                <mx:LinearAxis interval="1"
                    labelFunction="categoryLabelFunction" />
            </mx:horizontalAxis>
        </mx:ColumnChart>
        
    </mx:Panel>

</mx:Application>