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 2015/06/24 22:42:28 UTC
git commit: [flex-asjs] [refs/heads/develop] - Updated Chart FlexJS
library to work with new layout/viewport system.
Repository: flex-asjs
Updated Branches:
refs/heads/develop e325df03e -> b77371d86
Updated Chart FlexJS library to work with new layout/viewport system.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/b77371d8
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/b77371d8
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/b77371d8
Branch: refs/heads/develop
Commit: b77371d86d5bf8882af0455c7393cc128f88e55e
Parents: e325df0
Author: Peter Ent <pe...@apache.org>
Authored: Wed Jun 24 16:42:23 2015 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Wed Jun 24 16:42:23 2015 -0400
----------------------------------------------------------------------
frameworks/projects/Charts/asjs/defaults.css | 6 +++
.../apache/flex/charts/beads/AxisBaseBead.as | 13 +++++
.../org/apache/flex/charts/beads/ChartView.as | 28 +++++-----
.../charts/beads/HorizontalCategoryAxisBead.as | 2 +
.../charts/beads/HorizontalLinearAxisBead.as | 2 +
.../charts/beads/VerticalCategoryAxisBead.as | 2 +
.../flex/charts/beads/VerticalLinearAxisBead.as | 2 +
.../flex/charts/beads/layouts/BarChartLayout.as | 10 +++-
.../charts/beads/layouts/ColumnChartLayout.as | 10 +++-
.../layouts/LineChartCategoryVsLinearLayout.as | 10 +++-
.../layouts/LineChartLinearVsLinearLayout.as | 10 +++-
.../flex/charts/beads/layouts/PieChartLayout.as | 10 +++-
.../beads/layouts/StackedBarChartLayout.as | 10 +++-
.../beads/layouts/StackedColumnChartLayout.as | 10 +++-
.../html/supportClasses/ScrollingViewport.js | 56 ++++++++++++++++++++
.../apache/flex/html/supportClasses/Viewport.js | 56 ++++++++++++++++++++
16 files changed, 210 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/defaults.css b/frameworks/projects/Charts/asjs/defaults.css
index 0ab5ec4..753f518 100644
--- a/frameworks/projects/Charts/asjs/defaults.css
+++ b/frameworks/projects/Charts/asjs/defaults.css
@@ -30,6 +30,7 @@ BarChart
IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+ IViewport: ClassReference("org.apache.flex.html.supportClasses.Viewport");
}
BoxItemRenderer
@@ -48,6 +49,7 @@ ColumnChart
IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+ IViewport: ClassReference("org.apache.flex.html.supportClasses.Viewport");
}
LineChart
@@ -62,6 +64,7 @@ LineChart
IConnectedItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.LineSegmentItemRenderer");
IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+ IViewport: ClassReference("org.apache.flex.html.supportClasses.Viewport");
}
PieChart
@@ -73,6 +76,7 @@ PieChart
IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.WedgeItemRenderer");
+ IViewport: ClassReference("org.apache.flex.html.supportClasses.Viewport");
}
StackedColumnChart
@@ -86,6 +90,7 @@ StackedColumnChart
IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+ IViewport: ClassReference("org.apache.flex.html.supportClasses.Viewport");
}
StackedBarChart
@@ -99,4 +104,5 @@ StackedBarChart
IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+ IViewport: ClassReference("org.apache.flex.html.supportClasses.Viewport");
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/AxisBaseBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/AxisBaseBead.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/AxisBaseBead.as
index ba2e778..9383f14 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/AxisBaseBead.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/AxisBaseBead.as
@@ -186,6 +186,19 @@ package org.apache.flex.charts.beads
}
/**
+ * Removes all graphic elements.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ protected function clearGraphics():void
+ {
+ axisGroup.removeAllElements();
+ }
+
+ /**
* @private
*/
protected function drawAxisPath(originX:Number, originY:Number, xoffset:Number, yoffset:Number):void
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/ChartView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/ChartView.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/ChartView.as
index 27ac054..13dfeb0 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/ChartView.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/ChartView.as
@@ -26,6 +26,7 @@ package org.apache.flex.charts.beads
import org.apache.flex.core.IParent;
import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.IViewportModel;
import org.apache.flex.core.UIBase;
import org.apache.flex.core.UIMetrics;
import org.apache.flex.core.ValuesManager;
@@ -55,8 +56,6 @@ package org.apache.flex.charts.beads
*/
override public function set strand(value:IStrand):void
{
- super.strand = value;
-
_strand = value;
if (border) {
@@ -81,6 +80,8 @@ package org.apache.flex.charts.beads
vaxis.axisGroup = _verticalAxisGroup;
IParent(_strand).addElement(_verticalAxisGroup);
}
+
+ super.strand = value;
IEventDispatcher(_strand).dispatchEvent( new Event("viewCreated") );
}
@@ -111,12 +112,9 @@ package org.apache.flex.charts.beads
dataGroup.removeAllElements();
}
- /**
- * @private
- */
- protected function layoutList():void
- {
- var metrics:UIMetrics = BeadMetrics.getMetrics(_strand);
+ override protected function createViewport(metrics:UIMetrics):void
+ {
+ super.createViewport(metrics);
var widthAdjustment:Number = 0;
var heightAdjustment:Number = 0;
@@ -132,14 +130,18 @@ package org.apache.flex.charts.beads
heightAdjustment = haxis.axisHeight;
}
- var dg:UIBase = UIBase(dataGroup);
var strandWidth:Number = UIBase(_strand).width;
var strandHeight:Number = UIBase(_strand).height;
- dg.x = widthAdjustment + metrics.left;
- dg.y = metrics.top;
- dg.width = strandWidth - widthAdjustment - metrics.right - metrics.left;
- dg.height= strandHeight - heightAdjustment - metrics.bottom - metrics.top;
+ var model:IViewportModel = viewport.model;
+ model.viewportX = widthAdjustment + metrics.left;
+ model.viewportY = metrics.top;
+ model.viewportWidth = strandWidth - widthAdjustment - metrics.right - metrics.left;
+ model.viewportHeight = strandHeight - heightAdjustment - metrics.bottom - metrics.top;
+ model.contentX = model.viewportX;
+ model.contentY = model.viewportY;
+ model.contentWidth = model.viewportWidth;
+ model.contentHeight = model.viewportHeight;
if (verticalAxisGroup) {
UIBase(verticalAxisGroup).x = metrics.left;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as
index be2f491..b450c0b 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as
@@ -157,6 +157,8 @@ package org.apache.flex.charts.beads
if (model.dataProvider is Array) items = model.dataProvider as Array;
else return;
+ clearGraphics();
+
var xpos:Number = 0;
var useWidth:Number = UIBase(axisGroup).width;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as
index 5c6facc..e3fd86c 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as
@@ -183,6 +183,8 @@ package org.apache.flex.charts.beads
if (model.dataProvider is Array) items = model.dataProvider as Array;
else return;
+ clearGraphics();
+
var xpos:Number = 0;
var useWidth:Number = UIBase(axisGroup).width;
var series:Array = IChart(strand).series;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as
index eb75a5f..04d1941 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as
@@ -159,6 +159,8 @@ package org.apache.flex.charts.beads
if (model.dataProvider is Array) items = model.dataProvider as Array;
else return;
+ clearGraphics();
+
var series:Array = IChart(strand).series;
var useHeight:Number = UIBase(axisGroup).height;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as
index 43631d3..9b930a0 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as
@@ -167,6 +167,8 @@ package org.apache.flex.charts.beads
if (model.dataProvider is Array) items = model.dataProvider as Array;
else return;
+ clearGraphics();
+
var series:Array = IChart(strand).series;
var useHeight:Number = UIBase(axisGroup).height;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as
index 076fb0a..6754055 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/BarChartLayout.as
@@ -24,6 +24,8 @@ package org.apache.flex.charts.beads.layouts
import org.apache.flex.charts.supportClasses.BarSeries;
import org.apache.flex.core.IBeadLayout;
import org.apache.flex.core.ISelectionModel;
+ import org.apache.flex.core.IViewport;
+ import org.apache.flex.core.IViewportModel;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -83,9 +85,13 @@ package org.apache.flex.charts.beads.layouts
if (!dp)
return;
+ // this layout will use and modify the IViewportMode
+ var viewport:IViewport = chart.getBeadByType(IViewport) as IViewport;
+ var viewportModel:IViewportModel = viewport.model;
+
var n:int = dp.length;
- var useWidth:Number = UIBase(chartDataGroup).width;
- var useHeight:Number = UIBase(chartDataGroup).height;
+ var useWidth:Number = viewportModel.contentWidth;
+ var useHeight:Number = viewportModel.contentHeight;
var itemHeight:Number = (useHeight - gap*(dp.length-1))/dp.length;
var seriesHeight:Number = itemHeight/chart.series.length;
var ypos:Number = useHeight;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
index 0d8c019..47dd0e5 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
@@ -24,6 +24,8 @@ 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.IViewport;
+ import org.apache.flex.core.IViewportModel;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -74,10 +76,14 @@ package org.apache.flex.charts.beads.layouts
if (!dp)
return;
+ // this layout will use and modify the IViewportMode
+ var viewport:IViewport = chart.getBeadByType(IViewport) as IViewport;
+ var viewportModel:IViewportModel = viewport.model;
+
var n:int = dp.length;
var xpos:Number = 0;
- var useWidth:Number = UIBase(chartDataGroup).width;
- var useHeight:Number = UIBase(chartDataGroup).height;
+ var useWidth:Number = viewportModel.contentWidth;
+ var useHeight:Number = viewportModel.contentHeight;
var itemWidth:Number = (useWidth - gap*(dp.length-1))/dp.length;
var seriesWidth:Number = itemWidth/chart.series.length;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
index 8a15003..bbfc97c 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
@@ -25,6 +25,8 @@ package org.apache.flex.charts.beads.layouts
import org.apache.flex.charts.supportClasses.LineSeries;
import org.apache.flex.core.IBeadLayout;
import org.apache.flex.core.ISelectionModel;
+ import org.apache.flex.core.IViewport;
+ import org.apache.flex.core.IViewportModel;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -54,13 +56,17 @@ package org.apache.flex.charts.beads.layouts
if (!dp)
return;
+ // this layout will use and modify the IViewportMode
+ var viewport:IViewport = chart.getBeadByType(IViewport) as IViewport;
+ var viewportModel:IViewportModel = viewport.model;
+
var n:int = dp.length;
var xAxisOffset:Number = 0;
var yAxisOffset:Number = 0;
var xpos:Number = yAxisOffset;
- var useWidth:Number = UIBase(chartDataGroup).width-yAxisOffset;;
- var useHeight:Number = UIBase(chartDataGroup).height - xAxisOffset;
+ var useWidth:Number = viewportModel.contentWidth-yAxisOffset;;
+ var useHeight:Number = viewportModel.contentHeight - xAxisOffset;
var itemWidth:Number = useWidth/dp.length;
var maxYValue:Number = 0;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
index 6719aa0..617ab2c 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
@@ -25,6 +25,8 @@ package org.apache.flex.charts.beads.layouts
import org.apache.flex.charts.supportClasses.LineSeries;
import org.apache.flex.core.IBeadLayout;
import org.apache.flex.core.ISelectionModel;
+ import org.apache.flex.core.IViewport;
+ import org.apache.flex.core.IViewportModel;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -54,12 +56,16 @@ package org.apache.flex.charts.beads.layouts
if (!dp)
return;
+ // this layout will use and modify the IViewportMode
+ var viewport:IViewport = chart.getBeadByType(IViewport) as IViewport;
+ var viewportModel:IViewportModel = viewport.model;
+
var n:int = dp.length;
var xpos:Number = 0;
var ypos:Number = 0;
- var useWidth:Number = UIBase(chartDataGroup).width;
- var useHeight:Number = UIBase(chartDataGroup).height;
+ var useWidth:Number = viewportModel.contentWidth;
+ var useHeight:Number = viewportModel.contentHeight;
var itemWidth:Number = useWidth/dp.length;
var maxXValue:Number = 0;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as
index 40bdcf4..dd27e09 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/PieChartLayout.as
@@ -24,6 +24,8 @@ package org.apache.flex.charts.beads.layouts
import org.apache.flex.charts.supportClasses.PieSeries;
import org.apache.flex.core.IBeadLayout;
import org.apache.flex.core.ISelectionModel;
+ import org.apache.flex.core.IViewport;
+ import org.apache.flex.core.IViewportModel;
import org.apache.flex.core.graphics.IFill;
import org.apache.flex.core.graphics.SolidColor;
import org.apache.flex.events.Event;
@@ -62,11 +64,15 @@ package org.apache.flex.charts.beads.layouts
if (!dp)
return;
+ // this layout will use and modify the IViewportMode
+ var viewport:IViewport = chart.getBeadByType(IViewport) as IViewport;
+ var viewportModel:IViewportModel = viewport.model;
+
var n:int = dp.length;
var xpos:Number = 0;
- var useWidth:Number = chart.width;
- var useHeight:Number = chart.height;
+ var useWidth:Number = viewportModel.contentWidth;
+ var useHeight:Number = viewportModel.contentHeight;
var maxYValue:Number = 0;
var seriesMaxes:Array = [];
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
index 07bb720..d875702 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
@@ -24,6 +24,8 @@ package org.apache.flex.charts.beads.layouts
import org.apache.flex.charts.supportClasses.BarSeries;
import org.apache.flex.core.IBeadLayout;
import org.apache.flex.core.ISelectionModel;
+ import org.apache.flex.core.IViewport;
+ import org.apache.flex.core.IViewportModel;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -82,14 +84,18 @@ package org.apache.flex.charts.beads.layouts
if (!dp)
return;
+ // this layout will use and modify the IViewportMode
+ var viewport:IViewport = chart.getBeadByType(IViewport) as IViewport;
+ var viewportModel:IViewportModel = viewport.model;
+
var n:int = dp.length;
var maxXValue:Number = 0;
var minXValue:Number = 0;
var determineScale:Boolean = true;
var seriesMaxes:Array = [];
- var useWidth:Number = UIBase(chartDataGroup).width;
- var useHeight:Number = UIBase(chartDataGroup).height;
+ var useWidth:Number = viewportModel.contentWidth;
+ var useHeight:Number = viewportModel.contentHeight;
var itemHeight:Number = (useHeight - gap*(dp.length-1))/n;
var seriesHeight:Number = itemHeight;
var xpos:Number = 0;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
index 074f82d..0c95013 100644
--- a/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
+++ b/frameworks/projects/Charts/asjs/src/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
@@ -23,6 +23,8 @@ 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.IViewport;
+ import org.apache.flex.core.IViewportModel;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -81,9 +83,13 @@ package org.apache.flex.charts.beads.layouts
if (!dp)
return;
+ // this layout will use and modify the IViewportMode
+ var viewport:IViewport = chart.getBeadByType(IViewport) as IViewport;
+ var viewportModel:IViewportModel = viewport.model;
+
var n:int = dp.length;
- var useWidth:Number = UIBase(chartDataGroup).width;
- var useHeight:Number = UIBase(chartDataGroup).height;
+ var useWidth:Number = viewportModel.contentWidth;
+ var useHeight:Number = viewportModel.contentHeight;
var itemWidth:Number = (useWidth - gap*(dp.length-1))/dp.length;
var seriesWidth:Number = itemWidth;
var xpos:Number = 0;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/HTML/js/src/org/apache/flex/html/supportClasses/ScrollingViewport.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/supportClasses/ScrollingViewport.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/supportClasses/ScrollingViewport.js
new file mode 100644
index 0000000..e84ad93
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/supportClasses/ScrollingViewport.js
@@ -0,0 +1,56 @@
+/**
+ * Licensed 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.
+ */
+
+goog.provide('org_apache_flex_html_supportClasses_ScrollingViewport');
+
+goog.require('org_apache_flex_core_IItemRenderer');
+goog.require('org_apache_flex_core_IItemRendererFactory');
+goog.require('org_apache_flex_core_UIBase');
+goog.require('org_apache_flex_events_Event');
+goog.require('org_apache_flex_utils_MXMLDataInterpreter');
+
+
+
+/**
+ * @constructor
+ */
+org_apache_flex_html_supportClasses_ScrollingViewport =
+function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_supportClasses_ScrollingViewport.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'ScrollingViewport',
+ qName: 'org_apache_flex_html_supportClasses_ScrollingViewport' }]};
+
+
+
+Object.defineProperties(org_apache_flex_html_supportClasses_ScrollingViewport.prototype, {
+ /** @expose */
+ model: {
+ /** @this {org_apache_flex_html_supportClasses_ScrollingViewport} */
+ get: function() {
+ return this.model_;
+ },
+ /** @this {org_apache_flex_html_supportClasses_ScrollingViewport} */
+ set: function(value) {
+ this.model_ = value;
+ }
+ }
+});
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b77371d8/frameworks/projects/HTML/js/src/org/apache/flex/html/supportClasses/Viewport.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/supportClasses/Viewport.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/supportClasses/Viewport.js
new file mode 100644
index 0000000..ca6bbdd
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/supportClasses/Viewport.js
@@ -0,0 +1,56 @@
+/**
+ * Licensed 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.
+ */
+
+goog.provide('org_apache_flex_html_supportClasses_Viewport');
+
+goog.require('org_apache_flex_core_IItemRenderer');
+goog.require('org_apache_flex_core_IItemRendererFactory');
+goog.require('org_apache_flex_core_UIBase');
+goog.require('org_apache_flex_events_Event');
+goog.require('org_apache_flex_utils_MXMLDataInterpreter');
+
+
+
+/**
+ * @constructor
+ */
+org_apache_flex_html_supportClasses_Viewport =
+function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_supportClasses_Viewport.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'Viewport',
+ qName: 'org_apache_flex_html_supportClasses_Viewport' }]};
+
+
+
+Object.defineProperties(org_apache_flex_html_supportClasses_Viewport.prototype, {
+ /** @expose */
+ model: {
+ /** @this {org_apache_flex_html_supportClasses_Viewport} */
+ get: function() {
+ return this.model_;
+ },
+ /** @this {org_apache_flex_html_supportClasses_Viewport} */
+ set: function(value) {
+ this.model_ = value;
+ }
+ }
+});