Repository: flex-asjs
Updated Branches:
  refs/heads/develop b2243a0b3 -> e88fe7ff4


Cleaned up drawing APIs
I removed drawPath in favor of two separate drawStringPath and drawPathCommands 
methods.

drawPathCommands will probably be the best way to draw paths using canvas, but 
either way should work.


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

Branch: refs/heads/develop
Commit: e88fe7ff4b2d49b4aed145cc7616a95c0d10eddc
Parents: b2243a0
Author: Harbs <ha...@in-tools.com>
Authored: Tue Jul 26 12:32:57 2016 +0300
Committer: Harbs <ha...@in-tools.com>
Committed: Tue Jul 26 12:32:57 2016 +0300

----------------------------------------------------------------------
 .../flex/charts/optimized/SVGChartAxisGroup.as  |   4 +-
 .../optimized/SVGLineSegmentItemRenderer.as     |   2 +-
 .../charts/optimized/SVGWedgeItemRenderer.as    |   2 +-
 .../charts/supportClasses/ChartAxisGroup.as     |   6 +-
 .../charts/supportClasses/WedgeItemRenderer.as  |   2 +-
 .../apache/flex/graphics/ICompoundGraphic.as    |   3 +-
 .../org/apache/flex/graphics/PathBuilder.as     |   5 +-
 .../flex/org/apache/flex/svg/CompoundGraphic.as |  21 +++-
 .../src/main/flex/org/apache/flex/svg/Path.as   | 126 ++++++++++++-------
 .../flex/html/beads/DecrementButtonView.as      |   2 +-
 .../flex/html/beads/IncrementButtonView.as      |   2 +-
 11 files changed, 113 insertions(+), 62 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e88fe7ff/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartAxisGroup.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartAxisGroup.as
 
b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartAxisGroup.as
index bff0849..1c8b6a2 100644
--- 
a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartAxisGroup.as
+++ 
b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartAxisGroup.as
@@ -115,7 +115,7 @@ package org.apache.flex.charts.optimized
                public function drawTickMarks( originX:Number, originY:Number, 
width:Number, height:Number, marks:String, tickStroke:IStroke ):void
                {
                        stroke = tickStroke;
-                       drawPath(marks);
+                       drawStringPath(marks);
                }
                
                /**
@@ -136,7 +136,7 @@ package org.apache.flex.charts.optimized
                {
                        stroke = lineStroke;
                        var pathLine:String = "M " + String(originX) + " " + 
String(originY) + " l "+String(width)+" "+String(height);
-                       drawPath(pathLine);
+                       drawStringPath(pathLine);
                }
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e88fe7ff/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGLineSegmentItemRenderer.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGLineSegmentItemRenderer.as
 
b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGLineSegmentItemRenderer.as
index d271474..697c611 100644
--- 
a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGLineSegmentItemRenderer.as
+++ 
b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGLineSegmentItemRenderer.as
@@ -198,7 +198,7 @@ package org.apache.flex.charts.optimized
                                        else pathString += "L "+point.x+" 
"+point.y+" ";
                                }
                                
-                               graphicsContainer.drawPath(pathString);
+                               graphicsContainer.drawStringPath(pathString);
                        }
                }
        }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e88fe7ff/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGWedgeItemRenderer.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGWedgeItemRenderer.as
 
b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGWedgeItemRenderer.as
index e61fd7d..cefd46d 100644
--- 
a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGWedgeItemRenderer.as
+++ 
b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGWedgeItemRenderer.as
@@ -249,7 +249,7 @@ package org.apache.flex.charts.optimized
                        
                        graphicsContainer.fill = fill;
                        graphicsContainer.stroke = stroke;
-                       graphicsContainer.drawPath(pathString);
+                       graphicsContainer.drawStringPath(pathString);
                }
                
                /*

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e88fe7ff/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/supportClasses/ChartAxisGroup.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/supportClasses/ChartAxisGroup.as
 
b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/supportClasses/ChartAxisGroup.as
index 2a85372..670130c 100644
--- 
a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/supportClasses/ChartAxisGroup.as
+++ 
b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/supportClasses/ChartAxisGroup.as
@@ -149,7 +149,7 @@ package org.apache.flex.charts.supportClasses
                        tickPath.height = this.height;
                        addElement(tickPath);
                        tickPath.stroke = tickStroke;
-                       tickPath.drawPath( 0, 0, marks );
+                       tickPath.drawStringPath( 0, 0, marks );
                }
                
                /**
@@ -175,8 +175,8 @@ package org.apache.flex.charts.supportClasses
                        axisPath.height = this.height;
                        addElement(axisPath);
                        axisPath.stroke = lineStroke;
-                       var pathLine:String = "M " + String(originX) + " " + 
String(originY) + " l "+String(width)+" "+String(height);
-                       axisPath.drawPath(0, 0, pathLine);
+                       var pathLine:String = "M " + originX + " " + originY + 
" l "+width+" "+height;
+                       axisPath.drawStringPath(0, 0, pathLine);
                }
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e88fe7ff/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
 
b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
index c4aee25..6918f35 100644
--- 
a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
+++ 
b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/supportClasses/WedgeItemRenderer.as
@@ -317,7 +317,7 @@ package org.apache.flex.charts.supportClasses
                                filledPath.fill = fill;
                        }
                        
-                       filledPath.drawPath(0, 0, filledPath.data);
+                       filledPath.drawStringPath(0, 0, filledPath.data);
                }
                
                /*

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e88fe7ff/frameworks/projects/Graphics/src/main/flex/org/apache/flex/graphics/ICompoundGraphic.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/graphics/ICompoundGraphic.as
 
b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/graphics/ICompoundGraphic.as
index 20f7a74..164dea6 100644
--- 
a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/graphics/ICompoundGraphic.as
+++ 
b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/graphics/ICompoundGraphic.as
@@ -20,7 +20,8 @@ package org.apache.flex.graphics
                function drawRect(x:Number, y:Number, width:Number, 
height:Number):void;
                function drawEllipse(x:Number, y:Number, width:Number, 
height:Number):void;
                function drawCircle(x:Number, y:Number, radius:Number):void;
-               function drawPath(data:String):void;
+               function drawStringPath(data:String):void;
+               function drawPathCommands(data:PathBuilder):void
                function drawText(value:String, x:Number, y:Number):Object;
                function get textFill():IFill;
                function set textFill(value:IFill):void;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e88fe7ff/frameworks/projects/Graphics/src/main/flex/org/apache/flex/graphics/PathBuilder.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/graphics/PathBuilder.as
 
b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/graphics/PathBuilder.as
index 3b376c7..e5702cf 100644
--- 
a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/graphics/PathBuilder.as
+++ 
b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/graphics/PathBuilder.as
@@ -14,7 +14,10 @@
 
 package org.apache.flex.graphics
 {
-    import flash.display.Graphics;
+    COMPILE::SWF
+       {
+               import flash.display.Graphics;
+       }
 
     public class PathBuilder
     {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e88fe7ff/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/CompoundGraphic.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/CompoundGraphic.as
 
b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/CompoundGraphic.as
index e5efffe..a57cb5a 100644
--- 
a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/CompoundGraphic.as
+++ 
b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/CompoundGraphic.as
@@ -279,6 +279,21 @@ package org.apache.flex.svg
 
         /**
          *  Draw the path.
+         *  @param data A PathBuilder object containing a vector of drawing 
commands.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         *  @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+         */
+        public function drawPathCommands(data:PathBuilder):void
+        {
+            drawStringPath(data.getPathString());
+        }
+        
+        /**
+         *  Draw the path.
          *  @param data A string containing a compact represention of the path 
segments.
          *  The value is a space-delimited string describing each path 
segment. Each
          *  segment entry has a single character which denotes the segment 
type and
@@ -293,7 +308,7 @@ package org.apache.flex.svg
          *  @productversion FlexJS 0.0
          *  @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
          */
-        public function drawPath(data:String):void
+        public function drawStringPath(data:String):void
         {
             COMPILE::SWF
             {
@@ -380,7 +395,7 @@ package org.apache.flex.svg
             {
                 var builder:PathBuilder = new PathBuilder();
                 builder.drawRoundRectComplex(x, y, width, height, 
topLeftRadius, topRightRadius, bottomLeftRadius, bottomRightRadius);
-                drawPath(builder.getPathString());
+                drawStringPath(builder.getPathString());
             }
 
 
@@ -465,7 +480,7 @@ package org.apache.flex.svg
         }
         COMPILE::JS
         {
-            drawPath(builder.getPathString());
+            drawStringPath(builder.getPathString());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e88fe7ff/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Path.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Path.as 
b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Path.as
index ac5d023..6ca59ab 100644
--- a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Path.as
+++ b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Path.as
@@ -14,6 +14,8 @@
 
 package org.apache.flex.svg
 {
+    import org.apache.flex.graphics.PathBuilder;
+
     COMPILE::SWF
     {
         import flash.display.GraphicsPath;
@@ -21,49 +23,79 @@ package org.apache.flex.svg
         import flash.geom.Rectangle;
         import org.apache.flex.graphics.utils.PathHelper;
     }
-       COMPILE::JS
+    COMPILE::JS
     {
         import org.apache.flex.core.WrappedHTMLElement;
     }
 
 
-       public class Path extends GraphicShape
-       {
+    public class Path extends GraphicShape
+    {
+
+        private var _data:String;
+
+        public function get data():String
+        {
+            return _data;
+        }
 
-               private var _data:String;
+        public function set data(value:String):void
+        {
+            _data = value;
+            _pathCommands = null;
+        }
+        
+        private var _pathCommands:PathBuilder;
 
-               public function get data():String
-               {
-                       return _data;
-               }
+        public function get pathCommands():PathBuilder
+        {
+            return _pathCommands;
+        }
 
-               public function set data(value:String):void
-               {
-                       _data = value;
-               }
-               
-               COMPILE::JS
-               private var _path:WrappedHTMLElement;
+        public function set pathCommands(value:PathBuilder):void
+        {
+            _pathCommands = value;
+            _data = _pathCommands.getPathString();
+        }
 
-               /**
-                *  Draw the path.
-                *  @param data A string containing a compact represention of 
the path segments.
-                *  The value is a space-delimited string describing each path 
segment. Each
-            *  segment entry has a single character which denotes the segment 
type and
-        *  two or more segment parameters.
-                *
-                *  If the segment command is upper-case, the parameters are 
absolute values.
-                *  If the segment command is lower-case, the parameters are 
relative values.
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion FlexJS 0.0
-                *  @flexjsignorecoercion 
org.apache.flex.core.WrappedHTMLElement
-                */
-               public function drawPath(xp:Number,yp:Number,data:String):void
-               {
-                       COMPILE::SWF
+        
+        COMPILE::JS
+        private var _path:WrappedHTMLElement;
+
+        /**
+         *  Draw the path.
+         *  @param data A PathBuilder object containing a vector of drawing 
commands.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         *  @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+         */
+        public function 
drawPathCommands(xp:Number,yp:Number,data:PathBuilder):void
+        {
+            drawStringPath(xp,yp,data.getPathString());
+        }
+
+        /**
+         *  Draw the path.
+         *  @param data A string containing a compact represention of the path 
segments.
+         *  The value is a space-delimited string describing each path 
segment. Each
+         *  segment entry has a single character which denotes the segment 
type and
+         *  two or more segment parameters.
+         *
+         *  If the segment command is upper-case, the parameters are absolute 
values.
+         *  If the segment command is lower-case, the parameters are relative 
values.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         *  @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+         */
+        public function drawStringPath(xp:Number,yp:Number,data:String):void
+        {
+            COMPILE::SWF
             {
                 graphics.clear();
                 applyStroke();
@@ -79,22 +111,22 @@ package org.apache.flex.svg
             {
                 if (data == null || data.length === 0) return;
                 var style:String = getStyleStr();
-                               if (_path == null) {
-                       _path = 
document.createElementNS('http://www.w3.org/2000/svg', 'path') as 
WrappedHTMLElement;
-                                       _path.flexjs_wrapper = this;
-                                       element.appendChild(_path);
-                               }
-                               _path.setAttribute('style', style);
-                               _path.setAttribute('d', data);
+                if (_path == null) {
+                    _path = 
document.createElementNS('http://www.w3.org/2000/svg', 'path') as 
WrappedHTMLElement;
+                    _path.flexjs_wrapper = this;
+                    element.appendChild(_path);
+                }
+                _path.setAttribute('style', style);
+                _path.setAttribute('d', data);
 
                 resize(x, y, _path['getBBox']());
 
             }
-               }
+        }
 
-               override protected function draw():void
-               {
-                       drawPath(0, 0, data);
-               }
-       }
+        override protected function draw():void
+        {
+            drawStringPath(0, 0, data);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e88fe7ff/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DecrementButtonView.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DecrementButtonView.as
 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DecrementButtonView.as
index fd3ee2e..19026ce 100644
--- 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DecrementButtonView.as
+++ 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DecrementButtonView.as
@@ -88,7 +88,7 @@ package org.apache.flex.html.beads
                        _arrow.setWidthAndHeight(xm, ym, true);
                        _arrow.y = 2;
                        _arrow.x = 0;
-                       _arrow.drawPath(0, 0, "M "+String(xm)+" "+String(ym)+" 
L "+String(xm-8)+" 2 "+String(xm+8)+" 2 "+String(xm)+" "+String(ym)+" Z");
+                       _arrow.drawStringPath(0, 0, "M "+xm+" "+ym+" L 
"+(xm-8)+" 2 "+(xm+8)+" 2 "+xm+" "+ym+" Z");
                }
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e88fe7ff/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/IncrementButtonView.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/IncrementButtonView.as
 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/IncrementButtonView.as
index 8f27064..de1296b 100644
--- 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/IncrementButtonView.as
+++ 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/IncrementButtonView.as
@@ -88,7 +88,7 @@ package org.apache.flex.html.beads
                        _arrow.setWidthAndHeight(xm, ym, true);
                        _arrow.y = 2;
                        _arrow.x = 0;
-                       _arrow.drawPath(0, 0, "M "+String(xm)+" 2 L 
"+String(xm-8)+" "+String(ym)+" L "+String(xm+8)+" "+String(ym)+" Z");
+                       _arrow.drawStringPath(0, 0, "M "+xm+" 2 L "+(xm-8)+" 
"+ym+" L "+(xm+8)+" "+ym+" Z");
                }
        }
 }

Reply via email to