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/19 22:32:22 UTC

git commit: [flex-asjs] [refs/heads/develop] - Tuning the Javascript version of FlexJS charts.

Repository: flex-asjs
Updated Branches:
  refs/heads/develop 32cd93b62 -> 95059a74f


Tuning the Javascript version of FlexJS charts.


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

Branch: refs/heads/develop
Commit: 95059a74fa5332e6ca3c8d88b05bdde70d62509a
Parents: 32cd93b
Author: Peter Ent <pe...@apache.org>
Authored: Wed Nov 19 16:32:16 2014 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Wed Nov 19 16:32:16 2014 -0500

----------------------------------------------------------------------
 .../org/apache/flex/charts/beads/ChartView.as   |  6 +-
 .../flex/charts/beads/VerticalLinearAxisBead.as |  2 +-
 .../flex/charts/optimized/SVGChartAxisGroup.as  |  2 +-
 .../flex/core/graphics/GraphicsContainer.as     |  2 +-
 .../org/apache/flex/charts/core/ChartBase.js    |  3 +-
 .../charts/supportClasses/ChartAxisGroup.js     | 84 ++++++++++++++++++++
 .../FlexJS/src/org/apache/flex/core/UIBase.js   |  8 +-
 .../src/org/apache/flex/core/graphics/Circle.js |  2 +
 .../org/apache/flex/core/graphics/Ellipse.js    |  2 +
 .../apache/flex/core/graphics/GraphicShape.js   | 17 ++--
 .../flex/core/graphics/GraphicsContainer.js     | 39 +++++++--
 .../src/org/apache/flex/core/graphics/Line.js   |  2 +
 .../src/org/apache/flex/core/graphics/Path.js   |  3 +
 .../src/org/apache/flex/core/graphics/Rect.js   |  2 +
 .../src/org/apache/flex/core/graphics/Text.js   |  5 +-
 .../src/org/apache/flex/html/beads/ListView.js  | 12 +++
 16 files changed, 173 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/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
index 1b3c2d8..2d1708d 100644
--- 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
@@ -64,14 +64,16 @@ package org.apache.flex.charts.beads
 			
 			var haxis:IHorizontalAxisBead = _strand.getBeadByType(IHorizontalAxisBead) as IHorizontalAxisBead;
 			if (haxis && _horizontalAxisGroup == null) {
-				_horizontalAxisGroup = new (ValuesManager.valuesImpl.getValue(value, "iHorizontalAxisGroup")) as IAxisGroup;
+				var m1:Class = ValuesManager.valuesImpl.getValue(value, "iHorizontalAxisGroup");
+				_horizontalAxisGroup = new m1();
 				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;
+				var m2:Class = ValuesManager.valuesImpl.getValue(value, "iVerticalAxisGroup");
+				_verticalAxisGroup = new m2();
 				vaxis.axisGroup = _verticalAxisGroup;
 				IParent(_strand).addElement(_verticalAxisGroup);
 			}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/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 cd3ad95..4223743 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
@@ -201,7 +201,7 @@ package org.apache.flex.charts.beads
 			var labelY:Number = UIBase(axisGroup).height + 8;
 			
 			for(i=0; i < numTicks+1; i++) 
-			{				
+			{			
 				addTickLabel(formatLabel(tickValue), 0, ypos, 0, tickSpacing);
 			
 				// add a tick mark, too.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/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
index 529de40..479d85f 100644
--- 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
@@ -95,7 +95,7 @@ package org.apache.flex.charts.optimized
 		public function drawVerticalTickLabel( text:String, xpos:Number, ypos:Number, boxWidth:Number, boxHeight:Number, tickFill:IFill ):void
 		{
 			fill = tickFill;
-			drawText(text, xpos, ypos-9);
+			drawText(text, xpos, ypos-boxHeight/4);
 		}
 		
 		/**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/graphics/GraphicsContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/graphics/GraphicsContainer.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/graphics/GraphicsContainer.as
index 08c5f43..32fd418 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/graphics/GraphicsContainer.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/graphics/GraphicsContainer.as
@@ -168,7 +168,7 @@ package org.apache.flex.core.graphics
 			}
 			
 			textField.x = x;
-			textField.y = y;
+			textField.y = y + textField.textHeight/4;
 		}
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/frameworks/js/FlexJS/src/org/apache/flex/charts/core/ChartBase.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/charts/core/ChartBase.js b/frameworks/js/FlexJS/src/org/apache/flex/charts/core/ChartBase.js
index 1845da3..2aaf7f2 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/charts/core/ChartBase.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/charts/core/ChartBase.js
@@ -33,7 +33,7 @@ goog.require('org.apache.flex.html.List');
  */
 org.apache.flex.charts.core.ChartBase =
     function() {
-  goog.base(this);
+  org.apache.flex.charts.core.ChartBase.base(this);
   this.className = 'ChartBase';
 };
 goog.inherits(
@@ -58,6 +58,7 @@ org.apache.flex.charts.core.ChartBase.prototype.createElement = function() {
     org.apache.flex.charts.core.ChartBase.base(this, 'createElement');
     this.element.style.border = 'none';
     this.element.style.overflow = 'visible';
+    return this.element;
   };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/frameworks/js/FlexJS/src/org/apache/flex/charts/supportClasses/ChartAxisGroup.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/charts/supportClasses/ChartAxisGroup.js b/frameworks/js/FlexJS/src/org/apache/flex/charts/supportClasses/ChartAxisGroup.js
index 20fecfd..1df1db2 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/charts/supportClasses/ChartAxisGroup.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/charts/supportClasses/ChartAxisGroup.js
@@ -16,6 +16,8 @@ goog.provide('org.apache.flex.charts.supportClasses.ChartAxisGroup');
 
 goog.require('org.apache.flex.charts.core.IAxisGroup');
 goog.require('org.apache.flex.core.UIBase');
+goog.require('org.apache.flex.core.graphics.Path');
+goog.require('org.apache.flex.html.Label');
 
 
 
@@ -60,6 +62,88 @@ org.apache.flex.charts.supportClasses.ChartAxisGroup.
 
 
 /**
+ * @expose
+ * @param {string} text The label to display.
+ * @param {number} xpos The x position of the label.
+ * @param {number} ypos The y position of the label.
+ * @param {number} boxWidth The size of the area for the label.
+ * @param {number} boxHeight The size of the area for the label.
+ * @param {org.apache.flex.core.graphics.IStroke} tickFill The color of the path.
+ */
+org.apache.flex.charts.supportClasses.ChartAxisGroup.prototype.drawHorizontalTickLabel =
+function(text, xpos, ypos, boxWidth, boxHeight, tickFill) {
+  var label = new org.apache.flex.html.Label();
+  this.addElement(label);
+  label.set_text(text);
+  label.set_x(xpos - label.get_width() / 2);
+  label.set_y(ypos);
+};
+
+
+/**
+ * @expose
+ * @param {string} text The label to display.
+ * @param {number} xpos The x position of the label.
+ * @param {number} ypos The y position of the label.
+ * @param {number} boxWidth The size of the area for the label.
+ * @param {number} boxHeight The size of the area for the label.
+ * @param {org.apache.flex.core.graphics.IStroke} tickFill The color of the path.
+ */
+org.apache.flex.charts.supportClasses.ChartAxisGroup.prototype.drawVerticalTickLabel =
+function(text, xpos, ypos, boxWidth, boxHeight, tickFill) {
+  var label = new org.apache.flex.html.Label();
+  this.addElement(label);
+  label.set_text(text);
+  label.set_x(xpos);
+  label.set_y(ypos - label.get_height() / 2);
+};
+
+
+/**
+ * @expose
+ * @param {number} originX The x position of the path.
+ * @param {number} originY The y position of the path.
+ * @param {number} width The size of the area for the path.
+ * @param {number} height The size of the area for the path.
+ * @param {string} marks The path to draw.
+ * @param {org.apache.flex.core.graphics.IStroke} tickStroke The color of the path.
+ */
+org.apache.flex.charts.supportClasses.ChartAxisGroup.prototype.drawTickMarks =
+function(originX, originY, width, height, marks, tickStroke) {
+  var tickPath = new org.apache.flex.core.graphics.Path();
+  tickPath.set_x(0);
+  tickPath.set_y(0);
+  tickPath.set_width(this.get_width());
+  tickPath.set_height(this.get_height());
+  this.addElement(tickPath);
+  tickPath.set_stroke(tickStroke);
+  tickPath.drawPath(0, 0, marks);
+};
+
+
+/**
+ * @expose
+ * @param {number} originX The x position of the path.
+ * @param {number} originY The y position of the path.
+ * @param {number} width The size of the area for the path.
+ * @param {number} height The size of the area for the path.
+ * @param {org.apache.flex.core.graphics.IStroke} lineStroke The color of the path.
+ */
+org.apache.flex.charts.supportClasses.ChartAxisGroup.prototype.drawAxisLine =
+function(originX, originY, width, height, lineStroke) {
+  var axisPath = new org.apache.flex.core.graphics.Path();
+  axisPath.set_x(0);
+  axisPath.set_y(0);
+  axisPath.set_width(this.get_width());
+  axisPath.set_height(this.get_height());
+  this.addElement(axisPath);
+  axisPath.set_stroke(lineStroke);
+  var pathLine = 'M ' + String(originX) + ' ' + String(originY) + ' l ' + String(width) + ' ' + String(height);
+  axisPath.drawPath(0, 0, pathLine);
+};
+
+
+/**
  * @return {void}
  */
 org.apache.flex.charts.supportClasses.ChartAxisGroup.prototype.removeAllElements =

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js b/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js
index 5aecfa8..23d7cc8 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js
@@ -19,6 +19,8 @@ goog.require('org.apache.flex.core.IBeadController');
 goog.require('org.apache.flex.core.IBeadLayout');
 goog.require('org.apache.flex.core.IBeadModel');
 goog.require('org.apache.flex.core.IBeadView');
+goog.require('org.apache.flex.core.ILayoutChild');
+goog.require('org.apache.flex.core.IParentIUIBase');
 goog.require('org.apache.flex.core.IUIBase');
 goog.require('org.apache.flex.core.ValuesManager');
 
@@ -27,6 +29,8 @@ goog.require('org.apache.flex.core.ValuesManager');
 /**
  * @constructor
  * @implements {org.apache.flex.core.IUIBase}
+ * @implements {org.apache.flex.core.ILayoutChild}
+ * @implements {org.apache.flex.core.IParentIUIBase}
  * @extends {org.apache.flex.core.HTMLElementWrapper}
  */
 org.apache.flex.core.UIBase = function() {
@@ -52,7 +56,9 @@ goog.inherits(org.apache.flex.core.UIBase,
 org.apache.flex.core.UIBase.prototype.FLEXJS_CLASS_INFO =
     { names: [{ name: 'UIBase',
                 qName: 'org.apache.flex.core.UIBase' }],
-      interfaces: [org.apache.flex.core.IUIBase] };
+      interfaces: [org.apache.flex.core.IUIBase,
+                   org.apache.flex.core.IParentIUIBase,
+                   org.apache.flex.core.ILayoutChild] };
 
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Circle.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Circle.js b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Circle.js
index d63fc9f..c009bba 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Circle.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Circle.js
@@ -89,6 +89,8 @@ org.apache.flex.core.graphics.Circle.prototype.drawCircle = function(x, y, radiu
     circle.setAttribute('rx', String(radius));
     circle.setAttribute('ry', String(radius));
     this.element.appendChild(circle);
+
+    this.resize(x, y, circle.getBBox());
   };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Ellipse.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Ellipse.js b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Ellipse.js
index d249a15..3063064 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Ellipse.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Ellipse.js
@@ -66,6 +66,8 @@ org.apache.flex.core.graphics.Ellipse.prototype.drawEllipse = function(x, y, wid
     ellipse.setAttribute('rx', String(width / 2));
     ellipse.setAttribute('ry', String(height / 2));
     this.element.appendChild(ellipse);
+
+    this.resize(x, y, ellipse.getBBox());
   };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/GraphicShape.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/GraphicShape.js b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/GraphicShape.js
index 6e0f9de..740cf90 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/GraphicShape.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/GraphicShape.js
@@ -123,10 +123,13 @@ org.apache.flex.core.graphics.GraphicShape.prototype.set_stroke = function(value
  */
 org.apache.flex.core.graphics.GraphicShape.prototype.addedToParent = function() {
   this.draw();
+  this.element.style.overflow = 'visible';
+  /*
+   * not sure this is valuable any longer
   var bbox = this.element.getBBox();
   if (bbox.width === 0 && !isNaN(this.get_width())) bbox.width = this.get_width();
   if (bbox.height === 0 && !isNaN(this.get_height())) bbox.height = this.get_height();
-  this.resize(this.get_x(), this.get_y(), bbox);
+  this.resize(this.get_x(), this.get_y(), bbox);*/
 };
 
 
@@ -175,10 +178,14 @@ org.apache.flex.core.graphics.GraphicShape.prototype.getStyleStr = function() {
  * @param {Object} bbox The bounding box of the svg element.
  */
 org.apache.flex.core.graphics.GraphicShape.prototype.resize = function(x, y, bbox) {
-  this.element.setAttribute('width', String(bbox.width + bbox.x + this.xOffset_) + 'px');
-  this.element.setAttribute('height', String(bbox.height + bbox.y + this.yOffset_) + 'px');
-  this.element.setAttribute('style', 'overflow:visible; position:absolute; left:' +
-      String(x) + 'px; top:' + String(y) + 'px');
+  var width = Math.max(this.get_width(), bbox.width);
+  var height = Math.max(this.get_height(), bbox.height);
+
+  this.element.style.position = 'absolute';
+  if (!isNaN(x)) this.element.style.top = String(x) + 'px';
+  if (!isNaN(y)) this.element.style.left = String(y) + 'px';
+  this.element.style.width = String(width) + 'px';
+  this.element.style.height = String(height) + 'px';
 };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/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 c48012a..656568b 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
@@ -50,7 +50,11 @@ org.apache.flex.core.graphics.GraphicsContainer.prototype.get_numChildren = func
 /**
  * @expose
  */
-org.apache.flex.core.graphics.GraphicsContainer.prototype.removeChildren = function() {
+org.apache.flex.core.graphics.GraphicsContainer.prototype.removeAllElements = function() {
+  var svg = this.element;
+  while (svg.lastChild) {
+    svg.removeChild(svg.lastChild);
+  }
 };
 
 
@@ -58,8 +62,9 @@ org.apache.flex.core.graphics.GraphicsContainer.prototype.removeChildren = funct
  * @override
  */
 org.apache.flex.core.graphics.GraphicsContainer.prototype.set_width = function(value) {
-  goog.base(this, 'set_width', value);
+  org.apache.flex.core.graphics.GraphicsContainer.base(this, 'set_width', value);
   this.element.setAttribute('width', String(value) + 'px');
+  this.element.style.width = String(value) + 'px';
 };
 
 
@@ -67,8 +72,31 @@ org.apache.flex.core.graphics.GraphicsContainer.prototype.set_width = function(v
  * @override
  */
 org.apache.flex.core.graphics.GraphicsContainer.prototype.set_height = function(value) {
-  goog.base(this, 'set_height', value);
+  org.apache.flex.core.graphics.GraphicsContainer.base(this, 'set_height', value);
   this.element.setAttribute('height', String(value) + 'px');
+  this.element.style.height = String(value) + 'px';
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.core.graphics.GraphicsContainer.prototype.set_x = function(value) {
+  org.apache.flex.core.graphics.GraphicsContainer.base(this, 'set_x', value);
+  this.element.setAttribute('x', String(value) + 'px');
+  this.element.style.position = 'absolute';
+  this.element.style.left = String(value) + 'px';
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.core.graphics.GraphicsContainer.prototype.set_y = function(value) {
+  org.apache.flex.core.graphics.GraphicsContainer.base(this, 'set_y', value);
+  this.element.setAttribute('y', String(value) + 'px');
+  this.element.style.position = 'absolute';
+  this.element.style.top = String(value) + 'px';
 };
 
 
@@ -157,9 +185,10 @@ org.apache.flex.core.graphics.GraphicsContainer.prototype.drawText = function(va
   var style = this.getStyleStr();
   var text = document.createElementNS('http://www.w3.org/2000/svg', 'text');
   text.setAttribute('style', style);
-  text.innerHTML = value;
   text.setAttribute('x', String(x) + 'px');
-  text.setAttribute('y', String(y) + 'px');
+  text.setAttribute('y', String(y + 15) + 'px');
+  var textNode = document.createTextNode(value);
+  text.appendChild(textNode);
   this.element.appendChild(text);
 };
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Line.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Line.js b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Line.js
index 0a76a95..6fe9d4c 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Line.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Line.js
@@ -57,6 +57,8 @@ org.apache.flex.core.graphics.Line.prototype.drawLine = function(x1, y1, x2, y2)
     line.setAttribute('y2', y2);
     this.setPosition(x1, y2, this.get_stroke().get_weight(), this.get_stroke().get_weight());
     this.element.appendChild(line);
+
+    this.resize(x, y, line.getBBox());
   };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Path.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Path.js b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Path.js
index dfaf1cc..ae37a59 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Path.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Path.js
@@ -76,6 +76,7 @@ org.apache.flex.core.graphics.Path.prototype.get_data = function() {
  *  If the segment command is lower-case, the parameters are relative values.
  */
 org.apache.flex.core.graphics.Path.prototype.drawPath = function(x, y, data) {
+    if (data == null || data.length === 0) return;
     var style = this.getStyleStr();
     var path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
     path.setAttribute('style', style);
@@ -89,6 +90,8 @@ org.apache.flex.core.graphics.Path.prototype.drawPath = function(x, y, data) {
     {
       this.setPosition(x, y, 0, 0);
     }
+
+    this.resize(x, y, path.getBBox());
   };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Rect.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Rect.js b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Rect.js
index c1bce41..2a2caaf 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Rect.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Rect.js
@@ -66,6 +66,8 @@ org.apache.flex.core.graphics.Rect.prototype.drawRect = function(x, y, width, he
     rect.setAttribute('width', String(width) + 'px');
     rect.setAttribute('height', String(height) + 'px');
     this.element.appendChild(rect);
+
+    this.resize(x, y, rect.getBBox());
   };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Text.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Text.js b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Text.js
index 106b77b..18137e1 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Text.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/graphics/Text.js
@@ -50,11 +50,14 @@ org.apache.flex.core.graphics.Text.prototype.drawText = function(value, x, y) {
     var style = this.getStyleStr();
     var text = document.createElementNS('http://www.w3.org/2000/svg', 'text');
     text.setAttribute('style', style);
-    text.innerHTML = value;
     text.setAttribute('x', String(x) + 'px');
     text.setAttribute('y', String(y) + 'px');
     this.setPosition(x, y, 0, 0);
+    var textNode = document.createTextNode(value);
+    text.appendChild(textNode);
     this.element.appendChild(text);
+
+    this.resize(x, y, text.getBBox());
   };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95059a74/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ListView.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ListView.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ListView.js
index e3329c5..af01e93 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ListView.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ListView.js
@@ -67,6 +67,8 @@ org.apache.flex.html.beads.ListView.prototype.set_strand =
   this.model = this.strand_.get_model();
   this.model.addEventListener('selectedIndexChanged',
       goog.bind(this.selectionChangeHandler, this));
+  this.model.addEventListener('dataProviderChanged',
+      goog.bind(this.dataProviderChangeHandler, this));
 
   if (this.dataGroup_ == null) {
     var m2 = org.apache.flex.core.ValuesManager.valuesImpl.
@@ -129,6 +131,16 @@ org.apache.flex.html.beads.ListView.prototype.
 
 /**
  * @expose
+ * @param {Object} value The event that triggeed the selection.
+ */
+org.apache.flex.html.beads.ListView.prototype.
+    dataProviderChangeHandler = function(value) {
+    // override in subclass
+};
+
+
+/**
+ * @expose
  * @return {Object} The view that contains the layout objects.
  */
 org.apache.flex.html.beads.ListView.prototype.get_contentView = function() {