Packageorg.openzet.charts.chartClasses
Classpublic class ChartZoomer
InheritanceChartZoomer Inheritance mx.containers.HDividedBox

ChartZoomer class is used as an annotationElement for data extraction of a chart control.

View the examples.



Public Properties
 PropertyDefined by
  areaPercentHeight : Number
[read-only] Percent height for left, center and right.
ChartZoomer
  areaPercentWidth : Number
[read-only] Percent width for left, center and right.
ChartZoomer
  centerArea : Canvas
[read-only] Center Area of HDividedBox
ChartZoomer
  chartData : ArrayCollection
Data provider bound with target chart control.
ChartZoomer
  isDragEnabled : Boolean
[read-only] Flag that indicates whehter center area is clicked on.
ChartZoomer
  leftArea : Canvas
[read-only] Left Area of HDividedBox
ChartZoomer
  leftValue : int
Data's extraction start index.
ChartZoomer
  navigateChart : CartesianChart
Target chart to extract data from.
ChartZoomer
  rightArea : Canvas
[read-only] Right Area of HDividedBox
ChartZoomer
  rightValue : int
Data's extraction end index.
ChartZoomer
Public Methods
 MethodDefined by
  
Constructor
ChartZoomer
Protected Methods
 MethodDefined by
  
createLayout():void
Creates the layout of this control.
ChartZoomer
  
itemInvalidate():Boolean
필수 요소인 navigateChart와 chartData를 체크하여 화면을 구성하는데 있어 발생할 수 있는 문제를 방지한다.
ChartZoomer
  
updateLayout():void
Updates the layout.
ChartZoomer
Events
 EventSummaryDefined by
   Dispatched when the user drags the Divider.ChartZoomer
Property detail
areaPercentHeightproperty
areaPercentHeight:Number  [read-only]

Percent height for left, center and right.

Implementation
    public function get areaPercentHeight():Number
areaPercentWidthproperty 
areaPercentWidth:Number  [read-only]

Percent width for left, center and right.

Implementation
    public function get areaPercentWidth():Number
centerAreaproperty 
centerArea:Canvas  [read-only]

Center Area of HDividedBox

Implementation
    public function get centerArea():Canvas
chartDataproperty 
chartData:ArrayCollection  [read-write]

Data provider bound with target chart control.

This property can be used as the source for data binding.

Implementation
    public function get chartData():ArrayCollection
    public function set chartData(value:ArrayCollection):void
isDragEnabledproperty 
isDragEnabled:Boolean  [read-only]

Flag that indicates whehter center area is clicked on.

Implementation
    public function get isDragEnabled():Boolean
leftAreaproperty 
leftArea:Canvas  [read-only]

Left Area of HDividedBox

Implementation
    public function get leftArea():Canvas
leftValueproperty 
leftValue:int  [read-write]

Data's extraction start index.

Implementation
    public function get leftValue():int
    public function set leftValue(value:int):void
navigateChartproperty 
navigateChart:CartesianChart  [read-write]

Target chart to extract data from.

Implementation
    public function get navigateChart():CartesianChart
    public function set navigateChart(value:CartesianChart):void
rightAreaproperty 
rightArea:Canvas  [read-only]

Right Area of HDividedBox

Implementation
    public function get rightArea():Canvas
rightValueproperty 
rightValue:int  [read-write]

Data's extraction end index.

Implementation
    public function get rightValue():int
    public function set rightValue(value:int):void
Constructor detail
ChartZoomer()constructor
public function ChartZoomer()

Constructor

Method detail
createLayout()method
protected function createLayout():void

Creates the layout of this control.

itemInvalidate()method 
protected function itemInvalidate():Boolean

필수 요소인 navigateChart와 chartData를 체크하여 화면을 구성하는데 있어 발생할 수 있는 문제를 방지한다.

Returns
Boolean
updateLayout()method 
protected function updateLayout():void

Updates the layout.

Event detail
dividerChangeevent 
Event object type: org.openzet.events.ChartZoomerEvent

Dispatched when the user drags the Divider.

Examples
ChartZoomerExample
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:chart="org.openzet.charts.chartClasses.*"
backgroundColor="0xFFFFFF"
paddingTop="5"
paddingRight="5"
paddingLeft="5"
paddingBottom="5"
creationComplete="creationCompleteHandler();">
<mx:Script>
    <![CDATA[
    import mx.collections.ArrayCollection;
    
    import org.openzet.events.ChartZoomerEvent;

    private function creationCompleteHandler():void
    {
        setRandomData();
    }

    [Bindable]
    private var expenses:ArrayCollection = new ArrayCollection();

    [Bindable]
    private var newData:ArrayCollection = new ArrayCollection();

    private function setRandomData():void
    {
        var tempAC:ArrayCollection = new ArrayCollection();
        
        expenses = new ArrayCollection();

        var i:int;
        var n:int = 500;

        for (i = 0; i < n; i++)
        {
            tempAC.addItem({Month: Math.floor(Math.random() * (12 - 1 + 1)) + 1,
                              Profit: Math.floor(Math.random() * (500 - 300 + 1)) + 300,
                              Expenses: Math.floor(Math.random() * (500 - 300 + 1)) + 300});
                             
        }
        
        expenses = tempAC;
    }
    
    private function dividerChangeHandler(event:ChartZoomerEvent):void
    {
        newData.source = expenses.source.slice(event.leftValue, event.rightValue);
    }

    ]]>
</mx:Script>
<mx:AreaChart id="myChart" 
    dataProvider="{newData}" 
    showDataTips="true"
    width="100%" height="100%">
    <mx:verticalAxis>
        <mx:LinearAxis />
    </mx:verticalAxis>

    <mx:verticalAxisRenderers>
        <mx:AxisRenderer 
            axis="{axis0}" visible="false" />
    </mx:verticalAxisRenderers>
    
    <mx:horizontalAxis>
       <mx:CategoryAxis 
            id="axis0"
            dataProvider="{newData}" 
            categoryField="Month" />
    </mx:horizontalAxis>

    <mx:horizontalAxisRenderers>
        <mx:AxisRenderer 
            axis="{axis0}" showLabels="false" visible="false"
            includeInLayout="false">
        </mx:AxisRenderer>
    </mx:horizontalAxisRenderers>

    <mx:seriesFilters>
       <mx:Array/>
    </mx:seriesFilters>
    
    
    <mx:series>
       <mx:AreaSeries 
            yField="Profit" 
            displayName="Profit"/>
    </mx:series>
 </mx:AreaChart>

<mx:AreaChart id="myChart2" 
    dataProvider="{expenses}" 
    showDataTips="false"
    width="100%" height="20%">
    <mx:verticalAxis>
        <mx:LinearAxis maximum="1000" padding="0"/>
    </mx:verticalAxis>

    <mx:verticalAxisRenderers>
        <mx:AxisRenderer 
            axis="{axis1}" showLine="false"
            visible="false" includeInLayout="false"/>
    </mx:verticalAxisRenderers>
    
    <mx:horizontalAxis>
       <mx:CategoryAxis 
            id="axis1"
            dataProvider="{expenses}" 
            categoryField="Month" />
    </mx:horizontalAxis>

    <mx:horizontalAxisRenderers>
        <mx:AxisRenderer 
            axis="{axis1}" showLabels="false" visible="false"
            includeInLayout="false">
        </mx:AxisRenderer>
    </mx:horizontalAxisRenderers>

    <mx:seriesFilters>
       <mx:Array/>
    </mx:seriesFilters>
        
    <mx:series>
       <mx:AreaSeries 
            yField="Profit" 
            displayName="Profit"/>
    </mx:series>

    <mx:annotationElements>
        <chart:ChartZoomer
            id="zoomInControl"
            navigateChart="{myChart2}"  chartData="{expenses}" dividerChange="dividerChangeHandler(event);" />
    </mx:annotationElements>
 </mx:AreaChart>
 <mx:Button label="set Data" click="setRandomData();" />
</mx:Application>