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/11/18 19:16:23 UTC

[2/2] git commit: [flex-asjs] [refs/heads/develop] - Updated FlexJS chart package with refurbished optimized-chart classes.

Updated FlexJS chart package with refurbished optimized-chart classes.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/32cd93b6
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/32cd93b6
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/32cd93b6

Branch: refs/heads/develop
Commit: 32cd93b62b4318d268f956426251aa7a9956063c
Parents: cea869d
Author: Peter Ent <pe...@apache.org>
Authored: Tue Nov 18 13:16:08 2014 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Tue Nov 18 13:16:08 2014 -0500

----------------------------------------------------------------------
 .../as/projects/FlexJSJX/basic-manifest.xml     |   8 +-
 frameworks/as/projects/FlexJSJX/defaults.css    |  22 +-
 .../as/projects/FlexJSJX/src/FlexJSJXClasses.as |  10 +-
 .../apache/flex/charts/beads/AxisBaseBead.as    | 128 ++++++---
 .../org/apache/flex/charts/beads/ChartView.as   | 153 ++++++++++
 .../charts/beads/HorizontalCategoryAxisBead.as  |  32 +--
 .../charts/beads/HorizontalLinearAxisBead.as    |  32 +--
 .../charts/beads/VerticalCategoryAxisBead.as    |  45 ++-
 .../flex/charts/beads/VerticalLinearAxisBead.as |  36 +--
 .../flex/charts/beads/layouts/BarChartLayout.as |  20 +-
 .../charts/beads/layouts/ColumnChartLayout.as   |  13 +-
 .../layouts/LineChartCategoryVsLinearLayout.as  |   9 +-
 .../layouts/LineChartLinearVsLinearLayout.as    |   9 +-
 .../flex/charts/beads/layouts/PieChartLayout.as |   4 +
 .../beads/layouts/StackedBarChartLayout.as      |  22 +-
 .../beads/layouts/StackedColumnChartLayout.as   |  19 +-
 .../flex/charts/optimized/SVGBoxItemRenderer.as | 207 ++++++++++++++
 .../flex/charts/optimized/SVGChartAxisGroup.as  | 142 ++++++++++
 .../flex/charts/optimized/SVGChartDataGroup.as  | 158 +++++++++++
 .../optimized/SVGLineSegmentItemRenderer.as     | 201 +++++++++++++
 .../charts/optimized/SVGWedgeItemRenderer.as    | 281 +++++++++++++++++++
 .../optimized/SVGBoxItemRenderer.as             | 207 --------------
 .../optimized/SVGChartDataGroup.as              | 157 -----------
 .../optimized/SVGLineSegmentItemRenderer.as     | 201 -------------
 .../optimized/SVGWedgeItemRenderer.as           | 281 -------------------
 .../as/projects/FlexJSUI/src/FlexJSUIClasses.as |   3 +
 .../org/apache/flex/charts/core/IAxisBead.as    |   7 +
 .../org/apache/flex/charts/core/IAxisGroup.as   |  42 +++
 .../charts/supportClasses/ChartAxisGroup.as     | 168 +++++++++++
 .../flex/core/graphics/GraphicsContainer.as     |  13 +
 .../org/apache/flex/charts/core/IAxisGroup.js   |  45 +++
 .../charts/supportClasses/ChartAxisGroup.js     |  71 +++++
 .../charts/supportClasses/ChartDataGroup.js     |   1 +
 33 files changed, 1705 insertions(+), 1042 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/basic-manifest.xml b/frameworks/as/projects/FlexJSJX/basic-manifest.xml
index 8070963..0dac3c8 100644
--- a/frameworks/as/projects/FlexJSJX/basic-manifest.xml
+++ b/frameworks/as/projects/FlexJSJX/basic-manifest.xml
@@ -52,10 +52,10 @@
     <component id="LineChartLinearVsLinearLayout" class="org.apache.flex.charts.beads.layouts.LineChartLinearVsLinearLayout" />
     <component id="VerticalColumnLayout" class="org.apache.flex.html.beads.layouts.VerticalColumnLayout" />
 
-    <component id="SVGChartDataGroup" class="org.apache.flex.charts.supportClasses.optimized.SVGChartDataGroup"/>
-    <component id="SVGBoxItemRenderer" class="org.apache.flex.charts.supportClasses.optimized.SVGBoxItemRenderer"/>
-    <component id="SVGWedgeItemRenderer" class="org.apache.flex.charts.supportClasses.optimized.SVGWedgeItemRenderer"/>
-    <component id="SVGLineSegmentItemRenderer" class="org.apache.flex.charts.supportClasses.optimized.SVGLineSegmentItemRenderer"/>
+    <component id="SVGChartDataGroup" class="org.apache.flex.charts.optimized.SVGChartDataGroup"/>
+    <component id="SVGBoxItemRenderer" class="org.apache.flex.charts.optimized.SVGBoxItemRenderer"/>
+    <component id="SVGWedgeItemRenderer" class="org.apache.flex.charts.optimized.SVGWedgeItemRenderer"/>
+    <component id="SVGLineSegmentItemRenderer" class="org.apache.flex.charts.optimized.SVGLineSegmentItemRenderer"/>
 
     <component id="DragMouseController" class="org.apache.flex.html.beads.controllers.DragMouseController" />
     <component id="DropMouseController" class="org.apache.flex.html.beads.controllers.DropMouseController" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/defaults.css b/frameworks/as/projects/FlexJSJX/defaults.css
index bcb9171..d2c8648 100644
--- a/frameworks/as/projects/FlexJSJX/defaults.css
+++ b/frameworks/as/projects/FlexJSJX/defaults.css
@@ -22,23 +22,27 @@
 BarChart
 {
     IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
-    IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");			
+    IBeadView:  ClassReference("org.apache.flex.charts.beads.ChartView");			
     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");
+    IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+    IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
 }
 
 ColumnChart
 {
     IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
-    IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");			
+    IBeadView:  ClassReference("org.apache.flex.charts.beads.ChartView");			
     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");
+    IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+    IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
 }
 
 DataGrid
@@ -71,19 +75,21 @@ DateField {
 LineChart
 {
     IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
-    IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");			
+    IBeadView:  ClassReference("org.apache.flex.charts.beads.ChartView");			
     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");
+    IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+    IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
 }
 
 PieChart
 {
     IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
-    IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");			
+    IBeadView:  ClassReference("org.apache.flex.charts.beads.ChartView");			
     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");
@@ -94,21 +100,25 @@ PieChart
 StackedColumnChart
 {
     IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
-    IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");			
+    IBeadView:  ClassReference("org.apache.flex.charts.beads.ChartView");			
     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");
+    IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+    IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
 }
 
 StackedBarChart
 {
     IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
-    IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");			
+    IBeadView:  ClassReference("org.apache.flex.charts.beads.ChartView");			
     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");
+    IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+    IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/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 d4e51a6..0e9027e 100644
--- a/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
+++ b/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
@@ -28,6 +28,7 @@ package
 internal class FlexJSJXClasses
 {
 	
+	import org.apache.flex.charts.beads.ChartView; ChartView;
 	import org.apache.flex.charts.beads.ChartItemRendererFactory; ChartItemRendererFactory;
 	import org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData; DataItemRendererFactoryForSeriesData;
 	import org.apache.flex.charts.beads.HorizontalCategoryAxisBead; HorizontalCategoryAxisBead;
@@ -47,10 +48,11 @@ internal class FlexJSJXClasses
 	import org.apache.flex.charts.supportClasses.BoxItemRenderer; BoxItemRenderer;
 	import org.apache.flex.charts.supportClasses.LineSegmentItemRenderer; LineSegmentItemRenderer;
 	import org.apache.flex.charts.supportClasses.WedgeItemRenderer; WedgeItemRenderer;
-	import org.apache.flex.charts.supportClasses.optimized.SVGChartDataGroup; SVGChartDataGroup;
-	import org.apache.flex.charts.supportClasses.optimized.SVGBoxItemRenderer; SVGBoxItemRenderer;
-	import org.apache.flex.charts.supportClasses.optimized.SVGWedgeItemRenderer; SVGWedgeItemRenderer;
-	import org.apache.flex.charts.supportClasses.optimized.SVGLineSegmentItemRenderer; SVGLineSegmentItemRenderer;
+	import org.apache.flex.charts.optimized.SVGChartAxisGroup; SVGChartAxisGroup;
+	import org.apache.flex.charts.optimized.SVGChartDataGroup; SVGChartDataGroup;
+	import org.apache.flex.charts.optimized.SVGBoxItemRenderer; SVGBoxItemRenderer;
+	import org.apache.flex.charts.optimized.SVGWedgeItemRenderer; SVGWedgeItemRenderer;
+	import org.apache.flex.charts.optimized.SVGLineSegmentItemRenderer; SVGLineSegmentItemRenderer;
 	
 	import org.apache.flex.effects.Tween; Tween;
 	import org.apache.flex.effects.Move; Move;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/AxisBaseBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/AxisBaseBead.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/AxisBaseBead.as
index 3f4f5c7..29990b0 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/AxisBaseBead.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/AxisBaseBead.as
@@ -19,14 +19,33 @@
 package org.apache.flex.charts.beads
 {
 	import org.apache.flex.charts.core.IAxisBead;
+	import org.apache.flex.charts.core.IAxisGroup;
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.core.UIBase;
+	import org.apache.flex.core.graphics.GraphicsContainer;
+	import org.apache.flex.core.graphics.IFill;
 	import org.apache.flex.core.graphics.IStroke;
-	import org.apache.flex.core.graphics.Path;
+	import org.apache.flex.core.graphics.SolidColor;
 	import org.apache.flex.core.graphics.SolidColorStroke;
 	
+	/**
+	 * The AxisBaseBead is the base class for the chart axis beads.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
 	public class AxisBaseBead implements IAxisBead
 	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
 		public function AxisBaseBead()
 		{
 			// create default dark stroke for the axis line and tick marks
@@ -39,9 +58,26 @@ package org.apache.flex.charts.beads
 			
 			axisStroke = blackLine;
 			tickStroke = blackLine;
+			
+			var blackFill:SolidColor = new SolidColor();
+			blackFill.color = 0x111111;
+			blackFill.alpha = 1.0;
+			
+			tickFill = blackFill;
 		}
 		
+		private var _strand:IStrand;
+		private var wrapper:GraphicsContainer;
+		private var _axisGroup:IAxisGroup;
+	
 		private var _placement:String = "unset";
+		private var _axisStroke:IStroke;
+		private var _tickStroke:IStroke;
+		private var _tickFill:IFill;
+		
+		private var tickPathString:String = null;
+		private var tickMaxWidth:Number = 0;
+		private var tickMaxHeight:Number = 0;
 		
 		/**
 		 * The placement of the axis with respect to the chart area. Valid
@@ -62,8 +98,6 @@ package org.apache.flex.charts.beads
 			_placement = value;
 		}
 		
-		private var _axisStroke:IStroke;
-		
 		/**
 		 * The stroke used to draw the line for the axis.
 		 *  
@@ -81,8 +115,6 @@ package org.apache.flex.charts.beads
 			_axisStroke = value;
 		}
 		
-		private var _tickStroke:IStroke;
-		
 		/**
 		 * The stroke used to draw each tick mark.
 		 *  
@@ -100,7 +132,41 @@ package org.apache.flex.charts.beads
 			_tickStroke = value;
 		}
 		
-		private var _strand:IStrand;
+		/**
+		 * The stroke used to draw each tick label.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get tickFill():IFill
+		{
+			return _tickFill;
+		}
+		public function set tickFill(value:IFill):void
+		{
+			_tickFill = value;
+		}
+		
+		/**
+		 * The container space for lines, tick marks, etc.
+		 */
+		public function get axisGroup():IAxisGroup
+		{
+			return _axisGroup;
+		}
+		public function set axisGroup(value:IAxisGroup):void
+		{
+			_axisGroup = value;
+			
+			wrapper = new GraphicsContainer();
+			UIBase(_axisGroup).addElement(wrapper);
+			wrapper.x = 0;
+			wrapper.y = 0;
+			wrapper.width = UIBase(_axisGroup).width;
+			wrapper.height = UIBase(_axisGroup).height;
+		}
 		
 		/**
 		 * @copy org.apache.flex.core.IBead#strand
@@ -119,26 +185,28 @@ package org.apache.flex.charts.beads
 			return _strand;
 		}
 		
-		protected function drawAxisPath(originX:Number, originY:Number, xoffset:Number, yoffset:Number):Path
-		{
-			var axisPath:Path = new Path();
-			// set (x,y) before adding as element to set the location correctly
-			axisPath.x = originX;
-			axisPath.y = originY;
-			axisPath.width = 1+xoffset;
-			axisPath.height = 1+yoffset;
-			UIBase(strand).addElement(axisPath);
-			axisPath.stroke = axisStroke;
-			var pathLine:String = "M 0 0 l "+String(xoffset)+" "+String(yoffset);
-			axisPath.drawPath(0, 0, pathLine);
-			
-			return axisPath;
+		/**
+		 * @private
+		 */
+		protected function drawAxisPath(originX:Number, originY:Number, xoffset:Number, yoffset:Number):void
+		{
+			axisGroup.drawAxisLine(originX, originY, xoffset, yoffset, axisStroke);
 		}
 		
-		private var tickPathString:String = null;
-		private var tickMaxWidth:Number = 0;
-		private var tickMaxHeight:Number = 0;
+		/**
+		 * @private
+		 */
+		protected function addTickLabel(text:String, xpos:Number, ypos:Number, boxWidth:Number, boxHeight:Number):void
+		{
+			var isHorizontal:Boolean = (placement == "bottom") || (placement == "top");
+			
+			if (isHorizontal) axisGroup.drawHorizontalTickLabel(text, xpos, ypos, boxWidth, boxHeight, tickFill);
+			else axisGroup.drawVerticalTickLabel(text, xpos, ypos, boxWidth, boxHeight, tickFill);
+		}
 		
+		/**
+		 * @private
+		 */
 		protected function addTickMark(xpos:Number, ypos:Number, xoffset:Number, yoffset:Number):void
 		{
 			if (tickPathString == null) tickPathString = "";
@@ -149,18 +217,12 @@ package org.apache.flex.charts.beads
 			tickMaxHeight= Math.max(tickMaxHeight, ypos+yoffset);
 		}
 		
+		/**
+		 * @private
+		 */
 		protected function drawTickPath(originX:Number, originY:Number):void
 		{
-			var tickPath:Path = new Path();
-			// set (x,y) before adding as element to set the location correctly
-			tickPath.x = originX;
-			tickPath.y = originY;
-			tickPath.width = tickMaxWidth;
-			tickPath.height = tickMaxHeight;
-			UIBase(strand).addElement(tickPath);
-			tickPath.stroke = tickStroke;
-			tickPath.drawPath( 0, 0, tickPathString );
-			
+			axisGroup.drawTickMarks(originX, originY, tickMaxWidth, tickMaxHeight, tickPathString, tickStroke);
 			tickPathString = null;
 		}
 	}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/ChartView.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/ChartView.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/ChartView.as
new file mode 100644
index 0000000..1b3c2d8
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/ChartView.as
@@ -0,0 +1,153 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.IAxisGroup;
+	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.IBeadView;
+	import org.apache.flex.core.IParent;
+	import org.apache.flex.core.ISelectionModel;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.core.ValuesManager;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.html.beads.ListView;
+	
+	public class ChartView extends ListView implements IBeadView
+	{
+		public function ChartView()
+		{
+			super();
+		}
+		
+		private var _strand:IStrand;
+		private var _horizontalAxisGroup:IAxisGroup;
+		private var _verticalAxisGroup:IAxisGroup;
+		
+		/**
+		 *  @copy org.apache.flex.core.IBead#strand
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		override public function set strand(value:IStrand):void
+		{
+			super.strand = value;
+			
+			_strand = value;
+			IEventDispatcher(_strand).addEventListener("widthChanged", handleLocalChange);
+			IEventDispatcher(_strand).addEventListener("heightChanged",handleLocalChange);
+			
+			var listModel:ISelectionModel = value.getBeadByType(ISelectionModel) as ISelectionModel;
+			listModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
+			
+			var haxis:IHorizontalAxisBead = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
+			if (haxis && _horizontalAxisGroup == null) {
+				_horizontalAxisGroup = new (ValuesManager.valuesImpl.getValue(value, "iHorizontalAxisGroup")) as IAxisGroup;
+				haxis.axisGroup = _horizontalAxisGroup;
+				IParent(_strand).addElement(_horizontalAxisGroup);
+			}
+			
+			var vaxis:IVerticalAxisBead = _strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
+			if (vaxis && _verticalAxisGroup == null) {
+				_verticalAxisGroup = new (ValuesManager.valuesImpl.getValue(value, "iVerticalAxisGroup")) as IAxisGroup;
+				vaxis.axisGroup = _verticalAxisGroup;
+				IParent(_strand).addElement(_verticalAxisGroup);
+			}
+			
+			if (_strand.getBeadByType(IBeadLayout) == null)
+			{
+				var layout:IBeadLayout = new (ValuesManager.valuesImpl.getValue(_strand, "iBeadLayout")) as IBeadLayout;
+				_strand.addBead(layout);
+			}
+			
+			handleLocalChange(null);
+		}
+		
+		public function get horizontalAxisGroup():IAxisGroup
+		{
+			return _horizontalAxisGroup;
+		}
+		
+		public function get verticalAxisGroup():IAxisGroup
+		{
+			return _verticalAxisGroup;
+		}
+		
+		/**
+		 * @private
+		 */
+		override protected function dataProviderChangeHandler(event:Event):void
+		{
+			if (verticalAxisGroup) {
+				verticalAxisGroup.removeAllElements();
+			}
+			
+			if (horizontalAxisGroup) {
+				horizontalAxisGroup.removeAllElements();
+			}
+			
+			dataGroup.removeAllElements();
+		}
+		
+		/**
+		 * @private
+		 */
+		private function handleLocalChange(event:Event):void
+		{	
+			var widthAdjustment:Number = 0;
+			var heightAdjustment:Number = 0;
+			
+			var vaxis:IVerticalAxisBead = _strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
+			var haxis:IHorizontalAxisBead = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
+			
+			if (vaxis) {
+				widthAdjustment = vaxis.axisWidth;
+			}
+			
+			if (haxis) {
+				heightAdjustment = haxis.axisHeight;
+			}
+			
+			UIBase(dataGroup).x = widthAdjustment;
+			UIBase(dataGroup).y = 0;
+			UIBase(dataGroup).width = UIBase(dataGroup).width - widthAdjustment;
+			UIBase(dataGroup).height= UIBase(dataGroup).height - heightAdjustment;
+			
+			if (verticalAxisGroup) {
+				UIBase(verticalAxisGroup).x = 0;
+				UIBase(verticalAxisGroup).y = 0;
+				UIBase(verticalAxisGroup).width = widthAdjustment;
+				UIBase(verticalAxisGroup).height = UIBase(dataGroup).height;
+			}
+			
+			if (horizontalAxisGroup) {
+				UIBase(horizontalAxisGroup).x = widthAdjustment;
+				UIBase(horizontalAxisGroup).y = UIBase(dataGroup).height;
+				UIBase(horizontalAxisGroup).width = UIBase(dataGroup).width;
+				UIBase(horizontalAxisGroup).height = heightAdjustment;
+			}
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as
index dd9e76b..b65d7ac 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalCategoryAxisBead.as
@@ -19,15 +19,12 @@
 package org.apache.flex.charts.beads
 {
 	import org.apache.flex.charts.core.IHorizontalAxisBead;
-	import org.apache.flex.charts.core.IVerticalAxisBead;
 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.ISelectionModel;
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.core.UIBase;
-	import org.apache.flex.core.graphics.Path;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
-	import org.apache.flex.html.Label;
 	import org.apache.flex.html.beads.models.ArraySelectionModel;
 	
 	/**
@@ -144,37 +141,26 @@ package org.apache.flex.charts.beads
 			if (model.dataProvider is Array) items = model.dataProvider as Array;
 			else return;
 			
-			var yAxis:IVerticalAxisBead;
-			if (strand.getBeadByType(IVerticalAxisBead)) yAxis = strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
-			var yAxisOffset:Number = yAxis == null ? 0 : yAxis.axisWidth;
-			
-			var xpos:Number = yAxisOffset;
-			var xAxisHeightOffset:Number = axisHeight;
-			var useWidth:Number = UIBase(strand).width-yAxisOffset;
-			var originX:Number = xpos;
-			var originY:Number = UIBase(strand).height - xAxisHeightOffset;
+			var xpos:Number = 0;
+			var useWidth:Number = UIBase(axisGroup).width;
 		
 			// place the labels below the axis enough to account for the tick marks
-			var labelY:Number = UIBase(strand).height + 8;
+			var labelY:Number = 7;
 			var itemWidth:Number = (useWidth - gap*(items.length-1))/items.length;
 			
-			for(var i:int=0; i < items.length; i++) {				
-				var label:Label = new Label();
-				label.text = items[i][categoryField];
-				label.x = xpos;
-				label.y = labelY - xAxisHeightOffset;
-				
-				UIBase(strand).addElement(label);
+			for(var i:int=0; i < items.length; i++) 
+			{				
+				addTickLabel(items[i][categoryField], xpos + itemWidth/2, labelY, itemWidth, 0);
 				
 				// add a tick mark, too		
-				addTickMark(xpos + itemWidth/2 - originX, UIBase(strand).height - xAxisHeightOffset - originY, 0, 5);
+				addTickMark(xpos + itemWidth/2, 0, 0, 5);
 				
 				xpos += itemWidth + gap;
 			}
 			
 			// draw the axis and the tick marks
-			drawAxisPath(originX, originY, useWidth, 0);
-			drawTickPath(originX, originY);
+			drawAxisPath(0, 0, useWidth, 1);
+			drawTickPath(0, 1);
 		}
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as
index 432fec1..41a0666 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/HorizontalLinearAxisBead.as
@@ -20,15 +20,12 @@ package org.apache.flex.charts.beads
 {
 	import org.apache.flex.charts.core.IChart;
 	import org.apache.flex.charts.core.IHorizontalAxisBead;
-	import org.apache.flex.charts.core.IVerticalAxisBead;
 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.ISelectionModel;
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.core.UIBase;
-	import org.apache.flex.core.graphics.Path;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
-	import org.apache.flex.html.Label;
 	import org.apache.flex.html.beads.models.ArraySelectionModel;
 	
 	/**
@@ -186,18 +183,10 @@ package org.apache.flex.charts.beads
 			if (model.dataProvider is Array) items = model.dataProvider as Array;
 			else return;
 			
+			var xpos:Number = 0;
+			var useWidth:Number = UIBase(axisGroup).width;
 			var series:Array = IChart(strand).series;
 			
-			var yAxis:IVerticalAxisBead;
-			if (strand.getBeadByType(IVerticalAxisBead)) yAxis = strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
-			var yAxisOffset:Number = yAxis == null ? 0 : yAxis.axisWidth;
-			
-			var xpos:Number = yAxisOffset;
-			var xAxisHeightOffset:Number = axisHeight;
-			var useWidth:Number = UIBase(strand).width - yAxisOffset;
-			var originX:Number = xpos;
-			var originY:Number = UIBase(strand).height - xAxisHeightOffset;
-			
 			// determine minimum and maximum values, if needed
 			if (isNaN(minValue)) {
 				minValue = Number.MAX_VALUE;
@@ -222,25 +211,22 @@ package org.apache.flex.charts.beads
 			var tickValue:Number = minValue;
 			
 			// place the labels below the axis enough to account for the tick marks
-			var labelY:Number = UIBase(strand).height + 8;
+			var labelY:Number = 7;
 			
-			for(i=0; i < numTicks+1; i++) {				
-				var label:Label = new Label();
-				label.text = formatLabel(tickValue);
-				label.x = xpos - label.width/2;
-				label.y = labelY - xAxisHeightOffset;
-				UIBase(strand).addElement(label);
+			for(i=0; i < numTicks+1; i++) 
+			{	
+				addTickLabel(formatLabel(tickValue), xpos, labelY, tickSpacing, 0);
 				
 				// add a tick mark, too				
-				addTickMark(xpos - originX, UIBase(strand).height - xAxisHeightOffset - originY, 0, 5);
+				addTickMark(xpos, 0, 0, 5);
 				
 				xpos += tickSpacing;
 				tickValue += tickStep;
 			}
 
 			// draw the axis and tick marks
-			drawAxisPath(originX, originY, useWidth, 0);
-			drawTickPath(originX, originY);
+			drawAxisPath(0, 0, useWidth, 0);
+			drawTickPath(0, 1);
 		}
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as
index be405ad..f898f18 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalCategoryAxisBead.as
@@ -19,16 +19,13 @@
 package org.apache.flex.charts.beads
 {
 	import org.apache.flex.charts.core.IChart;
-	import org.apache.flex.charts.core.IHorizontalAxisBead;
 	import org.apache.flex.charts.core.IVerticalAxisBead;
 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.ISelectionModel;
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.core.UIBase;
-	import org.apache.flex.core.graphics.Path;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
-	import org.apache.flex.html.Label;
 	import org.apache.flex.html.beads.models.ArraySelectionModel;
 	
 	/**
@@ -148,38 +145,28 @@ package org.apache.flex.charts.beads
 			
 			var series:Array = IChart(strand).series;
 			
-			var xAxis:IHorizontalAxisBead;
-			if (strand.getBeadByType(IHorizontalAxisBead)) xAxis = strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
-			var xAxisOffset:Number = xAxis == null ? 0 : xAxis.axisHeight;
+			var useHeight:Number = UIBase(axisGroup).height;
+			var useWidth:Number  = UIBase(axisGroup).width;
+			var itemHeight:Number = (useHeight - gap*(items.length-1)) / items.length;
+			var xpos:Number = 0;
+			var ypos:Number = useHeight - itemHeight/2;
 			
-			var yAxisWidthOffset:Number = axisWidth;
-			var useHeight:Number = (UIBase(strand).height-xAxisOffset) / items.length;
-			var seriesHeight:Number = useHeight/series.length;
-			var xpos:Number = yAxisWidthOffset;
-			var ypos:Number = UIBase(strand).height - xAxisOffset - seriesHeight - gap;
-			var originX:Number = yAxisWidthOffset;
-			var originY:Number = 0;
+			var numTicks:Number = items.length;
+			var tickSpacing:Number = itemHeight + gap;
 			
-			// place the labels left of the axis enough to account for the tick marks
-			var labelX:Number = 0;
-			
-			for(var i:int=0; i < items.length; i++) {				
-				var label:Label = new Label();
-				label.text = items[i][categoryField];
-				label.x = 0;
-				label.y = (ypos + useHeight/2) - label.height/2;
-				label.width = yAxisWidthOffset;
-				UIBase(strand).addElement(label);
-			
-				// add a tick mark
-				addTickMark(0, ypos + useHeight/2 - originY, 5, 0);
+			for(var i:int=0; i < items.length; i++) 
+			{				
+				addTickLabel(items[i][categoryField], 0, ypos, 0, itemHeight);
+				
+				// add a tick mark, too.
+				addTickMark(useWidth-6, ypos, 5, 0);
 				
-				ypos -= useHeight;
+				ypos -= tickSpacing;
 			}
 
 			// draw the axis and tick marks
-			drawAxisPath(originX, originY, 0, UIBase(strand).height - xAxisOffset);
-			drawTickPath(originX-5, originY);
+			drawAxisPath(useWidth-1, 0, 0, useHeight);
+			drawTickPath(useWidth-6, 0);
 		}
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as
index aa98b89..cd3ad95 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/VerticalLinearAxisBead.as
@@ -19,16 +19,13 @@
 package org.apache.flex.charts.beads
 {
 	import org.apache.flex.charts.core.IChart;
-	import org.apache.flex.charts.core.IHorizontalAxisBead;
 	import org.apache.flex.charts.core.IVerticalAxisBead;
 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.ISelectionModel;
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.core.UIBase;
-	import org.apache.flex.core.graphics.Path;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
-	import org.apache.flex.html.Label;
 	import org.apache.flex.html.beads.models.ArraySelectionModel;
 	
 	/**
@@ -172,16 +169,10 @@ package org.apache.flex.charts.beads
 			
 			var series:Array = IChart(strand).series;
 			
-			var xAxis:IHorizontalAxisBead;
-			if (strand.getBeadByType(IHorizontalAxisBead)) xAxis = strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
-			var xAxisOffset:Number = xAxis == null ? 0 : xAxis.axisHeight;
-			
-			var yAxisWidthOffset:Number = axisWidth;
-			var useHeight:Number = UIBase(strand).height-xAxisOffset;
-			var xpos:Number = yAxisWidthOffset;
+			var useHeight:Number = UIBase(axisGroup).height;
+			var useWidth:Number  = UIBase(axisGroup).width;
+			var xpos:Number = 0;
 			var ypos:Number = useHeight;
-			var originX:Number = yAxisWidthOffset;
-			var originY:Number = 0;
 			
 			// determine minimum and maximum values, if needed
 			if (isNaN(minValue)) {
@@ -206,30 +197,23 @@ package org.apache.flex.charts.beads
 			var tickSpacing:Number = useHeight/numTicks;
 			var tickValue:Number = minValue;
 			
-			// adjust ypos to the first tick position
-			ypos = useHeight;// - tickSpacing;
-			
 			// place the labels below the axis enough to account for the tick marks
-			var labelY:Number = UIBase(strand).height + 8;
+			var labelY:Number = UIBase(axisGroup).height + 8;
 			
-			for(i=0; i < numTicks+1; i++) {				
-				var label:Label = new Label();
-				label.text = formatLabel(tickValue);
-				label.x = 0;
-				label.y = ypos - label.height/2;
-				UIBase(strand).addElement(label);
+			for(i=0; i < numTicks+1; i++) 
+			{				
+				addTickLabel(formatLabel(tickValue), 0, ypos, 0, tickSpacing);
 			
 				// add a tick mark, too.
-				//addTickMark(xpos - 5 - originX, ypos - originY, 5, 0);
-				addTickMark(0, ypos-originY, 5, 0);
+				addTickMark(useWidth-6, ypos, 5, 0);
 				
 				ypos -= tickSpacing;
 				tickValue += tickStep;
 			}
 			
 			// draw the axis and the tick marks
-			drawAxisPath(originX, originY, 0, useHeight);
-			drawTickPath(originX-5, originY);
+			drawAxisPath(useWidth-1, 0, 0, useHeight);
+			drawTickPath(useWidth-6, 0);
 			
 		}
 		

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/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 22181e6..e4b0aa1 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
@@ -24,6 +24,7 @@ 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.UIBase;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
 	
@@ -83,18 +84,15 @@ package org.apache.flex.charts.beads.layouts
 				return;
 			
 			var n:int = dp.length;
+			var useWidth:Number = UIBase(chartDataGroup).width;
+			var useHeight:Number = UIBase(chartDataGroup).height;
+			var itemHeight:Number =  (useHeight - gap*(dp.length-1))/dp.length;
+			var seriesHeight:Number = itemHeight/chart.series.length;
+			var ypos:Number = useHeight;
+			
 			var maxXValue:Number = 0;
 			var seriesMaxes:Array = [];
 			
-			var xAxisOffset:Number = horizontalAxisBead == null ? 0 : horizontalAxisBead.axisHeight;
-			var yAxisOffset:Number = verticalAxisBead == null ? 0 : verticalAxisBead.axisWidth;
-			
-			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 = chart.height - xAxisOffset - seriesHeight;
-			
 			for (var s:int = 0; s < chart.series.length; s++)
 			{
 				var bcs:BarSeries = chart.series[s] as BarSeries;
@@ -123,8 +121,8 @@ package org.apache.flex.charts.beads.layouts
 					var child:IChartItemRenderer = chartDataGroup.getItemRendererForSeriesAtIndex(bcs,i);
 					xValue = Number(data[bcs.xField]);
 					
-					child.x = yAxisOffset;
-					child.y = ypos;
+					child.x = 0;
+					child.y = ypos - seriesHeight;
 					child.width = xValue*seriesMaxes[s].scaleFactor;
 					child.height = seriesHeight;
 					ypos -= seriesHeight;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/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 5958614..d7a4784 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,7 +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.core.UIBase;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
 	
@@ -73,13 +73,10 @@ package org.apache.flex.charts.beads.layouts
 			if (!dp)
 				return;
 			
-			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 = chart.width-yAxisOffset;;
-			var useHeight:Number = chart.height - xAxisOffset;
+			var n:int = dp.length;
+			var xpos:Number = 0;
+			var useWidth:Number = UIBase(chartDataGroup).width;
+			var useHeight:Number = UIBase(chartDataGroup).height;
 			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/32cd93b6/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 1ba895b..acf33b8 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
@@ -25,6 +25,7 @@ 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.UIBase;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
 	
@@ -54,12 +55,12 @@ package org.apache.flex.charts.beads.layouts
 				return;
 			
 			var n:int = dp.length;
-			var xAxisOffset:Number = horizontalAxisBead == null ? 0 : horizontalAxisBead.axisHeight;
-			var yAxisOffset:Number = verticalAxisBead == null ? 0 : verticalAxisBead.axisWidth;
+			var xAxisOffset:Number = 0;
+			var yAxisOffset:Number = 0;
 			
 			var xpos:Number = yAxisOffset;
-			var useWidth:Number = chart.width-yAxisOffset;;
-			var useHeight:Number = chart.height - xAxisOffset;
+			var useWidth:Number = UIBase(chartDataGroup).width-yAxisOffset;;
+			var useHeight:Number = UIBase(chartDataGroup).height - xAxisOffset;
 			var itemWidth:Number =  useWidth/dp.length;
 			
 			var maxYValue:Number = 0;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/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 a126e8c..54769e5 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
@@ -25,6 +25,7 @@ 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.UIBase;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
 	
@@ -54,13 +55,13 @@ package org.apache.flex.charts.beads.layouts
 				return;
 			
 			var n:int = dp.length;
-			var xAxisOffset:Number = horizontalAxisBead == null ? 0 : horizontalAxisBead.axisHeight;
-			var yAxisOffset:Number = verticalAxisBead == null ? 0 : verticalAxisBead.axisWidth;
+			var xAxisOffset:Number = 0;
+			var yAxisOffset:Number = 0;
 			
 			var xpos:Number = yAxisOffset;
 			var ypos:Number = xAxisOffset;
-			var useWidth:Number = chart.width - yAxisOffset;;
-			var useHeight:Number = chart.height - xAxisOffset;
+			var useWidth:Number = UIBase(chartDataGroup).width - yAxisOffset;;
+			var useHeight:Number = UIBase(chartDataGroup).height - xAxisOffset;
 			var itemWidth:Number =  useWidth/dp.length;
 			
 			var seriesMaxes:Array = [];

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/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 08fe213..40bdcf4 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
@@ -115,6 +115,10 @@ package org.apache.flex.charts.beads.layouts
 					end = start + (360.0 * obj.percent);
 					var arc:Number = 360.0 * obj.percent;
 					
+					child.x = 0;
+					child.y = 0;
+					child.width = useWidth;
+					child.height = useHeight;
 					child.centerX = centerX;
 					child.centerY = centerY;
 					child.startAngle = start*Math.PI/180;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/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 bfb1f84..2fafb29 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
@@ -24,6 +24,7 @@ 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.UIBase;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
 	
@@ -85,14 +86,12 @@ package org.apache.flex.charts.beads.layouts
 			var maxXValue:Number = 0;
 			var seriesMaxes:Array = [];
 			
-			var xAxisOffset:Number = horizontalAxisBead == null ? 0 : horizontalAxisBead.axisHeight;
-			var yAxisOffset:Number = verticalAxisBead == null ? 0 : verticalAxisBead.axisWidth;
-			
-			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 = chart.height - xAxisOffset - seriesHeight;
+			var useWidth:Number = UIBase(chartDataGroup).width;
+			var useHeight:Number = UIBase(chartDataGroup).height;
+			var itemHeight:Number = (useHeight - gap*(dp.length-1))/n;
+			var seriesHeight:Number = itemHeight;
+			var xpos:Number = 0;
+			var ypos:Number = useHeight;
 			
 			var barValues:Array = [];
 			var maxValue:Number = 0;
@@ -121,7 +120,8 @@ package org.apache.flex.charts.beads.layouts
 			for (i=0; i < n; i++)
 			{
 				data = dp[i];
-				xpos = yAxisOffset;
+				
+				xpos = 0;
 				
 				for (s=0; s < chart.series.length; s++)
 				{
@@ -132,13 +132,13 @@ package org.apache.flex.charts.beads.layouts
 					
 					child.x = xpos;
 					child.width = xValue*scaleFactor;
-					child.y = ypos;
+					child.y = ypos - seriesHeight;
 					child.height = seriesHeight;
 					
 					xpos += xValue*scaleFactor;
 				}
 				
-				ypos -= gap + seriesHeight;
+				ypos -= (itemHeight + gap);
 			}
 			
 			IEventDispatcher(chart).dispatchEvent(new Event("layoutComplete"));

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/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 5348bb7..b09ff9f 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
@@ -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.UIBase;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
 	
@@ -81,14 +82,12 @@ package org.apache.flex.charts.beads.layouts
 				return;
 			
 			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 ypos:Number = 0;
-			var useWidth:Number = chart.width-yAxisOffset;
-			var useHeight:Number = chart.height - xAxisOffset;
+			var useWidth:Number = UIBase(chartDataGroup).width;
+			var useHeight:Number = UIBase(chartDataGroup).height;
 			var itemWidth:Number = (useWidth - gap*(dp.length-1))/dp.length;
+			var seriesWidth:Number = itemWidth;
+			var xpos:Number = 0;
+			var ypos:Number = 0;
 			
 			var maxYValue:Number = 0;
 			
@@ -125,12 +124,12 @@ package org.apache.flex.charts.beads.layouts
 					bcs = chart.series[s] as ColumnSeries;
 
 					var child:IChartItemRenderer = chartDataGroup.getItemRendererForSeriesAtIndex(bcs,i);
-					yValue = Number(data[bcs.yField]);
+					yValue = Math.floor(Number(data[bcs.yField]));
 					
 					child.x = xpos;
 					child.width = itemWidth;
-					child.y = ypos - yValue*scaleFactor;
-					child.height = yValue*scaleFactor;
+					child.y = ypos - Math.ceil(yValue*scaleFactor);
+					child.height = Math.floor(yValue*scaleFactor);
 					
 					ypos = child.y;
 				}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGBoxItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGBoxItemRenderer.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGBoxItemRenderer.as
new file mode 100644
index 0000000..5e4f1e5
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGBoxItemRenderer.as
@@ -0,0 +1,207 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.optimized
+{
+	import org.apache.flex.charts.core.IChartItemRenderer;
+	import org.apache.flex.charts.core.IChartSeries;
+	import org.apache.flex.core.graphics.GraphicsContainer;
+	import org.apache.flex.core.graphics.IFill;
+	import org.apache.flex.core.graphics.IStroke;
+	import org.apache.flex.core.graphics.SolidColor;
+	import org.apache.flex.core.graphics.SolidColorStroke;
+	import org.apache.flex.html.supportClasses.DataItemRenderer;
+	
+	/**
+	 *  The SVGBoxItemRenderer draws its graphics directly into a SVGChartDataGroup
+	 *  (GraphicsContainer).
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class SVGBoxItemRenderer extends DataItemRenderer implements IChartItemRenderer
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function SVGBoxItemRenderer()
+		{
+			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 _yField:String = "y";
+		
+		/**
+		 *  The name of the field containing the value for the Y axis.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get yField():String
+		{
+			return _yField;
+		}
+		public function set yField(value:String):void
+		{
+			_yField = value;
+		}
+		
+		private var _xField:String = "x";
+		
+		/**
+		 *  The name of the field containing the value for the X axis.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get xField():String
+		{
+			return _xField;
+		}
+		public function set xField(value:String):void
+		{
+			_xField = value;
+		}
+		
+		private var _fill:IFill;
+		
+		/**
+		 *  The color used to fill the interior of the box.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get fill():IFill
+		{
+			return _fill;
+		}
+		public function set fill(value:IFill):void
+		{
+			_fill = value;
+		}
+		
+		private var _stroke:IStroke;
+		
+		/**
+		 *  The outline of the box.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get stroke():IStroke
+		{
+			return _stroke;
+		}
+		public function set stroke(value:IStroke):void
+		{
+			_stroke = value;
+		}
+		
+		/**
+		 *  @copy org.apache.flex.supportClasses.UIItemRendererBase#data
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		override public function set data(value:Object):void
+		{
+			super.data = value;	
+			drawBar();
+		}
+		
+		/**
+		 *  @copy org.apache.flex.core.UIBase#width
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		override public function set width(value:Number):void
+		{
+			super.width = value;
+			drawBar();
+		}
+		
+		/**
+		 *  @copy org.apache.flex.core.UIBase#height
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		override public function set height(value:Number):void
+		{
+			super.height = value;
+			drawBar();
+		}
+		
+		/**
+		 *  @private
+		 */
+		protected function drawBar():void
+		{
+			if ((this.width > 0) && (this.height > 0))
+			{				
+				var hsdg:SVGChartDataGroup = this.itemRendererParent as SVGChartDataGroup;
+				
+				hsdg.fill = fill;
+				hsdg.stroke = stroke;
+				hsdg.drawRect(this.x, this.y, this.width, this.height);
+			}
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGChartAxisGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGChartAxisGroup.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGChartAxisGroup.as
new file mode 100644
index 0000000..529de40
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGChartAxisGroup.as
@@ -0,0 +1,142 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.optimized
+{
+	import org.apache.flex.charts.core.IAxisGroup;
+	import org.apache.flex.core.graphics.GraphicsContainer;
+	import org.apache.flex.core.graphics.IFill;
+	import org.apache.flex.core.graphics.IStroke;
+	
+	/**
+	 * The SVGChartAxisGroup provides a GraphicsContainer whose drawing functions
+	 * can be used to display a chart's axis graphics without resorting to the
+	 * creation of extra objects.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class SVGChartAxisGroup extends GraphicsContainer implements IAxisGroup
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function SVGChartAxisGroup()
+		{
+			super();
+		}
+		
+		/**
+		 * @private
+		 */
+		override public function addedToParent():void
+		{
+			super.addedToParent();
+		}
+		
+		/**
+		 * Draws a horizontal tick label centered in the box at the given position.
+		 * 
+		 * @param text The label to display.
+		 * @param xpos The x position of the label's upper left corner.
+		 * @param ypos The y position of the label's upper left corner.
+		 * @param boxWith The size of the box into which the label should be drawn.
+		 * @param boxHeight The size of the box into which the label should be drawn.
+		 * @param tickFill A fill to use to display the label.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function drawHorizontalTickLabel( text:String, xpos:Number, ypos:Number, boxWidth:Number, boxHeight:Number, tickFill:IFill ):void
+		{
+			fill = tickFill;
+			drawText(text, xpos-boxWidth/2, ypos);
+		}
+		
+		/**
+		 * Draws a vertical tick label centered in the box at the given position.
+		 * 
+		 * @param text The label to display.
+		 * @param xpos The x position of the label's upper left corner.
+		 * @param ypos The y position of the label's upper left corner.
+		 * @param boxWith The size of the box into which the label should be drawn.
+		 * @param boxHeight The size of the box into which the label should be drawn.
+		 * @param tickFill A fill to use to display the label.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function drawVerticalTickLabel( text:String, xpos:Number, ypos:Number, boxWidth:Number, boxHeight:Number, tickFill:IFill ):void
+		{
+			fill = tickFill;
+			drawText(text, xpos, ypos-9);
+		}
+		
+		/**
+		 * Draws an set of tick marks are determined in the marks path.
+		 * 
+		 * @param originX The upper left corner of the space into which the tick marks are drawn.
+		 * @param originY The upper left corner of the space into which the tick marks are drawn.
+		 * @param width The size of the box into which the tick marks are drawn.
+		 * @param height The size of the box into which the tick marks are drawn.
+		 * @param tickStroke The stroke to use to display the tick marks.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function drawTickMarks( originX:Number, originY:Number, width:Number, height:Number, marks:String, tickStroke:IStroke ):void
+		{
+			stroke = tickStroke;
+			drawPath(marks);
+		}
+		
+		/**
+		 * Draws the axis line at the given position.
+		 * 
+		 * @param originX The upper left corner of the space into which the axis line is drawn.
+		 * @param originY The upper left corner of the space into which the axis line is drawn.
+		 * @param width The size of the box into which the line is drawn.
+		 * @param height The size of the box into which the line is drawn.
+		 * @param lineStroke The stroke to use to display the line.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function drawAxisLine( originX:Number, originY:Number, width:Number, height:Number, lineStroke:IStroke ):void
+		{
+			stroke = lineStroke;
+			var pathLine:String = "M " + String(originX) + " " + String(originY) + " l "+String(width)+" "+String(height);
+			drawPath(pathLine);
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGChartDataGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGChartDataGroup.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGChartDataGroup.as
new file mode 100644
index 0000000..60e43cc
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGChartDataGroup.as
@@ -0,0 +1,158 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.optimized
+{
+	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.IContentView;
+	import org.apache.flex.core.IItemRenderer;
+	import org.apache.flex.core.IItemRendererParent;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.core.graphics.GraphicsContainer;
+	import org.apache.flex.events.Event;
+	
+	/**
+	 *  The SVGChartDataGroup serves as the drawing canvas for SVG itemRenderers. Rather than having
+	 *  individual itemRenderer objects in the display list, this class provides a canvas where the
+	 *  itemRenderers can draw directly using the flex.core.graphics package.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class SVGChartDataGroup extends GraphicsContainer implements IItemRendererParent, IContentView, IChartDataGroup
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function SVGChartDataGroup()
+		{
+			super();
+			
+			_children = new Array();
+						
+			addEventListener("widthChanged", resizeContainer);
+			addEventListener("heightChanged", resizeContainer);
+		}
+		
+		private var _children:Array;
+		
+		/**
+		 *  @copy org.apache.flex.core.IItemRendererParent#getItemRendererForIndex()
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function getItemRendererForIndex(index:int):IItemRenderer
+		{
+			if (index < 0 || index >= _children.length) return null;
+			return _children[index] as IItemRenderer;
+		}
+		
+		/**
+		 *  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
+		{
+			var n:int = _children.length;
+			for(var i:int=0; i < n; i++)
+			{
+				var child:IChartItemRenderer = _children[i] as IChartItemRenderer;
+				if (child && child.series == series) {
+					if (index == 0) return child;
+					--index;
+				}
+			}
+			
+			return null;
+		}
+		
+		/**
+		 *  @copy org.apache.flex.core.IItemRendererParent#removeAllElements()
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		override public function removeAllElements():void
+		{
+			super.removeAllElements();
+			_children = new Array();
+		}
+		
+		/**
+		 *  Overrides the addElement function to set the element into an internal
+		 *  list.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		override public function addElement(value:Object, dispatchEvent:Boolean = true):void
+		{
+			_children.push(value);
+			
+			var base:UIBase = value as UIBase;
+			base.addedToParent();
+		}
+		
+		/**
+		 *  Overrides the addElementAt function to set the element into an internal
+		 *  list.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		override public function addElementAt(value:Object, index:int, dispatchEvent:Boolean = true):void
+		{
+			if (index >= _children.length) _children.push(value);
+			else _children.splice(index, 0, value);
+			
+			var base:UIBase = value as UIBase;
+			base.addedToParent();
+		}
+		
+		/**
+		 *  @private
+		 */
+		private function resizeContainer(event:Event) : void
+		{
+			// might need to do something with this
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGLineSegmentItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGLineSegmentItemRenderer.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGLineSegmentItemRenderer.as
new file mode 100644
index 0000000..d92a0ed
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGLineSegmentItemRenderer.as
@@ -0,0 +1,201 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.optimized
+{
+	import org.apache.flex.charts.core.IChartSeries;
+	import org.apache.flex.core.graphics.GraphicsContainer;
+	import org.apache.flex.core.graphics.IStroke;
+	import org.apache.flex.core.graphics.Path;
+	import org.apache.flex.core.graphics.SolidColorStroke;
+	import org.apache.flex.html.supportClasses.DataItemRenderer;
+	import org.apache.flex.charts.supportClasses.ILineSegmentItemRenderer;
+	
+	/**
+	 *  The SVGLineSegmentItemRenderer draws its graphics directly into a SVGChartDataGroup (a
+	 *  GraphicsContainer).
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class SVGLineSegmentItemRenderer extends DataItemRenderer implements ILineSegmentItemRenderer
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function SVGLineSegmentItemRenderer()
+		{
+			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;
+		
+		/**
+		 *  The points of the vertices. 
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get points():Array
+		{
+			return _points;
+		}
+		public function set points(value:Array):void
+		{
+			_points = value;
+			drawLine();
+		}
+		
+		private var _stroke:IStroke;
+		
+		public function get stroke():IStroke
+		{
+			return _stroke;
+		}
+		public function set stroke(value:IStroke):void
+		{
+			_stroke = value;
+			drawLine();
+		}
+		
+		/**
+		 *  @copy org.apache.flex.supportClasses.UIItemRendererBase#data
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		override public function set data(value:Object):void
+		{
+			super.data = value;	
+		}
+		
+		/**
+		 *  The name of the field containing the value for the Y axis. This is not implemented by this class.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get yField():String
+		{
+			return null;
+		}
+		public function set yField(value:String):void
+		{
+		}
+		
+		/**
+		 *  The name of the field containing the value for the X axis. This is not implemented by this class.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get xField():String
+		{
+			return null;
+		}
+		public function set xField(value:String):void
+		{
+		}
+		
+		private var _fillColor:uint;
+		
+		/**
+		 *  The color used to fill the interior of the box.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get fillColor():uint
+		{
+			return _fillColor;
+		}
+		public function set fillColor(value:uint):void
+		{
+			_fillColor = value;
+		}
+		
+		/**
+		 *  @private
+		 */
+		protected function drawLine():void
+		{			
+			if (points != null)
+			{
+				var graphicsContainer:GraphicsContainer = this.itemRendererParent as GraphicsContainer;
+				
+				if (stroke == null) {
+					var solidColorStroke:SolidColorStroke = new SolidColorStroke();
+					solidColorStroke.color = 0x000088;
+					solidColorStroke.weight = 1;
+					solidColorStroke.alpha = 1;
+					_stroke = solidColorStroke;
+				}
+				
+				graphicsContainer.stroke = stroke;
+				graphicsContainer.fill = null;
+				
+				var pathString:String = "";
+				
+				for (var i:int=0; i < points.length; i++) {
+					var point:Object = points[i];
+					if (i == 0) pathString += "M "+point.x+" "+point.y+" ";
+					else pathString += "L "+point.x+" "+point.y+" ";
+				}
+				
+				graphicsContainer.drawPath(pathString);
+			}
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGWedgeItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGWedgeItemRenderer.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGWedgeItemRenderer.as
new file mode 100644
index 0000000..03e0195
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/optimized/SVGWedgeItemRenderer.as
@@ -0,0 +1,281 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.optimized
+{
+	import org.apache.flex.charts.core.IChartSeries;
+	import org.apache.flex.core.graphics.GraphicsContainer;
+	import org.apache.flex.core.graphics.IFill;
+	import org.apache.flex.core.graphics.IStroke;
+	import org.apache.flex.core.graphics.Path;
+	import org.apache.flex.html.supportClasses.DataItemRenderer;
+	import org.apache.flex.charts.supportClasses.IWedgeItemRenderer;
+	
+	/**
+	 *  The SVGWedgeItemRenderer draws its graphics directly into a SVGChartDataGroup
+	 *  (a GraphicsContainer).
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class SVGWedgeItemRenderer extends DataItemRenderer implements IWedgeItemRenderer
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function SVGWedgeItemRenderer()
+		{
+			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;
+		
+		/**
+		 *  The X coordinate of the center of the pie. 
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get centerX():Number
+		{
+			return _centerX;
+		}
+		public function set centerX(value:Number):void
+		{
+			_centerX = value;
+			drawWedgeInternal();
+		}
+		
+		private var _centerY:Number;
+		
+		/**
+		 *  The Y coordinate of the center of the pie. 
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get centerY():Number
+		{
+			return _centerY;
+		}
+		public function set centerY(value:Number):void
+		{
+			_centerY = value;
+			drawWedgeInternal();
+		}
+		
+		private var _startAngle:Number;
+		
+		/**
+		 *  The starting angle (radians) of the wedge. 
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get startAngle():Number
+		{
+			return _startAngle;
+		}
+		public function set startAngle(value:Number):void
+		{
+			_startAngle = value;
+			drawWedgeInternal();
+		}
+		
+		private var _arc:Number;
+		
+		/**
+		 *  The sweep (radians) of the wedge, relative to the startAngle. 
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get arc():Number
+		{
+			return _arc;
+		}
+		public function set arc(value:Number):void
+		{
+			_arc = value;
+			drawWedgeInternal();
+		}
+		
+		private var _radius:Number;
+		
+		/**
+		 *  The radius of the pie. 
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get radius():Number
+		{
+			return _radius;
+		}
+		public function set radius(value:Number):void
+		{
+			_radius = value;
+			drawWedgeInternal();
+		}
+		
+		private var _fill:IFill;
+		
+		/**
+		 *  The color used to fill the interior of the box.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get fill():IFill
+		{
+			return _fill;
+		}
+		public function set fill(value:IFill):void
+		{
+			_fill = value;
+		}
+		
+		private var _stroke:IStroke;
+		
+		/**
+		 *  The outline of the box.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get stroke():IStroke
+		{
+			return _stroke;
+		}
+		public function set stroke(value:IStroke):void
+		{
+			_stroke = value;
+		}
+		
+		/**
+		 * @private
+		 */
+		private function drawWedgeInternal():void
+		{
+			if ( !isNaN(centerX) && !isNaN(centerY) && !isNaN(startAngle) && !isNaN(arc) && !isNaN(radius) ) {
+				drawWedge(centerX, centerY, startAngle, arc, radius, radius, false);
+			}
+		}
+		
+		/**
+		 * @private
+		 * 
+		 * Draw a wedge of a circle
+		 * @param graphics      the graphics object to draw into
+		 * @param x             the x center of the circle
+		 * @param y             the y center of the circle
+		 * @param startAngle    start angle (radians)
+		 * @param arc           sweep angle (radians)
+		 * @param radius        radius of the circle
+		 * @param yRadius       vertical radius (or radius if none given)
+		 * @param continueFlag  if true, uses a moveTo call to start drawing at the start point of the circle; else continues drawing using only lineTo and curveTo
+		 * 
+		 */			
+		public function drawWedge(x:Number, y:Number,
+								  startAngle:Number, arc:Number,
+								  radius:Number, yRadius:Number = NaN,
+								  continueFlag:Boolean = false):void
+		{			
+			var graphicsContainer:GraphicsContainer = this.itemRendererParent as GraphicsContainer;
+			
+			var x1:Number = x + radius * Math.cos(startAngle);
+			var y1:Number = y + radius * Math.sin(startAngle);
+			var x2:Number = x + radius * Math.cos(startAngle + arc);
+			var y2:Number = y + radius * Math.sin(startAngle + arc);
+			
+			var pathString:String = 'M' + x + ' ' + y + ' L' + x1 + ' ' + y1 + ' A' + radius + ' ' + radius +
+				' 0 0 1 ' + x2 + ' ' + y2 + ' z';
+			
+			graphicsContainer.fill = fill;
+			graphicsContainer.stroke = stroke;
+			graphicsContainer.drawPath(pathString);
+		}
+		
+		/*
+		* Ignored by WedgeItemRenderer
+		*/
+		
+		/**
+		 * @private
+		 */
+		public function get xField():String
+		{
+			return null;
+		}
+		public function set xField(value:String):void
+		{
+		}
+		
+		/**
+		 * @private
+		 */
+		public function get yField():String
+		{
+			return null;
+		}
+		public function set yField(value:String):void
+		{
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/32cd93b6/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGBoxItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGBoxItemRenderer.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGBoxItemRenderer.as
deleted file mode 100644
index a85b554..0000000
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGBoxItemRenderer.as
+++ /dev/null
@@ -1,207 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.supportClasses.optimized
-{
-	import org.apache.flex.charts.core.IChartItemRenderer;
-	import org.apache.flex.charts.core.IChartSeries;
-	import org.apache.flex.core.graphics.GraphicsContainer;
-	import org.apache.flex.core.graphics.IFill;
-	import org.apache.flex.core.graphics.IStroke;
-	import org.apache.flex.core.graphics.SolidColor;
-	import org.apache.flex.core.graphics.SolidColorStroke;
-	import org.apache.flex.html.supportClasses.DataItemRenderer;
-	
-	/**
-	 *  The SVGBoxItemRenderer draws its graphics directly into a SVGChartDataGroup
-	 *  (GraphicsContainer).
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
-	 */
-	public class SVGBoxItemRenderer extends DataItemRenderer implements IChartItemRenderer
-	{
-		/**
-		 *  constructor.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function SVGBoxItemRenderer()
-		{
-			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 _yField:String = "y";
-		
-		/**
-		 *  The name of the field containing the value for the Y axis.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get yField():String
-		{
-			return _yField;
-		}
-		public function set yField(value:String):void
-		{
-			_yField = value;
-		}
-		
-		private var _xField:String = "x";
-		
-		/**
-		 *  The name of the field containing the value for the X axis.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get xField():String
-		{
-			return _xField;
-		}
-		public function set xField(value:String):void
-		{
-			_xField = value;
-		}
-		
-		private var _fill:IFill;
-		
-		/**
-		 *  The color used to fill the interior of the box.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get fill():IFill
-		{
-			return _fill;
-		}
-		public function set fill(value:IFill):void
-		{
-			_fill = value;
-		}
-		
-		private var _stroke:IStroke;
-		
-		/**
-		 *  The outline of the box.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get stroke():IStroke
-		{
-			return _stroke;
-		}
-		public function set stroke(value:IStroke):void
-		{
-			_stroke = value;
-		}
-		
-		/**
-		 *  @copy org.apache.flex.supportClasses.UIItemRendererBase#data
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		override public function set data(value:Object):void
-		{
-			super.data = value;	
-			drawBar();
-		}
-		
-		/**
-		 *  @copy org.apache.flex.core.UIBase#width
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		override public function set width(value:Number):void
-		{
-			super.width = value;
-			drawBar();
-		}
-		
-		/**
-		 *  @copy org.apache.flex.core.UIBase#height
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		override public function set height(value:Number):void
-		{
-			super.height = value;
-			drawBar();
-		}
-		
-		/**
-		 *  @private
-		 */
-		protected function drawBar():void
-		{
-			if ((this.width > 0) && (this.height > 0))
-			{				
-				var hsdg:SVGChartDataGroup = this.itemRendererParent as SVGChartDataGroup;
-				
-				hsdg.fill = fill;
-				hsdg.stroke = stroke;
-				hsdg.drawRect(this.x, this.y, this.width, this.height);
-			}
-		}
-	}
-}
\ No newline at end of file