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/10/07 21:46:01 UTC
git commit: [flex-asjs] [refs/heads/develop] - Refactored charts to
use new DataItemRendererFactoryForSeriesData to produce the itemRenderers for
the charts.
Repository: flex-asjs
Updated Branches:
refs/heads/develop c889dfcb9 -> 9eb510604
Refactored charts to use new DataItemRendererFactoryForSeriesData to produce the itemRenderers for the charts.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/9eb51060
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/9eb51060
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/9eb51060
Branch: refs/heads/develop
Commit: 9eb51060436ec76e80399bfe88a0babb553f6182
Parents: c889dfc
Author: Peter Ent <pe...@apache.org>
Authored: Tue Oct 7 15:45:56 2014 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Tue Oct 7 15:45:56 2014 -0400
----------------------------------------------------------------------
frameworks/as/projects/FlexJSJX/defaults.css | 6 +
.../as/projects/FlexJSJX/src/FlexJSJXClasses.as | 1 +
.../DataItemRendererFactoryForSeriesData.as | 127 +++++++++++++++++++
.../flex/charts/beads/layouts/BarChartLayout.as | 5 +-
.../charts/beads/layouts/ColumnChartLayout.as | 6 +-
.../layouts/LineChartCategoryVsLinearLayout.as | 7 +-
.../layouts/LineChartLinearVsLinearLayout.as | 7 +-
.../flex/charts/beads/layouts/PieChartLayout.as | 6 +-
.../beads/layouts/StackedBarChartLayout.as | 5 +-
.../beads/layouts/StackedColumnChartLayout.as | 5 +-
.../charts/supportClasses/BoxItemRenderer.as | 21 +++
.../supportClasses/LineSegmentItemRenderer.as | 21 +++
.../charts/supportClasses/WedgeItemRenderer.as | 21 +++
.../as/projects/FlexJSUI/src/FlexJSUIClasses.as | 1 +
.../apache/flex/charts/core/IChartDataGroup.as | 44 +++++++
.../flex/charts/core/IChartItemRenderer.as | 12 ++
.../charts/supportClasses/ChartDataGroup.as | 37 +++++-
17 files changed, 298 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/frameworks/as/projects/FlexJSJX/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/defaults.css b/frameworks/as/projects/FlexJSJX/defaults.css
index 57c1ab6..bcb9171 100644
--- a/frameworks/as/projects/FlexJSJX/defaults.css
+++ b/frameworks/as/projects/FlexJSJX/defaults.css
@@ -26,6 +26,7 @@ BarChart
IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.BarChartLayout");
IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
}
@@ -36,6 +37,7 @@ ColumnChart
IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.ColumnChartLayout");
IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
}
@@ -73,6 +75,7 @@ LineChart
IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.LineChartCategoryVsLinearLayout");
IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
IConnectedItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.LineSegmentItemRenderer");
}
@@ -84,6 +87,7 @@ PieChart
IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.PieChartLayout");
IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.WedgeItemRenderer");
}
@@ -94,6 +98,7 @@ StackedColumnChart
IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.StackedColumnChartLayout");
IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
}
@@ -104,5 +109,6 @@ StackedBarChart
IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.StackedBarChartLayout");
IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as b/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
index 5e10ded..f4c6693 100644
--- a/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
+++ b/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
@@ -29,6 +29,7 @@ internal class FlexJSJXClasses
{
import org.apache.flex.charts.beads.BarChartView; BarChartView;
import org.apache.flex.charts.beads.ChartItemRendererFactory; ChartItemRendererFactory;
+ import org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData; DataItemRendererFactoryForSeriesData;
import org.apache.flex.charts.beads.PieChartView; PieChartView;
import org.apache.flex.charts.beads.HorizontalCategoryAxisBead; HorizontalCategoryAxisBead;
import org.apache.flex.charts.beads.HorizontalLinearAxisBead; HorizontalLinearAxisBead;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/DataItemRendererFactoryForSeriesData.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/DataItemRendererFactoryForSeriesData.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/DataItemRendererFactoryForSeriesData.as
new file mode 100644
index 0000000..e904375
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/DataItemRendererFactoryForSeriesData.as
@@ -0,0 +1,127 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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
+{
+ import org.apache.flex.charts.core.IChart;
+ import org.apache.flex.charts.core.IChartDataGroup;
+ import org.apache.flex.charts.core.IChartItemRenderer;
+ import org.apache.flex.charts.core.IChartSeries;
+ import org.apache.flex.core.IBead;
+ import org.apache.flex.core.IDataProviderItemRendererMapper;
+ import org.apache.flex.core.IItemRendererClassFactory;
+ import org.apache.flex.core.ISelectionModel;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.html.beads.IListView;
+
+ /**
+ * The DataItemRendererFactoryForSeriesData creates the itemRenderers necessary for series-based
+ * charts.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class DataItemRendererFactoryForSeriesData implements IBead, IDataProviderItemRendererMapper
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function DataItemRendererFactoryForSeriesData()
+ {
+ }
+
+ 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;
+ var selectionModel:ISelectionModel = value.getBeadByType(ISelectionModel) as ISelectionModel;
+ selectionModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
+
+ dataProviderChangeHandler(null);
+ }
+
+ /**
+ * For series data, the 'global' itemRendererFactory is not used. Each series supplies
+ * its own itemRendererFactory.
+ */
+ public function get itemRendererFactory():IItemRendererClassFactory
+ {
+ return null;
+ }
+ public function set itemRendererFactory(value:IItemRendererClassFactory):void
+ {
+ }
+
+ /**
+ * @private
+ */
+ private function dataProviderChangeHandler(event:Event):void
+ {
+ var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
+ var dp:Array = selectionModel.dataProvider as Array;
+ if (!dp)
+ return;
+
+ var listView:IListView = _strand.getBeadByType(IListView) as IListView;
+ var dataGroup:IChartDataGroup = listView.dataGroup as IChartDataGroup;
+ dataGroup.removeAllElements();
+
+ var chart:IChart = _strand as IChart;
+ var series:Array = chart.series;
+
+ for (var s:int=0; s < series.length; s++)
+ {
+ var n:int = dp.length;
+ var chartSeries:IChartSeries = series[s] as IChartSeries;
+
+ for (var i:int = 0; i < n; i++)
+ {
+ if (chartSeries.itemRenderer)
+ {
+ var ir:IChartItemRenderer = chartSeries.itemRenderer.newInstance() as IChartItemRenderer;
+ dataGroup.addElement(ir);
+ ir.itemRendererParent = dataGroup;
+ ir.data = dp[i];
+ ir.series = chartSeries;
+ }
+ }
+
+ }
+
+ IEventDispatcher(_strand).dispatchEvent(new Event("itemsCreated"));
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/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 a7a39e1..22181e6 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
@@ -120,10 +120,7 @@ package org.apache.flex.charts.beads.layouts
{
bcs = chart.series[s] as BarSeries;
- var child:IChartItemRenderer = (chart.series[s] as IChartSeries).itemRenderer.newInstance() as IChartItemRenderer;
- chartDataGroup.addElement(child);
- child.itemRendererParent = chartDataGroup;
- child.data = data;
+ var child:IChartItemRenderer = chartDataGroup.getItemRendererForSeriesAtIndex(bcs,i);
xValue = Number(data[bcs.xField]);
child.x = yAxisOffset;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/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 9a917cd..5958614 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
@@ -23,6 +23,7 @@ package org.apache.flex.charts.beads.layouts
import org.apache.flex.charts.supportClasses.ColumnSeries;
import org.apache.flex.core.IBeadLayout;
import org.apache.flex.core.ISelectionModel;
+ import org.apache.flex.core.IUIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -110,10 +111,7 @@ package org.apache.flex.charts.beads.layouts
{
bcs = chart.series[s] as ColumnSeries;
- var child:IChartItemRenderer = bcs.itemRenderer.newInstance() as IChartItemRenderer;
- chartDataGroup.addElement(child);
- child.itemRendererParent = chartDataGroup;
- child.data = data;
+ var child:IChartItemRenderer = chartDataGroup.getItemRendererForSeriesAtIndex(bcs,i);
yValue = Number(data[bcs.yField]);
child.y = useHeight - yValue*seriesMaxes[s].scaleFactor;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/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 06edffc..1ba895b 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
@@ -101,15 +101,12 @@ package org.apache.flex.charts.beads.layouts
seriesMaxes[s].points.push( {x:childX, y:childY} );
- if (aseries.itemRenderer) {
- var child:IChartItemRenderer = aseries.itemRenderer.newInstance() as IChartItemRenderer;
- child.itemRendererParent = chartDataGroup;
- child.data = data;
+ var child:IChartItemRenderer = chartDataGroup.getItemRendererForSeriesAtIndex(aseries,i);
+ if (child) {
child.x = childX - 5;
child.y = childY - 5;
child.width = 10;
child.height = 10;
- chartDataGroup.addElement(child);
}
xpos += itemWidth;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/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 68906ea..a126e8c 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
@@ -108,11 +108,8 @@ package org.apache.flex.charts.beads.layouts
seriesMaxes[s].points.push( {x:childX, y:childY} );
- if (aseries.itemRenderer) {
- var child:IChartItemRenderer = aseries.itemRenderer.newInstance() as IChartItemRenderer;
- chartDataGroup.addElement(child);
- child.itemRendererParent = chartDataGroup;
- child.data = data;
+ var child:IChartItemRenderer = chartDataGroup.getItemRendererForSeriesAtIndex(aseries,i);
+ if (child) {
child.x = childX - 5;
child.y = childY - 5;
child.width = 10;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/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 445db82..08fe213 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,6 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.charts.beads.layouts
{
+ import org.apache.flex.charts.core.IChartItemRenderer;
import org.apache.flex.charts.core.IChartSeries;
import org.apache.flex.charts.supportClasses.IWedgeItemRenderer;
import org.apache.flex.charts.supportClasses.PieSeries;
@@ -108,10 +109,7 @@ package org.apache.flex.charts.beads.layouts
fill.color = colors[i%colors.length];
fill.alpha = 1.0;
- var child:IWedgeItemRenderer = (chart.series[s] as IChartSeries).itemRenderer.newInstance() as IWedgeItemRenderer;
- chartDataGroup.addElement(child);
- child.itemRendererParent = chartDataGroup;
- child.data = data;
+ var child:IWedgeItemRenderer = chartDataGroup.getItemRendererForSeriesAtIndex(chart.series[s],i) as IWedgeItemRenderer;
child.fill = fill;
end = start + (360.0 * obj.percent);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/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 386066f..bfb1f84 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
@@ -127,10 +127,7 @@ package org.apache.flex.charts.beads.layouts
{
bcs = chart.series[s] as BarSeries;
- var child:IChartItemRenderer = (chart.series[s] as IChartSeries).itemRenderer.newInstance() as IChartItemRenderer;
- chartDataGroup.addElement(child);
- child.itemRendererParent = chartDataGroup;
- child.data = data;
+ var child:IChartItemRenderer = chartDataGroup.getItemRendererForSeriesAtIndex(bcs,i);
xValue = Number(data[bcs.xField]);
child.x = xpos;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/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 aa18c61..5348bb7 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
@@ -124,10 +124,7 @@ package org.apache.flex.charts.beads.layouts
{
bcs = chart.series[s] as ColumnSeries;
- var child:IChartItemRenderer = bcs.itemRenderer.newInstance() as IChartItemRenderer;
- chartDataGroup.addElement(child);
- child.itemRendererParent = chartDataGroup;
- child.data = data;
+ var child:IChartItemRenderer = chartDataGroup.getItemRendererForSeriesAtIndex(bcs,i);
yValue = Number(data[bcs.yField]);
child.x = xpos;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as
index 59314fe..93b65f5 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as
@@ -19,6 +19,7 @@
package org.apache.flex.charts.supportClasses
{
import org.apache.flex.charts.core.IChartItemRenderer;
+ import org.apache.flex.charts.core.IChartSeries;
import org.apache.flex.core.graphics.IFill;
import org.apache.flex.core.graphics.IStroke;
import org.apache.flex.core.graphics.Rect;
@@ -50,6 +51,26 @@ package org.apache.flex.charts.supportClasses
super();
}
+ private var _series:IChartSeries;
+
+ /**
+ * The series to which this itemRenderer instance belongs. Or, the series
+ * being presented.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get series():IChartSeries
+ {
+ return _series;
+ }
+ public function set series(value:IChartSeries):void
+ {
+ _series = value;
+ }
+
private var filledRect:Rect;
private var _yField:String = "y";
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/LineSegmentItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/LineSegmentItemRenderer.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/LineSegmentItemRenderer.as
index 1eca5b9..9d40678 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/LineSegmentItemRenderer.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/LineSegmentItemRenderer.as
@@ -18,6 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.charts.supportClasses
{
+ import org.apache.flex.charts.core.IChartSeries;
import org.apache.flex.core.graphics.IStroke;
import org.apache.flex.core.graphics.Path;
import org.apache.flex.html.supportClasses.DataItemRenderer;
@@ -36,6 +37,26 @@ package org.apache.flex.charts.supportClasses
{
super();
}
+
+ private var _series:IChartSeries;
+
+ /**
+ * The series to which this itemRenderer instance belongs. Or, the series
+ * being presented.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get series():IChartSeries
+ {
+ return _series;
+ }
+ public function set series(value:IChartSeries):void
+ {
+ _series = value;
+ }
private var _points:Array;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
index 24dc185..d3f9f30 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
@@ -18,6 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.charts.supportClasses
{
+ import org.apache.flex.charts.core.IChartSeries;
import org.apache.flex.core.graphics.IFill;
import org.apache.flex.core.graphics.IStroke;
import org.apache.flex.core.graphics.Path;
@@ -38,6 +39,26 @@ package org.apache.flex.charts.supportClasses
super();
}
+ private var _series:IChartSeries;
+
+ /**
+ * The series to which this itemRenderer instance belongs. Or, the series
+ * being presented.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get series():IChartSeries
+ {
+ return _series;
+ }
+ public function set series(value:IChartSeries):void
+ {
+ _series = value;
+ }
+
private var _centerX:Number;
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as b/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
index b0eba4e..a63b88b 100644
--- a/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
+++ b/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
@@ -35,6 +35,7 @@ internal class FlexJSUIClasses
import org.apache.flex.charts.core.ChartBase; ChartBase;
import org.apache.flex.charts.core.IChart; IChart;
import org.apache.flex.charts.core.ICartesianChartLayout; ICartesianChartLayout;
+ import org.apache.flex.charts.core.IChartDataGroup; IChartDataGroup;
import org.apache.flex.charts.core.IChartSeries; IChartSeries;
import org.apache.flex.charts.core.IHorizontalAxisBead; IHorizontalAxisBead;
import org.apache.flex.charts.core.IVerticalAxisBead; IVerticalAxisBead;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartDataGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartDataGroup.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartDataGroup.as
new file mode 100644
index 0000000..d32874e
--- /dev/null
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartDataGroup.as
@@ -0,0 +1,44 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.core
+{
+ import org.apache.flex.core.IItemRendererParent;
+
+ /**
+ * The IChartDataGroup is the interface for the parent element of
+ * chart itemRenderers.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface IChartDataGroup extends IItemRendererParent
+ {
+ /**
+ * Returns the itemRenderer that matches both the series and child index value.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function getItemRendererForSeriesAtIndex(series:IChartSeries, index:int):IChartItemRenderer;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartItemRenderer.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartItemRenderer.as
index 89e85f5..16a2ec8 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartItemRenderer.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/core/IChartItemRenderer.as
@@ -32,6 +32,18 @@ package org.apache.flex.charts.core
public interface IChartItemRenderer extends IItemRenderer
{
/**
+ * The series to which this itemRenderer instance belongs. Or, the series
+ * being presented.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get series():IChartSeries;
+ function set series(value:IChartSeries):void;
+
+ /**
* The name of the field containing the X-axis value found
* in the data property.
*
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9eb51060/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/ChartDataGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/ChartDataGroup.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/ChartDataGroup.as
index 3fc8a8c..0ab5ff2 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/ChartDataGroup.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/charts/supportClasses/ChartDataGroup.as
@@ -18,7 +18,9 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.charts.supportClasses
{
- import org.apache.flex.core.IItemRendererParent;
+ import org.apache.flex.charts.core.IChartDataGroup;
+ import org.apache.flex.charts.core.IChartItemRenderer;
+ import org.apache.flex.charts.core.IChartSeries;
import org.apache.flex.html.supportClasses.NonVirtualDataGroup;
/**
@@ -30,16 +32,43 @@ package org.apache.flex.charts.supportClasses
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class ChartDataGroup extends NonVirtualDataGroup implements IItemRendererParent
+ public class ChartDataGroup extends NonVirtualDataGroup implements IChartDataGroup
{
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
public function ChartDataGroup()
{
super();
}
- override public function addElement(c:Object):void
+ /**
+ * Returns the itemRenderer that matches both the series and child index. A null return is
+ * valid since some charts have optional itemRenderers for their series.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function getItemRendererForSeriesAtIndex(series:IChartSeries, index:int):IChartItemRenderer
{
- super.addElement(c);
+ var n:int = numChildren;
+ for(var i:int=0; i < n; i++)
+ {
+ var child:IChartItemRenderer = getChildAt(i) as IChartItemRenderer;
+ if (child && child.series == series) {
+ if (index == 0) return child;
+ --index;
+ }
+ }
+
+ return null;
}
}
}
\ No newline at end of file