<?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 BubbleChart control. -->
<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:Script>
        <![CDATA[        
        import mx.collections.ArrayCollection;

        [Bindable]
        private var expensesAC: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 } ]);
        ]]>
    </fx:Script>

	<fx:Declarations>
		<!-- Define custom color and line style for the bubbles. -->
    	<mx:SolidColor id="sc1" alpha=".3"/>
    	<mx:SolidColorStroke id="stroke1" weight="1"/>
	</fx:Declarations>

    <mx:Panel title="BubbleChart Control Example"
			  paddingBottom="10" paddingTop="10" paddingLeft="10" paddingRight="10"
			  height="100%" width="100%">
        <mx:BubbleChart id="bubblechart" 
            height="100%" width="100%"
            paddingRight="5" paddingLeft="5" 
            showDataTips="true" maxRadius="20"
            dataProvider="{expensesAC}">
            <mx:series>
                <mx:BubbleSeries 
                    displayName="Profit/Expenses/Amount" 
                    xField="Profit" 
                    yField="Expenses" 
                    radiusField="Amount"
                    fill="{sc1}"
                    stroke="{stroke1}" />
            </mx:series>            
        </mx:BubbleChart>            
        <mx:Legend dataProvider="{bubblechart}"/>            
    </mx:Panel>
</mx:Module>
