You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pe...@apache.org on 2014/09/05 16:02:06 UTC
git commit: [flex-asjs] [refs/heads/develop] - Some refactoring:
created a base class for chart layouts (ChartBaseLayout) to make drawing
graphics a little easier and more consistent.
Repository: flex-asjs
Updated Branches:
refs/heads/develop 61a9eeab1 -> 60f17d1bc
Some refactoring: created a base class for chart layouts (ChartBaseLayout) to make drawing graphics a little easier and more consistent.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/60f17d1b
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/60f17d1b
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/60f17d1b
Branch: refs/heads/develop
Commit: 60f17d1bc7bf5dac05d0c70c116176fde7276cdb
Parents: 61a9eea
Author: Peter Ent <pe...@apache.org>
Authored: Fri Sep 5 10:02:01 2014 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Fri Sep 5 10:02:01 2014 -0400
----------------------------------------------------------------------
.../src/org/apache/flex/charts/BarChart.as | 1 -
.../src/org/apache/flex/charts/ColumnChart.as | 17 +++
.../src/org/apache/flex/charts/LineChart.as | 17 +++
.../src/org/apache/flex/charts/PieChart.as | 34 ++---
.../flex/charts/beads/layouts/BarChartLayout.as | 71 +++------
.../charts/beads/layouts/ChartBaseLayout.as | 146 +++++++++++++++++++
.../charts/beads/layouts/ColumnChartLayout.as | 69 ++-------
.../layouts/LineChartCategoryVsLinearLayout.as | 78 +++-------
.../layouts/LineChartLinearVsLinearLayout.as | 73 +++-------
.../flex/charts/beads/layouts/PieChartLayout.as | 58 ++------
.../beads/layouts/StackedBarChartLayout.as | 70 +++------
.../beads/layouts/StackedColumnChartLayout.as | 65 ++-------
12 files changed, 310 insertions(+), 389 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60f17d1b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/BarChart.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/BarChart.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/BarChart.as
index dd705fc..4065dd3 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/BarChart.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/BarChart.as
@@ -20,7 +20,6 @@ package org.apache.flex.charts
{
import org.apache.flex.charts.core.ChartBase;
import org.apache.flex.charts.core.IChart;
- import org.apache.flex.events.Event;
/**
* The BarChart class draws a multi-series graph of data using vertical
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60f17d1b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/ColumnChart.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/ColumnChart.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/ColumnChart.as
index 8c266ee..c9010b8 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/ColumnChart.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/ColumnChart.as
@@ -21,8 +21,25 @@ package org.apache.flex.charts
import org.apache.flex.charts.core.ChartBase;
import org.apache.flex.charts.core.IChart;
+ /**
+ * The ColumnChart displays a histogram chart where each series in
+ * in the chart is a vertical column placed side by side.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
public class ColumnChart extends ChartBase implements IChart
{
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
public function ColumnChart()
{
super();
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60f17d1b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/LineChart.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/LineChart.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/LineChart.as
index c30034d..27ba0a5 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/LineChart.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/LineChart.as
@@ -21,8 +21,25 @@ package org.apache.flex.charts
import org.apache.flex.charts.core.ChartBase;
import org.apache.flex.charts.core.IChart;
+ /**
+ * The LineChart displays a series of line graphs with optional
+ * graphics at each vertex.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
public class LineChart extends ChartBase implements IChart
{
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
public function LineChart()
{
super();
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60f17d1b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/PieChart.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/PieChart.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/PieChart.as
index ad23fd0..591e2d7 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/PieChart.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/PieChart.as
@@ -18,36 +18,30 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.charts
{
+ import org.apache.flex.charts.core.ChartBase;
import org.apache.flex.charts.core.IChart;
- import org.apache.flex.events.Event;
- import org.apache.flex.html.List;
- public class PieChart extends List implements IChart
+ /**
+ * The PieChart displays data as a percentage of pie.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class PieChart extends ChartBase implements IChart
{
- public function PieChart()
- {
- super();
- }
-
- private var _series:Array;
-
/**
- * The collection of series for the chart. Each element of the
- * series array should be of type BarChartSeries.
- *
+ * constructor.
+ *
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public function get series():Array
- {
- return _series;
- }
- public function set series(value:Array):void
+ public function PieChart()
{
- _series = value;
- dispatchEvent(new Event("seriesChanged"));
+ super();
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60f17d1b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as
index e6e5092..71bc274 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as
@@ -19,18 +19,11 @@
package org.apache.flex.charts.beads.layouts
{
import org.apache.flex.charts.core.ICartesianChartLayout;
- import org.apache.flex.charts.core.IChart;
import org.apache.flex.charts.core.IChartItemRenderer;
import org.apache.flex.charts.core.IChartSeries;
- import org.apache.flex.charts.core.IHorizontalAxisBead;
- import org.apache.flex.charts.core.IVerticalAxisBead;
import org.apache.flex.charts.supportClasses.BarSeries;
import org.apache.flex.core.IBeadLayout;
- import org.apache.flex.core.IContentView;
- import org.apache.flex.core.ILayoutParent;
import org.apache.flex.core.ISelectionModel;
- import org.apache.flex.core.IStrand;
- import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -43,26 +36,8 @@ package org.apache.flex.charts.beads.layouts
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class BarChartLayout implements IBeadLayout, ICartesianChartLayout
+ public class BarChartLayout extends ChartBaseLayout implements IBeadLayout, ICartesianChartLayout
{
- private var _strand:IStrand;
-
- /**
- * @copy org.apache.flex.core.IBead#strand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function set strand(value:IStrand):void
- {
- _strand = value;
- IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
- IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
- IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
- IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
- }
private var _gap:Number = 20;
@@ -88,39 +63,29 @@ package org.apache.flex.charts.beads.layouts
/**
* @private
*/
- private function changeHandler(event:Event):void
- {
- var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
- var contentView:IContentView = layoutParent.contentView as IContentView;
-
- var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ override protected function performLayout():void
+ {
+ var selectionModel:ISelectionModel = chart.getBeadByType(ISelectionModel) as ISelectionModel;
var dp:Array = selectionModel.dataProvider as Array;
if (!dp)
return;
- var series:Array = IChart(_strand).series;
var n:int = dp.length;
- trace("There are "+series.length+" series in this chart");
-
var maxXValue:Number = 0;
var seriesMaxes:Array = [];
- var xAxis:IHorizontalAxisBead;
- if (_strand.getBeadByType(IHorizontalAxisBead)) xAxis = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
- var xAxisOffset:Number = xAxis == null ? 0 : xAxis.axisHeight;
- var yAxis:IVerticalAxisBead;
- if (_strand.getBeadByType(IVerticalAxisBead)) yAxis = _strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
- var yAxisOffset:Number = yAxis == null ? 0 : yAxis.axisWidth;
+ var xAxisOffset:Number = horizontalAxisBead == null ? 0 : horizontalAxisBead.axisHeight;
+ var yAxisOffset:Number = verticalAxisBead == null ? 0 : verticalAxisBead.axisWidth;
- var useWidth:Number = UIBase(_strand).width - yAxisOffset;
- var useHeight:Number = ((UIBase(_strand).height-xAxisOffset) / n) - gap;
- var seriesHeight:Number = useHeight/series.length;
+ var useWidth:Number = chart.width - yAxisOffset;
+ var useHeight:Number = ((chart.height-xAxisOffset) / n) - gap;
+ var seriesHeight:Number = useHeight/chart.series.length;
var xpos:Number = 0;
- var ypos:Number = UIBase(_strand).height - xAxisOffset - seriesHeight;
+ var ypos:Number = chart.height - xAxisOffset - seriesHeight;
- for (var s:int = 0; s < series.length; s++)
+ for (var s:int = 0; s < chart.series.length; s++)
{
- var bcs:BarSeries = series[s] as BarSeries;
+ var bcs:BarSeries = chart.series[s] as BarSeries;
seriesMaxes.push({maxValue:0,scaleFactor:0});
for (var i:int = 0; i < n; i++)
@@ -139,12 +104,12 @@ package org.apache.flex.charts.beads.layouts
{
data = dp[i];
- for (s=0; s < series.length; s++)
+ for (s=0; s < chart.series.length; s++)
{
- bcs = series[s] as BarSeries;
+ bcs = chart.series[s] as BarSeries;
- var child:IChartItemRenderer = (series[s] as IChartSeries).itemRenderer.newInstance() as IChartItemRenderer;
- child.itemRendererParent = contentView;
+ var child:IChartItemRenderer = (chart.series[s] as IChartSeries).itemRenderer.newInstance() as IChartItemRenderer;
+ child.itemRendererParent = chartDataGroup;
child.data = data;
child.fillColor = bcs.fillColor;
xValue = Number(data[bcs.xField]);
@@ -155,13 +120,13 @@ package org.apache.flex.charts.beads.layouts
child.height = seriesHeight;
ypos -= seriesHeight;
- contentView.addElement(child);
+ chartDataGroup.addElement(child);
}
ypos -= gap;
}
- IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
+ IEventDispatcher(chart).dispatchEvent(new Event("layoutComplete"));
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60f17d1b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as
new file mode 100644
index 0000000..8c5db61
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as
@@ -0,0 +1,146 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 org.apache.flex.charts.beads.layouts
+{
+ import org.apache.flex.charts.ChartDataGroup;
+ import org.apache.flex.charts.core.ChartBase;
+ import org.apache.flex.charts.core.IHorizontalAxisBead;
+ import org.apache.flex.charts.core.IVerticalAxisBead;
+ import org.apache.flex.core.IBeadLayout;
+ import org.apache.flex.core.ILayoutParent;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.IEventDispatcher;
+
+ public class ChartBaseLayout implements IBeadLayout
+ {
+ public function ChartBaseLayout()
+ {
+ }
+
+ private var _strand:IStrand;
+
+ /**
+ * @copy org.apache.flex.core.IBead#strand
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function set strand(value:IStrand):void
+ {
+ _strand = value;
+ IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
+ IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
+ IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
+ IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
+ }
+
+ /**
+ * Returns the strand, cast as an instance of ChartBase.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get chart():ChartBase
+ {
+ return _strand as ChartBase;
+ }
+
+ private var _xAxis:IHorizontalAxisBead = null;
+
+ /**
+ * The horizontal axis bead or null if one is not present.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get horizontalAxisBead():IHorizontalAxisBead
+ {
+ if (_xAxis == null) {
+ if (chart.getBeadByType(IHorizontalAxisBead)) _xAxis = chart.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
+ }
+ return _xAxis;
+ }
+
+ private var _yAxis:IVerticalAxisBead = null;
+
+ /**
+ * The vertical axis bead or null if one is not present.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get verticalAxisBead():IVerticalAxisBead
+ {
+ if (_yAxis == null) {
+ if (chart.getBeadByType(IVerticalAxisBead)) _yAxis = chart.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
+ }
+ return _yAxis;
+ }
+
+ private var _chartDataGroup:ChartDataGroup;
+
+ /**
+ * Returns the object into which the chart elements are drawn or added. The ChartDataGroup implements
+ * IContentView.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get chartDataGroup():ChartDataGroup
+ {
+ if (_chartDataGroup == null) {
+ var layoutParent:ILayoutParent = chart.getBeadByType(ILayoutParent) as ILayoutParent;
+ _chartDataGroup = layoutParent.contentView as ChartDataGroup;
+ }
+ return _chartDataGroup;
+ }
+
+ /**
+ * @private
+ */
+ private function changeHandler(event:Event):void
+ {
+ performLayout();
+ }
+
+ /**
+ * Subclasses should implement this to draw the chart, adding elements to the chartDataGroup.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ protected function performLayout():void
+ {
+ // implement in subclass
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60f17d1b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
index 98ef16b..9c78f0c 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
@@ -19,18 +19,10 @@
package org.apache.flex.charts.beads.layouts
{
import org.apache.flex.charts.core.ICartesianChartLayout;
- import org.apache.flex.charts.core.IChart;
import org.apache.flex.charts.core.IChartItemRenderer;
- import org.apache.flex.charts.core.IChartSeries;
- import org.apache.flex.charts.core.IHorizontalAxisBead;
- import org.apache.flex.charts.core.IVerticalAxisBead;
import org.apache.flex.charts.supportClasses.ColumnSeries;
import org.apache.flex.core.IBeadLayout;
- import org.apache.flex.core.IContentView;
- import org.apache.flex.core.ILayoutParent;
import org.apache.flex.core.ISelectionModel;
- import org.apache.flex.core.IStrand;
- import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -43,31 +35,12 @@ package org.apache.flex.charts.beads.layouts
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class ColumnChartLayout implements IBeadLayout, ICartesianChartLayout
+ public class ColumnChartLayout extends ChartBaseLayout implements IBeadLayout, ICartesianChartLayout
{
public function ColumnChartLayout()
{
}
- private var _strand:IStrand;
-
- /**
- * @copy org.apache.flex.core.IBead#strand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function set strand(value:IStrand):void
- {
- _strand = value;
- IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
- IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
- IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
- IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
- }
-
private var _gap:Number = 20;
/**
@@ -92,39 +65,29 @@ package org.apache.flex.charts.beads.layouts
/**
* @private
*/
- private function changeHandler(event:Event):void
+ override protected function performLayout():void
{
- var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
- var contentView:IContentView = layoutParent.contentView as IContentView;
-
- var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var selectionModel:ISelectionModel = chart.getBeadByType(ISelectionModel) as ISelectionModel;
var dp:Array = selectionModel.dataProvider as Array;
if (!dp)
return;
- var series:Array = IChart(_strand).series;
- var n:int = dp.length;
- trace("There are "+series.length+" series in this chart");
-
- var xAxis:IHorizontalAxisBead;
- if (_strand.getBeadByType(IHorizontalAxisBead)) xAxis = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
- var xAxisOffset:Number = xAxis == null ? 0 : xAxis.axisHeight;
- var yAxis:IVerticalAxisBead;
- if (_strand.getBeadByType(IVerticalAxisBead)) yAxis = _strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
- var yAxisOffset:Number = yAxis == null ? 0 : yAxis.axisWidth;
+ var n:int = dp.length;
+ var xAxisOffset:Number = horizontalAxisBead == null ? 0 : horizontalAxisBead.axisHeight;
+ var yAxisOffset:Number = verticalAxisBead == null ? 0 : verticalAxisBead.axisWidth;
var xpos:Number = yAxisOffset;
- var useWidth:Number = UIBase(_strand).width-yAxisOffset;;
- var useHeight:Number = UIBase(_strand).height - xAxisOffset;
+ var useWidth:Number = chart.width-yAxisOffset;;
+ var useHeight:Number = chart.height - xAxisOffset;
var itemWidth:Number = (useWidth - gap*(dp.length-1))/dp.length;
- var seriesWidth:Number = itemWidth/series.length;
+ var seriesWidth:Number = itemWidth/chart.series.length;
var maxYValue:Number = 0;
var seriesMaxes:Array = [];
- for (var s:int = 0; s < series.length; s++)
+ for (var s:int = 0; s < chart.series.length; s++)
{
- var bcs:ColumnSeries = series[s] as ColumnSeries;
+ var bcs:ColumnSeries = chart.series[s] as ColumnSeries;
seriesMaxes.push({maxValue:0,scaleFactor:0});
for (var i:int = 0; i < n; i++)
@@ -143,12 +106,12 @@ package org.apache.flex.charts.beads.layouts
{
data = dp[i];
- for (s=0; s < series.length; s++)
+ for (s=0; s < chart.series.length; s++)
{
- bcs = series[s] as ColumnSeries;
+ bcs = chart.series[s] as ColumnSeries;
var child:IChartItemRenderer = bcs.itemRenderer.newInstance() as IChartItemRenderer;
- child.itemRendererParent = contentView;
+ child.itemRendererParent = chartDataGroup;
child.data = data;
child.fillColor = bcs.fillColor;
yValue = Number(data[bcs.yField]);
@@ -159,13 +122,13 @@ package org.apache.flex.charts.beads.layouts
child.height = yValue*seriesMaxes[s].scaleFactor;
xpos += seriesWidth;
- contentView.addElement(child);
+ chartDataGroup.addElement(child);
}
xpos += gap;
}
- IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
+ IEventDispatcher(chart).dispatchEvent(new Event("layoutComplete"));
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60f17d1b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
index 941e31d..07d4d8e 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
@@ -18,23 +18,13 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.charts.beads.layouts
{
- import org.apache.flex.charts.beads.ChartItemRendererFactory;
import org.apache.flex.charts.core.ICartesianChartLayout;
- import org.apache.flex.charts.core.IChart;
import org.apache.flex.charts.core.IChartItemRenderer;
import org.apache.flex.charts.core.IChartSeries;
- import org.apache.flex.charts.core.IConnectedItemRenderer;
- import org.apache.flex.charts.core.IHorizontalAxisBead;
- import org.apache.flex.charts.core.IVerticalAxisBead;
import org.apache.flex.charts.supportClasses.LineSegmentItemRenderer;
import org.apache.flex.charts.supportClasses.LineSeries;
import org.apache.flex.core.IBeadLayout;
- import org.apache.flex.core.IContentView;
- import org.apache.flex.core.IDataProviderItemRendererMapper;
- import org.apache.flex.core.ILayoutParent;
import org.apache.flex.core.ISelectionModel;
- import org.apache.flex.core.IStrand;
- import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -47,67 +37,37 @@ package org.apache.flex.charts.beads.layouts
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class LineChartCategoryVsLinearLayout implements IBeadLayout, ICartesianChartLayout
+ public class LineChartCategoryVsLinearLayout extends ChartBaseLayout implements IBeadLayout, ICartesianChartLayout
{
public function LineChartCategoryVsLinearLayout()
{
}
- private var _strand:IStrand;
-
- /**
- * @copy org.apache.flex.core.IBead#strand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function set strand(value:IStrand):void
- {
- _strand = value;
- IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
- IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
- IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
- IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
- }
-
/**
* @private
*/
- private function changeHandler(event:Event):void
- {
- var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
- var contentView:IContentView = layoutParent.contentView as IContentView;
- contentView.removeAllElements();
-
- var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ override protected function performLayout():void
+ {
+ var selectionModel:ISelectionModel = chart.getBeadByType(ISelectionModel) as ISelectionModel;
var dp:Array = selectionModel.dataProvider as Array;
if (!dp)
return;
- var series:Array = IChart(_strand).series;
var n:int = dp.length;
- trace("There are "+series.length+" series in this chart");
-
- var xAxis:IHorizontalAxisBead;
- if (_strand.getBeadByType(IHorizontalAxisBead)) xAxis = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
- var xAxisOffset:Number = xAxis == null ? 0 : xAxis.axisHeight;
- var yAxis:IVerticalAxisBead;
- if (_strand.getBeadByType(IVerticalAxisBead)) yAxis = _strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
- var yAxisOffset:Number = yAxis == null ? 0 : yAxis.axisWidth;
+ var xAxisOffset:Number = horizontalAxisBead == null ? 0 : horizontalAxisBead.axisHeight;
+ var yAxisOffset:Number = verticalAxisBead == null ? 0 : verticalAxisBead.axisWidth;
var xpos:Number = yAxisOffset;
- var useWidth:Number = UIBase(_strand).width-yAxisOffset;;
- var useHeight:Number = UIBase(_strand).height - xAxisOffset;
+ var useWidth:Number = chart.width-yAxisOffset;;
+ var useHeight:Number = chart.height - xAxisOffset;
var itemWidth:Number = useWidth/dp.length;
var maxYValue:Number = 0;
var seriesMaxes:Array = [];
- for (var s:int = 0; s < series.length; s++)
+ for (var s:int = 0; s < chart.series.length; s++)
{
- var aseries:IChartSeries = series[s] as IChartSeries;
+ var aseries:IChartSeries = chart.series[s] as IChartSeries;
seriesMaxes.push({maxValue:0,scaleFactor:0,points:[]});
for (var i:int = 0; i < n; i++)
@@ -125,9 +85,9 @@ package org.apache.flex.charts.beads.layouts
// draw the itemRenderers at each vertex and build the points array for the
// line segment.
- for (s=0; s < series.length; s++)
+ for (s=0; s < chart.series.length; s++)
{
- aseries = series[s] as IChartSeries;
+ aseries = chart.series[s] as IChartSeries;
xpos = yAxisOffset + itemWidth/2;
@@ -143,14 +103,14 @@ package org.apache.flex.charts.beads.layouts
if (aseries.itemRenderer) {
var child:IChartItemRenderer = aseries.itemRenderer.newInstance() as IChartItemRenderer;
- child.itemRendererParent = contentView;
+ child.itemRendererParent = chartDataGroup;
child.data = data;
child.fillColor = aseries.fillColor;
child.x = childX - 5;
child.y = childY - 5;
child.width = 10;
child.height = 10;
- contentView.addElement(child);
+ chartDataGroup.addElement(child);
}
xpos += itemWidth;
@@ -159,9 +119,9 @@ package org.apache.flex.charts.beads.layouts
// draw the line segment
- for (s=0; s < series.length; s++)
+ for (s=0; s < chart.series.length; s++)
{
- var lcs:LineSeries = series[s] as LineSeries;
+ var lcs:LineSeries = chart.series[s] as LineSeries;
if (lcs.lineSegmentRenderer)
{
@@ -170,12 +130,12 @@ package org.apache.flex.charts.beads.layouts
renderer.lineThickness = lcs.lineThickness;
renderer.data = lcs;
renderer.points = seriesMaxes[s].points;
- renderer.itemRendererParent = contentView;
- contentView.addElement(renderer);
+ renderer.itemRendererParent = chartDataGroup;
+ chartDataGroup.addElement(renderer);
}
}
- IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
+ IEventDispatcher(chart).dispatchEvent(new Event("layoutComplete"));
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60f17d1b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
index 44bf7a0..73226d6 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
@@ -19,19 +19,12 @@
package org.apache.flex.charts.beads.layouts
{
import org.apache.flex.charts.core.ICartesianChartLayout;
- import org.apache.flex.charts.core.IChart;
import org.apache.flex.charts.core.IChartItemRenderer;
import org.apache.flex.charts.core.IChartSeries;
- import org.apache.flex.charts.core.IHorizontalAxisBead;
- import org.apache.flex.charts.core.IVerticalAxisBead;
import org.apache.flex.charts.supportClasses.LineSegmentItemRenderer;
import org.apache.flex.charts.supportClasses.LineSeries;
import org.apache.flex.core.IBeadLayout;
- import org.apache.flex.core.IContentView;
- import org.apache.flex.core.ILayoutParent;
import org.apache.flex.core.ISelectionModel;
- import org.apache.flex.core.IStrand;
- import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -44,67 +37,37 @@ package org.apache.flex.charts.beads.layouts
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class LineChartLinearVsLinearLayout implements IBeadLayout, ICartesianChartLayout
+ public class LineChartLinearVsLinearLayout extends ChartBaseLayout implements IBeadLayout, ICartesianChartLayout
{
public function LineChartLinearVsLinearLayout()
{
}
- private var _strand:IStrand;
-
- /**
- * @copy org.apache.flex.core.IBead#strand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function set strand(value:IStrand):void
- {
- _strand = value;
- IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
- IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
- IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
- IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
- }
-
/**
* @private
*/
- private function changeHandler(event:Event):void
+ override protected function performLayout():void
{
- var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
- var contentView:IContentView = layoutParent.contentView as IContentView;
- contentView.removeAllElements();
-
- var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var selectionModel:ISelectionModel = chart.getBeadByType(ISelectionModel) as ISelectionModel;
var dp:Array = selectionModel.dataProvider as Array;
if (!dp)
return;
- var series:Array = IChart(_strand).series;
var n:int = dp.length;
- trace("There are "+series.length+" series in this chart");
-
- var xAxis:IHorizontalAxisBead;
- if (_strand.getBeadByType(IHorizontalAxisBead)) xAxis = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
- var xAxisOffset:Number = xAxis == null ? 0 : xAxis.axisHeight;
- var yAxis:IVerticalAxisBead;
- if (_strand.getBeadByType(IVerticalAxisBead)) yAxis = _strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
- var yAxisOffset:Number = yAxis == null ? 0 : yAxis.axisWidth;
+ var xAxisOffset:Number = horizontalAxisBead == null ? 0 : horizontalAxisBead.axisHeight;
+ var yAxisOffset:Number = verticalAxisBead == null ? 0 : verticalAxisBead.axisWidth;
var xpos:Number = yAxisOffset;
var ypos:Number = xAxisOffset;
- var useWidth:Number = UIBase(_strand).width - yAxisOffset;;
- var useHeight:Number = UIBase(_strand).height - xAxisOffset;
+ var useWidth:Number = chart.width - yAxisOffset;;
+ var useHeight:Number = chart.height - xAxisOffset;
var itemWidth:Number = useWidth/dp.length;
var seriesMaxes:Array = [];
- for (var s:int = 0; s < series.length; s++)
+ for (var s:int = 0; s < chart.series.length; s++)
{
- var aseries:IChartSeries = series[s] as IChartSeries;
+ var aseries:IChartSeries = chart.series[s] as IChartSeries;
seriesMaxes.push({minX:Number.MAX_VALUE,maxX:Number.MIN_VALUE,
minY:Number.MAX_VALUE,maxY:Number.MIN_VALUE,
scaleX:0,scaleY:0,points:[]});
@@ -130,9 +93,9 @@ package org.apache.flex.charts.beads.layouts
// draw the itemRenderers at each vertex and build the points array for the
// line segment.
- for (s=0; s < series.length; s++)
+ for (s=0; s < chart.series.length; s++)
{
- aseries = series[s] as IChartSeries;
+ aseries = chart.series[s] as IChartSeries;
for (i=0; i < n; i++)
{
@@ -147,23 +110,23 @@ package org.apache.flex.charts.beads.layouts
if (aseries.itemRenderer) {
var child:IChartItemRenderer = aseries.itemRenderer.newInstance() as IChartItemRenderer;
- child.itemRendererParent = contentView;
+ child.itemRendererParent = chartDataGroup;
child.data = data;
child.fillColor = aseries.fillColor;
child.x = childX - 5;
child.y = childY - 5;
child.width = 10;
child.height = 10;
- contentView.addElement(child);
+ chartDataGroup.addElement(child);
}
}
}
// draw the line segment
- for (s=0; s < series.length; s++)
+ for (s=0; s < chart.series.length; s++)
{
- var lcs:LineSeries = series[s] as LineSeries;
+ var lcs:LineSeries = chart.series[s] as LineSeries;
if (lcs.lineSegmentRenderer)
{
@@ -172,12 +135,12 @@ package org.apache.flex.charts.beads.layouts
renderer.lineThickness = lcs.lineThickness;
renderer.data = lcs;
renderer.points = seriesMaxes[s].points;
- renderer.itemRendererParent = contentView;
- contentView.addElement(renderer);
+ renderer.itemRendererParent = chartDataGroup;
+ chartDataGroup.addElement(renderer);
}
}
- IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
+ IEventDispatcher(chart).dispatchEvent(new Event("layoutComplete"));
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60f17d1b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as
index 2f0e959..60b0141 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as
@@ -18,16 +18,11 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.charts.beads.layouts
{
- import org.apache.flex.charts.core.IChart;
import org.apache.flex.charts.core.IChartSeries;
import org.apache.flex.charts.supportClasses.PieSeries;
import org.apache.flex.charts.supportClasses.WedgeItemRenderer;
import org.apache.flex.core.IBeadLayout;
- import org.apache.flex.core.IContentView;
- import org.apache.flex.core.ILayoutParent;
import org.apache.flex.core.ISelectionModel;
- import org.apache.flex.core.IStrand;
- import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -40,7 +35,7 @@ package org.apache.flex.charts.beads.layouts
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class PieChartLayout implements IBeadLayout
+ public class PieChartLayout extends ChartBaseLayout implements IBeadLayout
{
/**
* constructor.
@@ -54,54 +49,29 @@ package org.apache.flex.charts.beads.layouts
{
}
- private var _strand:IStrand;
-
- /**
- * @copy org.apache.flex.core.IBead#strand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function set strand(value:IStrand):void
- {
- _strand = value;
- IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
- IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
- IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
- IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
- }
-
/**
* @private
*/
- private function changeHandler(event:Event):void
+ override protected function performLayout():void
{
- var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
- var contentView:IContentView = layoutParent.contentView as IContentView;
- contentView.removeAllElements();
-
- var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var selectionModel:ISelectionModel = chart.getBeadByType(ISelectionModel) as ISelectionModel;
var dp:Array = selectionModel.dataProvider as Array;
if (!dp)
return;
- var series:Array = IChart(_strand).series;
var n:int = dp.length;
- trace("There are "+series.length+" series in this chart");
var xpos:Number = 0;
- var useWidth:Number = UIBase(_strand).width;
- var useHeight:Number = UIBase(_strand).height;
+ var useWidth:Number = chart.width;
+ var useHeight:Number = chart.height;
var maxYValue:Number = 0;
var seriesMaxes:Array = [];
- var colors:Array = [0xFF0000, 0xFF9900, 0xFFFF00, 0x00FF00, 0x00FFcc, 0x0000FF, 0xcc00FF, 0xFF00cc, 0x888888, 0x333333, 0xFFcc99];
+ var colors:Array = [0xFF964D, 0x964DFF, 0xF80012, 0x96FF4D, 0x4D96FF, 0x8A8A01, 0x23009C, 0x4A4A4A, 0x23579D];
- for (var s:int = 0; s < series.length; s++)
+ for (var s:int = 0; s < chart.series.length; s++)
{
- var pcs:PieSeries = series[s] as PieSeries;
+ var pcs:PieSeries = chart.series[s] as PieSeries;
for (var i:int = 0; i < n; i++)
{
@@ -132,22 +102,22 @@ package org.apache.flex.charts.beads.layouts
obj = seriesMaxes[i];
data = dp[i];
- var child:WedgeItemRenderer = (series[s] as IChartSeries).itemRenderer.newInstance() as WedgeItemRenderer;
- child.itemRendererParent = contentView;
+ var child:WedgeItemRenderer = (chart.series[s] as IChartSeries).itemRenderer.newInstance() as WedgeItemRenderer;
+ child.itemRendererParent = chartDataGroup;
child.data = data;
- child.fillColor = colors[i];
- contentView.addElement(child);
+ child.fillColor = colors[i%colors.length];
+ chartDataGroup.addElement(child);
end = start + (360.0 * obj.percent);
var arc:Number = 360.0 * obj.percent;
- trace("Draw arc from "+start+" to "+(start+arc));
+// trace("Draw arc from "+start+" to "+(start+arc));
child.drawWedge(centerX, centerY, start*Math.PI/180, arc*Math.PI/180, radius);
start += arc;
}
}
- IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
+ IEventDispatcher(chart).dispatchEvent(new Event("layoutComplete"));
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60f17d1b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
index fed26b0..a6a61a6 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
@@ -19,18 +19,11 @@
package org.apache.flex.charts.beads.layouts
{
import org.apache.flex.charts.core.ICartesianChartLayout;
- import org.apache.flex.charts.core.IChart;
import org.apache.flex.charts.core.IChartItemRenderer;
import org.apache.flex.charts.core.IChartSeries;
- import org.apache.flex.charts.core.IHorizontalAxisBead;
- import org.apache.flex.charts.core.IVerticalAxisBead;
import org.apache.flex.charts.supportClasses.BarSeries;
import org.apache.flex.core.IBeadLayout;
- import org.apache.flex.core.IContentView;
- import org.apache.flex.core.ILayoutParent;
import org.apache.flex.core.ISelectionModel;
- import org.apache.flex.core.IStrand;
- import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -43,7 +36,7 @@ package org.apache.flex.charts.beads.layouts
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class StackedBarChartLayout implements IBeadLayout, ICartesianChartLayout
+ public class StackedBarChartLayout extends ChartBaseLayout implements IBeadLayout, ICartesianChartLayout
{
/**
* constructor
@@ -57,25 +50,6 @@ package org.apache.flex.charts.beads.layouts
{
}
- private var _strand:IStrand;
-
- /**
- * @copy org.apache.flex.core.IBead#strand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function set strand(value:IStrand):void
- {
- _strand = value;
- IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
- IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
- IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
- IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
- }
-
private var _gap:Number = 20;
/**
@@ -100,35 +74,25 @@ package org.apache.flex.charts.beads.layouts
/**
* @private
*/
- private function changeHandler(event:Event):void
+ override protected function performLayout():void
{
- var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
- var contentView:IContentView = layoutParent.contentView as IContentView;
-
- var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var selectionModel:ISelectionModel = chart.getBeadByType(ISelectionModel) as ISelectionModel;
var dp:Array = selectionModel.dataProvider as Array;
if (!dp)
return;
- var series:Array = IChart(_strand).series;
- var n:int = dp.length;
- trace("There are "+series.length+" series in this chart");
-
+ var n:int = dp.length;
var maxXValue:Number = 0;
var seriesMaxes:Array = [];
- var xAxis:IHorizontalAxisBead;
- if (_strand.getBeadByType(IHorizontalAxisBead)) xAxis = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
- var xAxisOffset:Number = xAxis == null ? 0 : xAxis.axisHeight;
- var yAxis:IVerticalAxisBead;
- if (_strand.getBeadByType(IVerticalAxisBead)) yAxis = _strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
- var yAxisOffset:Number = yAxis == null ? 0 : yAxis.axisWidth;
+ var xAxisOffset:Number = horizontalAxisBead == null ? 0 : horizontalAxisBead.axisHeight;
+ var yAxisOffset:Number = verticalAxisBead == null ? 0 : verticalAxisBead.axisWidth;
- var useWidth:Number = UIBase(_strand).width - yAxisOffset;
- var useHeight:Number = ((UIBase(_strand).height-xAxisOffset) / n) - gap;
+ var useWidth:Number = chart.width - yAxisOffset;
+ var useHeight:Number = ((chart.height-xAxisOffset) / n) - gap;
var seriesHeight:Number = useHeight;
var xpos:Number = xAxisOffset;
- var ypos:Number = UIBase(_strand).height - xAxisOffset - seriesHeight;
+ var ypos:Number = chart.height - xAxisOffset - seriesHeight;
var barValues:Array = [];
var maxValue:Number = 0;
@@ -140,9 +104,9 @@ package org.apache.flex.charts.beads.layouts
var data:Object = dp[i];
- for (var s:int = 0; s < series.length; s++)
+ for (var s:int = 0; s < chart.series.length; s++)
{
- var bcs:BarSeries = series[s] as BarSeries;
+ var bcs:BarSeries = chart.series[s] as BarSeries;
var field:String = bcs.xField;
var xValue:Number = Number(data[field]);
@@ -159,12 +123,12 @@ package org.apache.flex.charts.beads.layouts
data = dp[i];
xpos = yAxisOffset;
- for (s=0; s < series.length; s++)
+ for (s=0; s < chart.series.length; s++)
{
- bcs = series[s] as BarSeries;
+ bcs = chart.series[s] as BarSeries;
- var child:IChartItemRenderer = (series[s] as IChartSeries).itemRenderer.newInstance() as IChartItemRenderer;
- child.itemRendererParent = contentView;
+ var child:IChartItemRenderer = (chart.series[s] as IChartSeries).itemRenderer.newInstance() as IChartItemRenderer;
+ child.itemRendererParent = chartDataGroup;
child.data = data;
child.fillColor = bcs.fillColor;
xValue = Number(data[bcs.xField]);
@@ -176,13 +140,13 @@ package org.apache.flex.charts.beads.layouts
xpos += xValue*scaleFactor;
- contentView.addElement(child);
+ chartDataGroup.addElement(child);
}
ypos -= gap + seriesHeight;
}
- IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
+ IEventDispatcher(chart).dispatchEvent(new Event("layoutComplete"));
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60f17d1b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
index 574dca8..d0fafc2 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
@@ -19,18 +19,10 @@
package org.apache.flex.charts.beads.layouts
{
import org.apache.flex.charts.core.ICartesianChartLayout;
- import org.apache.flex.charts.core.IChart;
import org.apache.flex.charts.core.IChartItemRenderer;
- import org.apache.flex.charts.core.IChartSeries;
- import org.apache.flex.charts.core.IHorizontalAxisBead;
- import org.apache.flex.charts.core.IVerticalAxisBead;
import org.apache.flex.charts.supportClasses.ColumnSeries;
import org.apache.flex.core.IBeadLayout;
- import org.apache.flex.core.IContentView;
- import org.apache.flex.core.ILayoutParent;
import org.apache.flex.core.ISelectionModel;
- import org.apache.flex.core.IStrand;
- import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -43,7 +35,7 @@ package org.apache.flex.charts.beads.layouts
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class StackedColumnChartLayout implements IBeadLayout, ICartesianChartLayout
+ public class StackedColumnChartLayout extends ChartBaseLayout implements IBeadLayout, ICartesianChartLayout
{
/**
* constructor
@@ -57,25 +49,6 @@ package org.apache.flex.charts.beads.layouts
{
}
- private var _strand:IStrand;
-
- /**
- * @copy org.apache.flex.core.IBead#strand
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function set strand(value:IStrand):void
- {
- _strand = value;
- IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
- IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
- IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
- IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
- }
-
private var _gap:Number = 20;
/**
@@ -100,31 +73,21 @@ package org.apache.flex.charts.beads.layouts
/**
* @private
*/
- private function changeHandler(event:Event):void
+ override protected function performLayout():void
{
- var layoutParent:ILayoutParent = _strand.getBeadByType(ILayoutParent) as ILayoutParent;
- var contentView:IContentView = layoutParent.contentView as IContentView;
-
- var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var selectionModel:ISelectionModel = chart.getBeadByType(ISelectionModel) as ISelectionModel;
var dp:Array = selectionModel.dataProvider as Array;
if (!dp)
return;
- var series:Array = IChart(_strand).series;
var n:int = dp.length;
- trace("There are "+series.length+" series in this chart");
-
- var xAxis:IHorizontalAxisBead;
- if (_strand.getBeadByType(IHorizontalAxisBead)) xAxis = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
- var xAxisOffset:Number = xAxis == null ? 0 : xAxis.axisHeight;
- var yAxis:IVerticalAxisBead;
- if (_strand.getBeadByType(IVerticalAxisBead)) yAxis = _strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
- var yAxisOffset:Number = yAxis == null ? 0 : yAxis.axisWidth;
+ var xAxisOffset:Number = horizontalAxisBead == null ? 0 : horizontalAxisBead.axisHeight;
+ var yAxisOffset:Number = verticalAxisBead == null ? 0 : verticalAxisBead.axisWidth;
var xpos:Number = yAxisOffset;
var ypos:Number = 0;
- var useWidth:Number = UIBase(_strand).width-yAxisOffset;
- var useHeight:Number = UIBase(_strand).height - xAxisOffset;
+ var useWidth:Number = chart.width-yAxisOffset;
+ var useHeight:Number = chart.height - xAxisOffset;
var itemWidth:Number = (useWidth - gap*(dp.length-1))/dp.length;
var maxYValue:Number = 0;
@@ -138,9 +101,9 @@ package org.apache.flex.charts.beads.layouts
barValues.push({totalValue:0, scaleFactor:0});
var data:Object = dp[i];
- for (var s:int = 0; s < series.length; s++)
+ for (var s:int = 0; s < chart.series.length; s++)
{
- var bcs:ColumnSeries = series[s] as ColumnSeries;
+ var bcs:ColumnSeries = chart.series[s] as ColumnSeries;
var field:String = bcs.yField;
var yValue:Number = Number(data[field]);
@@ -157,12 +120,12 @@ package org.apache.flex.charts.beads.layouts
data = dp[i];
ypos = useHeight;
- for (s=0; s < series.length; s++)
+ for (s=0; s < chart.series.length; s++)
{
- bcs = series[s] as ColumnSeries;
+ bcs = chart.series[s] as ColumnSeries;
var child:IChartItemRenderer = bcs.itemRenderer.newInstance() as IChartItemRenderer;
- child.itemRendererParent = contentView;
+ child.itemRendererParent = chartDataGroup;
child.data = data;
child.fillColor = bcs.fillColor;
yValue = Number(data[bcs.yField]);
@@ -174,13 +137,13 @@ package org.apache.flex.charts.beads.layouts
ypos = child.y;
- contentView.addElement(child);
+ chartDataGroup.addElement(child);
}
xpos += gap + itemWidth;
}
- IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
+ IEventDispatcher(chart).dispatchEvent(new Event("layoutComplete"));
}
}
}
\ No newline at end of file