You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pe...@apache.org on 2014/10/24 21:39:45 UTC

[1/3] git commit: [flex-asjs] [refs/heads/develop] - Modified ChartBaseLayout to use IChartDataGroup interface rather than concrete class.

Repository: flex-asjs
Updated Branches:
  refs/heads/develop b48e30e57 -> d0bccb850


Modified ChartBaseLayout to use IChartDataGroup interface rather than concrete class.


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

Branch: refs/heads/develop
Commit: ecd88a1ae7483d253fa25cc5b02300af8387ae58
Parents: b48e30e
Author: Peter Ent <pe...@apache.org>
Authored: Fri Oct 24 15:37:51 2014 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Fri Oct 24 15:37:51 2014 -0400

----------------------------------------------------------------------
 .../org/apache/flex/charts/beads/layouts/ChartBaseLayout.as  | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ecd88a1a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as
index 08dd72a..ef4e9b8 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as
@@ -18,8 +18,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.charts.beads.layouts
 {
-	import org.apache.flex.charts.supportClasses.ChartDataGroup;
 	import org.apache.flex.charts.core.ChartBase;
+	import org.apache.flex.charts.core.IChartDataGroup;
 	import org.apache.flex.charts.core.IHorizontalAxisBead;
 	import org.apache.flex.charts.core.IVerticalAxisBead;
 	import org.apache.flex.core.IBeadLayout;
@@ -102,7 +102,7 @@ package org.apache.flex.charts.beads.layouts
 			return _yAxis;
 		}
 		
-		private var _chartDataGroup:ChartDataGroup;
+		private var _chartDataGroup:IChartDataGroup;
 		
 		/**
 		 *  Returns the object into which the chart elements are drawn or added. The ChartDataGroup implements
@@ -113,11 +113,11 @@ package org.apache.flex.charts.beads.layouts
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.0
 		 */
-		public function get chartDataGroup():ChartDataGroup
+		public function get chartDataGroup():IChartDataGroup
 		{
 			if (_chartDataGroup == null) {
 				var layoutParent:ILayoutParent = chart.getBeadByType(ILayoutParent) as ILayoutParent;
-				_chartDataGroup = layoutParent.contentView as ChartDataGroup;
+				_chartDataGroup = layoutParent.contentView as IChartDataGroup;
 			}
 			return _chartDataGroup;
 		}


[2/3] git commit: [flex-asjs] [refs/heads/develop] - Added graphics-optimized versions of itemRenderers to use SVG more efficiently.

Posted by pe...@apache.org.
Added graphics-optimized versions of itemRenderers to use SVG more efficiently.


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

Branch: refs/heads/develop
Commit: 047b3a372055168763668de3b2bca48f361c86f3
Parents: ecd88a1
Author: Peter Ent <pe...@apache.org>
Authored: Fri Oct 24 15:38:42 2014 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Fri Oct 24 15:38:42 2014 -0400

----------------------------------------------------------------------
 .../as/projects/FlexJSJX/basic-manifest.xml     |   5 +
 .../as/projects/FlexJSJX/src/FlexJSJXClasses.as |   5 +
 .../optimized/SVGBoxItemRenderer.as             | 207 ++++++++++++++
 .../optimized/SVGChartDataGroup.as              | 157 +++++++++++
 .../optimized/SVGLineSegmentItemRenderer.as     | 201 +++++++++++++
 .../optimized/SVGWedgeItemRenderer.as           | 281 +++++++++++++++++++
 .../src/org/apache/flex/core/IContentView.js    | 103 +++++++
 7 files changed, 959 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/047b3a37/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 f35189b..bab814f 100644
--- a/frameworks/as/projects/FlexJSJX/basic-manifest.xml
+++ b/frameworks/as/projects/FlexJSJX/basic-manifest.xml
@@ -52,6 +52,11 @@
     <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="Fade" class="org.apache.flex.effects.Fade"/>
     <component id="Move" class="org.apache.flex.effects.Move"/>
     <component id="Resize" class="org.apache.flex.effects.Resize"/>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/047b3a37/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 19a1fcb..2c8c944 100644
--- a/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
+++ b/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
@@ -27,6 +27,7 @@ package
  */
 internal class FlexJSJXClasses
 {
+	
 	import org.apache.flex.charts.beads.ChartItemRendererFactory; ChartItemRendererFactory;
 	import org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData; DataItemRendererFactoryForSeriesData;
 	import org.apache.flex.charts.beads.HorizontalCategoryAxisBead; HorizontalCategoryAxisBead;
@@ -46,6 +47,10 @@ 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.effects.Tween; Tween;
 	import org.apache.flex.effects.Move; Move;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/047b3a37/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
new file mode 100644
index 0000000..a85b554
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/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.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

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/047b3a37/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGChartDataGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGChartDataGroup.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGChartDataGroup.as
new file mode 100644
index 0000000..c1a48d1
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGChartDataGroup.as
@@ -0,0 +1,157 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.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
+		 */
+		public function removeAllElements():void
+		{
+			_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):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):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/047b3a37/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGLineSegmentItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGLineSegmentItemRenderer.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGLineSegmentItemRenderer.as
new file mode 100644
index 0000000..7f030d2
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/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.supportClasses.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/047b3a37/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGWedgeItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGWedgeItemRenderer.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/optimized/SVGWedgeItemRenderer.as
new file mode 100644
index 0000000..1fc58a6
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/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.supportClasses.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/047b3a37/frameworks/js/FlexJS/src/org/apache/flex/core/IContentView.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/IContentView.js b/frameworks/js/FlexJS/src/org/apache/flex/core/IContentView.js
new file mode 100644
index 0000000..d326978
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/IContentView.js
@@ -0,0 +1,103 @@
+/**
+ * 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.
+ */
+
+/**
+ * org.apache.flex.core.IContentView
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org.apache.flex.core.IContentView');
+
+
+
+/**
+ * @interface
+ */
+org.apache.flex.core.IContentView = function() {
+};
+
+
+/**
+ * @return {number} x position.
+ */
+org.apache.flex.core.IContentView.prototype.get_x = function() {};
+
+
+/**
+ * @param {number} value x position.
+ */
+org.apache.flex.core.IContentView.prototype.set_x = function(value) {};
+
+
+/**
+ * @return {number} y position.
+ */
+org.apache.flex.core.IContentView.prototype.get_y = function() {};
+
+
+/**
+ * @param {number} value y position.
+ */
+org.apache.flex.core.IContentView.prototype.set_y = function(value) {};
+
+
+/**
+ * @return {number} Component width.
+ */
+org.apache.flex.core.IContentView.prototype.get_width = function() {};
+
+
+/**
+ * @param {number} value Component width.
+ */
+org.apache.flex.core.IContentView.prototype.set_width = function(value) {};
+
+
+/**
+ * @return {number} Component height.
+ */
+org.apache.flex.core.IContentView.prototype.get_height = function() {};
+
+
+/**
+ * @param {number} value Component height.
+ */
+org.apache.flex.core.IContentView.prototype.set_height = function(value) {};
+
+
+/**
+ * Adds a new element to component.
+ * @param {Object} value The child element being added.
+ */
+org.apache.flex.core.IContentView.prototype.addElement = function(value) {};
+
+
+/**
+ * Removes all of the component's children.
+ * @return {void}
+ */
+org.apache.flex.core.IContentView.prototype.removeAllElements = function() {};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.core.IContentView.prototype.FLEXJS_CLASS_INFO = {
+  names: [{ name: 'IContentView', qName: 'org.apache.flex.core.IContentView'}]
+};


[3/3] git commit: [flex-asjs] [refs/heads/develop] - Modified the JavaScript GraphicsContainer to set the width and height attribute on the element so Safari will renderer it correctly.

Posted by pe...@apache.org.
Modified the JavaScript GraphicsContainer to set the width and height attribute on the <svg> element so Safari will renderer it correctly.


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

Branch: refs/heads/develop
Commit: d0bccb850ea7b484a34bbfcf93c6b190bf3df6ed
Parents: 047b3a3
Author: Peter Ent <pe...@apache.org>
Authored: Fri Oct 24 15:39:31 2014 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Fri Oct 24 15:39:31 2014 -0400

----------------------------------------------------------------------
 .../flex/core/graphics/GraphicsContainer.js     | 34 ++++++++++++++++++++
 1 file changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0bccb85/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/GraphicsContainer.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/GraphicsContainer.js b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/GraphicsContainer.js
index 3b1197a..6fb84c1 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/GraphicsContainer.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/GraphicsContainer.js
@@ -40,6 +40,40 @@ org.apache.flex.core.graphics.GraphicsContainer.prototype.FLEXJS_CLASS_INFO =
 
 /**
  * @expose
+ * @return {number} The number of child elements.
+ */
+org.apache.flex.core.graphics.GraphicsContainer.prototype.get_numChildren = function() {
+    return this.internalChildren().length;
+  };
+
+
+/**
+ * @expose
+ */
+org.apache.flex.core.graphics.GraphicsContainer.prototype.removeChildren = function() {
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.core.graphics.GraphicsContainer.prototype.set_width = function(value) {
+  goog.base(this, 'set_width', value);
+  this.element.setAttribute('width', String(value) + 'px');
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.core.graphics.GraphicsContainer.prototype.set_height = function(value) {
+  goog.base(this, 'set_height', value);
+  this.element.setAttribute('height', String(value) + 'px');
+};
+
+
+/**
+ * @expose
  * @param {number} x The x position of the top-left corner of the rectangle.
  * @param {number} y The y position of the top-left corner.
  * @param {number} width The width of the rectangle.