blob: c0bcde3c3494a39002cacf57e888a7d48091db62 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
//
// 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.
//
////////////////////////////////////////////////////////////////////////////////
package
{
import mx.charts.*;
import mx.charts.series.*;
import mx.charts.series.items.*;
import mx.charts.chartClasses.*;
import mx.charts.renderers.*;
import mx.charts.*;
import mx.core.ClassFactory;
import mx.graphics.*;
public class MultipleAxesUtils
{
public function MultipleAxesUtils()
{
}
public static function myParseFunction(s:String):Date
{
var a:Array = s.split(",");
var newDate:Date = new Date(a[0],a[1]-1,a[2]);
return newDate;
}
private static function myLabelFunction(axis: IAxisRenderer, label: String):String
{
var num:Number;
num = int(label);
num = num*10;
return num.toString();
}
public static function AxisRenderers(testCaseType:String, chart:Object):void
{
var arrHorAxisRenderers:Array = new Array();
var arrVerAxisRenderers:Array = new Array();
var seriesArray:Array = new Array();
var myHorH1:CategoryAxis = new CategoryAxis();
var myHorH2:DateTimeAxis = new DateTimeAxis();
var myVerV1:LinearAxis = new LinearAxis();
var myVerV2:LinearAxis = new LinearAxis();
var myVerV3:LinearAxis = new LinearAxis();
var myVerV4:LinearAxis = new LinearAxis();
var myHorAxisRenderer: AxisRenderer = new AxisRenderer();
var myHorAxisRenderer1: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer1: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer2: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer3: AxisRenderer = new AxisRenderer();
var closeArea1:AreaSeries = new AreaSeries();
var openLine:LineSeries = new LineSeries();
var highLine:LineSeries = new LineSeries();
var lowPlot:PlotSeries = new PlotSeries();
switch(testCaseType)
{
case "noAxisSpecified":
myHorH1.categoryField = "month";
chart.horizontalAxis = myHorH1;
closeArea1.yField = "close";
closeArea1.xField = "month";
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "month";
seriesArray.push(openLine);
highLine.yField = "high";
highLine.xField = "month";
seriesArray.push(highLine);
lowPlot.yField = "low";
lowPlot.xField = "month";
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
case "axisAtSeries":
myHorH1.categoryField = "month";
myHorH2.dataUnits = "days";
myHorH2.labelUnits = "days";
myHorH2.parseFunction = myParseFunction;
myHorH2.displayLocalTime = true;
chart.horizontalAxis = myHorH1;
myVerV2.minimum = 20;
myVerV2.maximum = 170;
myHorAxisRenderer.axis = myHorH2;
myHorAxisRenderer.placement = "top";
arrHorAxisRenderers.push(myHorAxisRenderer);
chart.verticalAxis = myVerV1;
myVerAxisRenderer1.axis = myVerV2;
myVerAxisRenderer1.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer1);
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
openLine.horizontalAxis = myHorH2;
seriesArray.push(openLine);
highLine.yField = "high";
highLine.verticalAxis = myVerV2;
seriesArray.push(highLine);
lowPlot.yField = "low";
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
case "noAxisRenderers":
myHorH1.categoryField = "month";
chart.horizontalAxis = myHorH1;
myVerV2.minimum = 20;
myVerV2.maximum = 170;
chart.verticalAxis = myVerV1;
closeArea1.yField = "close";
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
seriesArray.push(openLine);
highLine.yField = "high";
seriesArray.push(highLine);
lowPlot.yField = "low";
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
case "axisRendererWithPlacement":
myHorH1.categoryField = "month";
myHorH2.dataUnits = "days";
myHorH2.labelUnits = "days";
myHorH2.parseFunction = myParseFunction;
myHorH2.displayLocalTime = true;
chart.horizontalAxis = myHorH1;
myVerV2.minimum = 20;
myVerV2.maximum = 170;
myVerV1.title = "close";
myVerV2.title = "open";
myVerV3.title = "high";
myVerV4.title = "low";
myHorAxisRenderer.axis = myHorH2;
myHorAxisRenderer.placement = "top";
arrHorAxisRenderers.push(myHorAxisRenderer);
myVerAxisRenderer1.axis = myVerV2;
myVerAxisRenderer1.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer1);
myVerAxisRenderer2.axis = myVerV3;
myVerAxisRenderer2.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer2);
myVerAxisRenderer3.axis = myVerV4;
myVerAxisRenderer3.placement = "left";
arrVerAxisRenderers.push(myVerAxisRenderer3);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.horizontalAxis = myHorH1;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
openLine.horizontalAxis = myHorH2;
openLine.verticalAxis = myVerV2;
seriesArray.push(openLine);
highLine.yField = "high";
highLine.horizontalAxis = myHorH1;
highLine.verticalAxis = myVerV3;
seriesArray.push(highLine);
lowPlot.yField = "low";
lowPlot.verticalAxis = myVerV4;
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
}
}
public static function axisTest(testCaseType:String, chart:Object):void
{
var arrHorAxisRenderers:Array = new Array();
var arrVerAxisRenderers:Array = new Array();
var seriesArray:Array = new Array();
var myHorH1:CategoryAxis = new CategoryAxis();
var myHorH2:CategoryAxis = new CategoryAxis();
var myHorH11:DateTimeAxis = new DateTimeAxis();
var myVerV1:LinearAxis = new LinearAxis();
var myVerV2:LinearAxis = new LinearAxis();
var myVerV3:LinearAxis = new LinearAxis();
var myVerV4:LinearAxis = new LinearAxis();
var myVerV21:LogAxis = new LogAxis();
var myHorAxisRenderer: AxisRenderer = new AxisRenderer();
var myHorAxisRenderer1: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer1: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer2: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer3: AxisRenderer = new AxisRenderer();
var closeArea1:AreaSeries = new AreaSeries();
var openLine:LineSeries = new LineSeries();
var highLine:LineSeries = new LineSeries();
var lowPlot:PlotSeries = new PlotSeries();
switch(testCaseType)
{
case "setAxis":
myHorH1.categoryField = "month";
myHorH2.categoryField = "date";
chart.horizontalAxis = myHorH1;
myVerV2.title = "Open";
myVerV2.minimum = 20;
myVerV2.maximum = 170;
chart.verticalAxis = myVerV1;
closeArea1.yField = "close";
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.dataTransform.setAxis(CartesianTransform.VERTICAL_AXIS, myVerV2);
seriesArray.push(openLine);
highLine.yField = "high";
seriesArray.push(highLine);
lowPlot.yField = "low";
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
case "validHorVerAxis":
myHorH1.categoryField = "month";
myHorH2.categoryField = "date";
chart.horizontalAxis = myHorH1;
myVerV2.minimum = 20;
myVerV2.maximum = 170;
myVerV1.title = "close";
myVerV2.title = "open";
myVerV3.title = "high";
myVerV4.title = "low";
myHorAxisRenderer.axis = myHorH2;
myHorAxisRenderer.placement = "top";
arrHorAxisRenderers.push(myHorAxisRenderer);
myHorAxisRenderer1.axis = myHorH1;
myHorAxisRenderer1.placement = "bottom";
arrHorAxisRenderers.push(myHorAxisRenderer1);
myVerAxisRenderer1.axis = myVerV2;
myVerAxisRenderer1.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer1);
myVerAxisRenderer2.axis = myVerV3;
myVerAxisRenderer2.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer2);
myVerAxisRenderer3.axis = myVerV4;
myVerAxisRenderer3.placement = "left";
arrVerAxisRenderers.push(myVerAxisRenderer3);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.horizontalAxis = myHorH1;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
openLine.horizontalAxis = myHorH2;
openLine.verticalAxis = myVerV2;
seriesArray.push(openLine);
highLine.yField = "high";
highLine.horizontalAxis = myHorH1;
highLine.verticalAxis = myVerV3;
seriesArray.push(highLine);
lowPlot.yField = "low";
lowPlot.verticalAxis = myVerV4;
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
case "diffAxisType":
//test with all types of axis(log, dateTime)
myHorH11.dataUnits = "days";
myHorH11.labelUnits = "days";
myHorH11.parseFunction = myParseFunction;
myHorH11.displayLocalTime = true;
chart.horizontalAxis = myHorH11;
myVerV21.minimum = 10;
myVerV21.maximum = 10000;
myVerV21.title = "log axis";
myVerV21.interval = 10;
myVerV1.title = "close";
myVerV3.title = "high";
myVerV4.title = "low";
myVerAxisRenderer1.axis = myVerV21;
myVerAxisRenderer1.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer1);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.xField = "date";
closeArea1.horizontalAxis = myHorH11;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
openLine.verticalAxis = myVerV21;
seriesArray.push(openLine);
chart.series = seriesArray;
break;
case "disabledDays":
//disabled days and ranges
myHorH11.dataUnits = "days";
myHorH11.labelUnits = "days";
myHorH11.parseFunction = myParseFunction;
myHorH11.displayLocalTime = true;
myHorH11.disabledDays = [0];
chart.horizontalAxis = myHorH11;
myVerV21.minimum = 10;
myVerV21.maximum = 10000;
myVerV21.title = "log axis";
myVerV21.interval = 10;
myVerV1.title = "close";
myVerV3.title = "high";
myVerV4.title = "low";
myVerAxisRenderer1.axis = myVerV21;
myVerAxisRenderer1.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer1);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.xField = "date";
closeArea1.horizontalAxis = myHorH11;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
openLine.verticalAxis = myVerV21;
seriesArray.push(openLine);
chart.series = seriesArray;
break;
}
}
public static function placementTest(testCaseType:String, chart:Object):void
{
var arrHorAxisRenderers:Array = new Array();
var arrVerAxisRenderers:Array = new Array();
var seriesArray:Array = new Array();
var myHorH1:CategoryAxis = new CategoryAxis();
var myHorH2:DateTimeAxis = new DateTimeAxis();
var myVerV1:LinearAxis = new LinearAxis();
var myVerV2:LinearAxis = new LinearAxis();
var myVerV3:LinearAxis = new LinearAxis();
var myVerV4:LinearAxis = new LinearAxis();
var myHorAxisRenderer: AxisRenderer = new AxisRenderer();
var myHorAxisRenderer1: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer1: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer2: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer3: AxisRenderer = new AxisRenderer();
var closeArea1:AreaSeries = new AreaSeries();
var openLine:LineSeries = new LineSeries();
var highLine:LineSeries = new LineSeries();
var lowPlot:PlotSeries = new PlotSeries();
switch(testCaseType)
{
case "multipleLeftAndTop":
myHorH1.categoryField = "month";
myHorH2.dataUnits = "days";
myHorH2.labelUnits = "days";
myHorH2.parseFunction = myParseFunction;
myHorH2.displayLocalTime = true;
chart.horizontalAxis = myHorH1;
myVerV2.minimum = 20;
myVerV2.maximum = 170;
myVerV1.title = "close";
myVerV2.title = "open";
myVerV3.title = "high";
myVerV4.title = "low";
myHorAxisRenderer.axis = myHorH2;
myHorAxisRenderer.placement = "top";
arrHorAxisRenderers.push(myHorAxisRenderer);
myVerAxisRenderer1.axis = myVerV2;
myVerAxisRenderer1.placement = "left";
arrVerAxisRenderers.push(myVerAxisRenderer1);
myVerAxisRenderer2.axis = myVerV3;
myVerAxisRenderer2.placement = "left";
arrVerAxisRenderers.push(myVerAxisRenderer2);
myVerAxisRenderer3.axis = myVerV4;
myVerAxisRenderer3.placement = "left";
arrVerAxisRenderers.push(myVerAxisRenderer3);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.horizontalAxis = myHorH1;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
openLine.horizontalAxis = myHorH2;
openLine.verticalAxis = myVerV2;
seriesArray.push(openLine);
highLine.yField = "high";
highLine.horizontalAxis = myHorH1;
highLine.verticalAxis = myVerV3;
seriesArray.push(highLine);
lowPlot.yField = "low";
lowPlot.verticalAxis = myVerV4;
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
case "multipleBottomAndRight":
myHorH1.categoryField = "month";
myHorH2.dataUnits = "days";
myHorH2.labelUnits = "days";
myHorH2.parseFunction = myParseFunction;
myHorH2.displayLocalTime = true;
chart.horizontalAxis = myHorH1;
myVerV2.minimum = 20;
myVerV2.maximum = 170;
myVerV1.title = "close";
myVerV2.title = "open";
myVerV3.title = "high";
myVerV4.title = "low";
myHorAxisRenderer.axis = myHorH2;
myHorAxisRenderer.placement = "bottom";
arrHorAxisRenderers.push(myHorAxisRenderer);
myVerAxisRenderer1.axis = myVerV2;
myVerAxisRenderer1.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer1);
myVerAxisRenderer2.axis = myVerV3;
myVerAxisRenderer2.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer2);
myVerAxisRenderer3.axis = myVerV4;
myVerAxisRenderer3.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer3);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.horizontalAxis = myHorH1;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
openLine.horizontalAxis = myHorH2;
openLine.verticalAxis = myVerV2;
seriesArray.push(openLine);
highLine.yField = "high";
highLine.horizontalAxis = myHorH1;
highLine.verticalAxis = myVerV3;
seriesArray.push(highLine);
lowPlot.yField = "low";
lowPlot.verticalAxis = myVerV4;
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
case "noVerPlacementSpecified":
myHorH1.categoryField = "month";
myHorH2.dataUnits = "days";
myHorH2.labelUnits = "days";
myHorH2.parseFunction = myParseFunction;
myHorH2.displayLocalTime = true;
chart.horizontalAxis = myHorH1;
myVerV2.minimum = 20;
myVerV2.maximum = 170;
myVerV1.title = "close";
myVerV2.title = "open";
myVerV3.title = "high";
myVerV4.title = "low";
myHorAxisRenderer.axis = myHorH2;
myHorAxisRenderer.placement = "bottom";
arrHorAxisRenderers.push(myHorAxisRenderer);
myVerAxisRenderer1.axis = myVerV2;
arrVerAxisRenderers.push(myVerAxisRenderer1);
myVerAxisRenderer2.axis = myVerV3;
arrVerAxisRenderers.push(myVerAxisRenderer2);
myVerAxisRenderer3.axis = myVerV4;
arrVerAxisRenderers.push(myVerAxisRenderer3);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.horizontalAxis = myHorH1;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
openLine.horizontalAxis = myHorH2;
openLine.verticalAxis = myVerV2;
seriesArray.push(openLine);
highLine.yField = "high";
highLine.horizontalAxis = myHorH1;
highLine.verticalAxis = myVerV3;
seriesArray.push(highLine);
lowPlot.yField = "low";
lowPlot.verticalAxis = myVerV4;
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
case "noPlacementSpecified":
myHorH1.categoryField = "month";
myHorH2.dataUnits = "days";
myHorH2.labelUnits = "days";
myHorH2.parseFunction = myParseFunction;
myHorH2.displayLocalTime = true;
chart.horizontalAxis = myHorH1;
myVerV2.minimum = 20;
myVerV2.maximum = 170;
myVerV1.title = "close";
myVerV2.title = "open";
myVerV3.title = "high";
myVerV4.title = "low";
myHorAxisRenderer.axis = myHorH2;
arrHorAxisRenderers.push(myHorAxisRenderer);
myVerAxisRenderer1.axis = myVerV2;
arrVerAxisRenderers.push(myVerAxisRenderer1);
myVerAxisRenderer2.axis = myVerV3;
arrVerAxisRenderers.push(myVerAxisRenderer2);
myVerAxisRenderer3.axis = myVerV4;
arrVerAxisRenderers.push(myVerAxisRenderer3);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.horizontalAxis = myHorH1;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
openLine.horizontalAxis = myHorH2;
openLine.verticalAxis = myVerV2;
seriesArray.push(openLine);
highLine.yField = "high";
highLine.horizontalAxis = myHorH1;
highLine.verticalAxis = myVerV3;
seriesArray.push(highLine);
lowPlot.yField = "low";
lowPlot.verticalAxis = myVerV4;
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
}
}
public static function axisAndRendererTests(testCaseType:String, chart:Object):void
{
var arrHorAxisRenderers:Array = new Array();
var arrVerAxisRenderers:Array = new Array();
var seriesArray:Array = new Array();
var myHorH1:CategoryAxis = new CategoryAxis();
var myHorH2:DateTimeAxis = new DateTimeAxis();
var myVerV1:LinearAxis = new LinearAxis();
var myVerV2:LinearAxis = new LinearAxis();
var myVerV3:LinearAxis = new LinearAxis();
var myVerV4:LinearAxis = new LinearAxis();
var myHorAxisRenderer: AxisRenderer = new AxisRenderer();
var myHorAxisRenderer1: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer1: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer2: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer3: AxisRenderer = new AxisRenderer();
var closeArea1:AreaSeries = new AreaSeries();
var openLine:LineSeries = new LineSeries();
var highLine:LineSeries = new LineSeries();
var lowPlot:PlotSeries = new PlotSeries();
switch(testCaseType)
{
case "sameAxisOnDiffRenderers":
myHorH1.categoryField = "month";
myHorH2.dataUnits = "days";
myHorH2.labelUnits = "days";
myHorH2.minimum = new Date(2007, 6, 20);
myHorH2.maximum = new Date(2007, 6, 20);
myHorH2.parseFunction = myParseFunction;
myHorH2.displayLocalTime = true;
chart.horizontalAxis = myHorH1;
myVerV2.minimum = 20;
myVerV2.maximum = 170;
myVerV1.title = "close";
myVerV2.title = "open";
myVerV3.title = "high";
myHorAxisRenderer.axis = myHorH2;
myHorAxisRenderer.placement = "top";
arrHorAxisRenderers.push(myHorAxisRenderer);
myVerAxisRenderer.axis = myVerV2;
myVerAxisRenderer.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer);
myVerAxisRenderer2.axis = myVerV3;
myVerAxisRenderer2.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer2);
myVerAxisRenderer3.axis = myVerV3;
myVerAxisRenderer3.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer3);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.horizontalAxis = myHorH1;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.verticalAxis = myVerV2;
seriesArray.push(openLine);
highLine.yField = "high";
highLine.verticalAxis = myVerV3;
seriesArray.push(highLine);
lowPlot.yField = "low";
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
case "sameRendererWithDiffAxis":
myHorH1.categoryField = "month";
chart.horizontalAxis = myHorH1;
myVerV2.minimum = 20;
myVerV2.maximum = 170;
myVerV1.title = "close";
myVerV2.title = "open";
myVerV3.title = "high";
myHorAxisRenderer1.axis = myHorH1;
myHorAxisRenderer1.placement = "top";
arrHorAxisRenderers.push(myHorAxisRenderer1);
myVerAxisRenderer1.axis = myVerV2;
myVerAxisRenderer1.placement = "left";
arrVerAxisRenderers.push(myVerAxisRenderer1);
myVerAxisRenderer2.axis = myVerV3;
myVerAxisRenderer2.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer2);
myVerAxisRenderer3.axis = myVerV3;
myVerAxisRenderer3.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer3);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.horizontalAxis = myHorH1;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.verticalAxis = myVerV2;
seriesArray.push(openLine);
highLine.yField = "high";
highLine.verticalAxis = myVerV3;
seriesArray.push(highLine);
lowPlot.yField = "low";
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
}
}
public static function setChartPadding(testCaseType:String, chart:Object):void
{
switch(testCaseType)
{
case "paddingTop1":
setMultipleAxis(chart);
chart.setStyle("paddingTop", 20);
break;
case "paddingTop2":
setMultipleAxis(chart);
chart.setStyle("paddingTop", 50);
break;
case "paddingBottom1":
setMultipleAxis(chart);
chart.setStyle("paddingBottom", 10);
break;
case "paddingBottom2":
setMultipleAxis(chart);
chart.setStyle("paddingBottom", 60);
break;
case "paddingRight1":
setMultipleAxis(chart);
chart.setStyle("paddingRight", 10);
break;
case "paddingRight2":
setMultipleAxis(chart);
chart.setStyle("paddingRight", 50);
break;
case "paddingLeft1":
setMultipleAxis(chart);
chart.setStyle("paddingLeft", 10);
break;
case "paddingLeft2":
setMultipleAxis(chart);
chart.setStyle("paddingLeft", 50);
break;
}
}
public static function setChartGutter(testCaseType:String, chart:Object):void
{
switch(testCaseType)
{
case "gutterTop1":
setMultipleAxis(chart);
chart.setStyle("gutterTop", 20);
break;
case "gutterTop2":
setMultipleAxis(chart);
chart.setStyle("gutterTop", 50);
break;
case "gutterBottom1":
setMultipleAxis(chart);
chart.setStyle("gutterBottom", 10);
break;
case "gutterBottom2":
setMultipleAxis(chart);
chart.setStyle("gutterBottom", 60);
break;
case "gutterRight1":
setMultipleAxis(chart);
chart.setStyle("gutterRight", 10);
break;
case "gutterRight2":
setMultipleAxis(chart);
chart.setStyle("gutterRight", 70);
break;
case "gutterLeft1":
setMultipleAxis(chart);
chart.setStyle("gutterLeft", 10);
break;
case "gutterLeft2":
setMultipleAxis(chart);
chart.setStyle("gutterLeft", 70);
break;
}
}
public static function setLabelFunction(testCaseType:String, chart:Object):void
{
var arrHorAxisRenderers:Array = new Array();
var arrVerAxisRenderers:Array = new Array();
var seriesArray:Array = new Array();
var myHorH1:CategoryAxis = new CategoryAxis();
var myHorH2:DateTimeAxis = new DateTimeAxis();
var myVerV1:LinearAxis = new LinearAxis();
var myVerV2:LinearAxis = new LinearAxis();
var myVerV3:LinearAxis = new LinearAxis();
var myVerV4:LinearAxis = new LinearAxis();
var myHorAxisRenderer: AxisRenderer = new AxisRenderer();
var myHorAxisRenderer1: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer1: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer2: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer3: AxisRenderer = new AxisRenderer();
var closeArea1:AreaSeries = new AreaSeries();
var openLine:LineSeries = new LineSeries();
var highLine:LineSeries = new LineSeries();
var lowPlot:PlotSeries = new PlotSeries();
switch(testCaseType)
{
case "validLabelFunction":
myHorH1.categoryField = "month";
myHorH2.dataUnits = "days";
myHorH2.labelUnits = "days";
myHorH2.parseFunction = myParseFunction;
myHorH2.displayLocalTime = true;
chart.horizontalAxis = myHorH1;
myVerV2.minimum = 20;
myVerV2.maximum = 170;
myVerV1.title = "close";
myVerV2.title = "open";
myVerV3.title = "high";
myVerV4.title = "low";
myHorAxisRenderer.axis = myHorH2;
myHorAxisRenderer.placement = "bottom";
arrHorAxisRenderers.push(myHorAxisRenderer);
myVerAxisRenderer1.axis = myVerV2;
myVerAxisRenderer1.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer1);
myVerAxisRenderer2.axis = myVerV3;
myVerAxisRenderer2.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer2);
myVerAxisRenderer3.axis = myVerV4;
myVerAxisRenderer3.placement = "left";
myVerAxisRenderer3.labelFunction = myLabelFunction;
arrVerAxisRenderers.push(myVerAxisRenderer3);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.horizontalAxis = myHorH1;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
openLine.horizontalAxis = myHorH2;
openLine.verticalAxis = myVerV2;
seriesArray.push(openLine);
highLine.yField = "high";
highLine.horizontalAxis = myHorH1;
highLine.verticalAxis = myVerV3;
seriesArray.push(highLine);
lowPlot.yField = "low";
lowPlot.verticalAxis = myVerV4;
seriesArray.push(lowPlot);
chart.series = seriesArray;
break;
case "labelFnDiffAxisType":
var myHorH11:DateTimeAxis = new DateTimeAxis();
myHorH11.dataUnits = "days";
myHorH11.labelUnits = "days";
myHorH11.parseFunction = myParseFunction;
myHorH11.displayLocalTime = true;
chart.horizontalAxis = myHorH11;
var myVerV21:LogAxis = new LogAxis();
myVerV21.minimum = 10;
myVerV21.maximum = 10000;
myVerV21.title = "log axis";
myVerV21.interval = 10;
myVerV1.title = "close";
myVerV3.title = "high";
myVerV4.title = "low";
myVerAxisRenderer1.axis = myVerV21;
myVerAxisRenderer1.placement = "right";
myVerAxisRenderer1.labelFunction = myLabelFunction;
arrVerAxisRenderers.push(myVerAxisRenderer1);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.xField = "date";
closeArea1.horizontalAxis = myHorH11;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
openLine.verticalAxis = myVerV1;
seriesArray.push(openLine);
chart.series = seriesArray;
break;
case "labelFnOnDeprecatedProperty":
chart.verticalAxisRenderer.labelFunction = myLabelFunction;
closeArea1.yField = "close";
seriesArray.push(closeArea1);
chart.series = seriesArray;
break;
}
}
private static function setMultipleAxis(chart:Object):void
{
var arrHorAxisRenderers:Array = new Array();
var arrVerAxisRenderers:Array = new Array();
var seriesArray:Array = new Array();
var myHorH1:CategoryAxis = new CategoryAxis();
var myHorH2:DateTimeAxis = new DateTimeAxis();
var myVerV1:LinearAxis = new LinearAxis();
var myVerV2:LinearAxis = new LinearAxis();
var myVerV3:LinearAxis = new LinearAxis();
var myVerV4:LinearAxis = new LinearAxis();
var myHorAxisRenderer: AxisRenderer = new AxisRenderer();
var myHorAxisRenderer1: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer1: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer2: AxisRenderer = new AxisRenderer();
var myVerAxisRenderer3: AxisRenderer = new AxisRenderer();
var closeArea1:AreaSeries = new AreaSeries();
var openLine:LineSeries = new LineSeries();
var highLine:LineSeries = new LineSeries();
var lowPlot:PlotSeries = new PlotSeries();
myHorH1.categoryField = "month";
myHorH2.dataUnits = "days";
myHorH2.labelUnits = "days";
myHorH2.parseFunction = myParseFunction;
myHorH2.displayLocalTime = true;
chart.horizontalAxis = myHorH1;
myVerV2.minimum = 20;
myVerV2.maximum = 170;
myVerV1.title = "close";
myVerV2.title = "open";
myVerV3.title = "high";
myVerV4.title = "low";
myHorAxisRenderer.axis = myHorH2;
myHorAxisRenderer.placement = "bottom";
arrHorAxisRenderers.push(myHorAxisRenderer);
myVerAxisRenderer1.axis = myVerV2;
myVerAxisRenderer1.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer1);
myVerAxisRenderer2.axis = myVerV3;
myVerAxisRenderer2.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer2);
myVerAxisRenderer3.axis = myVerV4;
myVerAxisRenderer3.placement = "right";
arrVerAxisRenderers.push(myVerAxisRenderer3);
chart.verticalAxis = myVerV1;
chart.horizontalAxisRenderers = chart.horizontalAxisRenderers.concat(arrHorAxisRenderers);
chart.verticalAxisRenderers = chart.verticalAxisRenderers.concat(arrVerAxisRenderers);
closeArea1.yField = "close";
closeArea1.horizontalAxis = myHorH1;
seriesArray.push(closeArea1);
openLine.yField = "open";
openLine.xField = "date";
openLine.horizontalAxis = myHorH2;
openLine.verticalAxis = myVerV2;
seriesArray.push(openLine);
highLine.yField = "high";
highLine.horizontalAxis = myHorH1;
highLine.verticalAxis = myVerV3;
seriesArray.push(highLine);
lowPlot.yField = "low";
lowPlot.verticalAxis = myVerV4;
seriesArray.push(lowPlot);
chart.series = seriesArray;
}
}
}