flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aha...@apache.org
Subject [26/55] [abbrv] git commit: [flex-asjs] [refs/heads/develop] - move handwritten JS code to final home. Build scripts still need fixing up
Date Wed, 15 Apr 2015 21:43:31 GMT
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/js/FlexJS/src/org/apache/flex/utils/MXMLDataInterpreter.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/utils/MXMLDataInterpreter.js b/frameworks/js/FlexJS/src/org/apache/flex/utils/MXMLDataInterpreter.js
deleted file mode 100644
index a254a35..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/utils/MXMLDataInterpreter.js
+++ /dev/null
@@ -1,410 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-goog.provide('org_apache_flex_utils_MXMLDataInterpreter');
-
-
-
-/**
- * @constructor
- */
-org_apache_flex_utils_MXMLDataInterpreter = function() {
-};
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org_apache_flex_utils_MXMLDataInterpreter.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'MXMLDataInterpreter',
-                qName: 'org_apache_flex_utils_MXMLDataInterpreter'}] };
-
-
-/**
- * @param {Object} document The MXML object.
- * @param {Array} data The data array.
- * @return {Object} The generated object.
- */
-org_apache_flex_utils_MXMLDataInterpreter.generateMXMLObject =
-    function(document, data) {
-  var assignComp, Cls, comp, generateMXMLArray, generateMXMLObject, i, id, j, m,
-      name, simple, value;
-
-  i = 0;
-  Cls = data[i++];
-  comp = new Cls();
-
-  generateMXMLArray =
-      org_apache_flex_utils_MXMLDataInterpreter.generateMXMLArray;
-  generateMXMLObject =
-      org_apache_flex_utils_MXMLDataInterpreter.generateMXMLObject;
-
-  if (comp.addBead)
-    org_apache_flex_utils_MXMLDataInterpreter.initializeStrandBasedObject(document, null, comp, data, i);
-  else {
-    m = data[i++]; // num props
-    for (j = 0; j < m; j++) {
-      name = data[i++];
-      simple = data[i++];
-      value = data[i++];
-
-      if (simple === null) {
-        value = generateMXMLArray(document, null, value);
-      } else if (simple === false) {
-        value = generateMXMLObject(document, value);
-      }
-
-      if (name === 'id') {
-        document[value] = comp;
-        id = value;
-      }
-
-      if (name == 'document' && !comp.document) {
-        comp.document = document;
-      }
-      else if (name === '_id') {
-        document[value] = comp;
-        id = value;
-      }
-      else if (name === 'id') {
-        try {
-          comp.id = value;
-        } catch (e) {}
-      }
-      else {
-        comp[name] = value;
-      }
-    }
-
-    if (typeof comp.setDocument === 'function') {
-      comp.setDocument(document, id);
-    }
-  }
-
-  return comp;
-};
-
-
-/**
- * @expose
- * @param {Object} document The MXML object.
- * @param {Object} parent The parent object.
- * @param {Array} data The data array.
- * @return {Array} The generated array.
- */
-org_apache_flex_utils_MXMLDataInterpreter.generateMXMLArray =
-    function(document, parent, data) {
-  var comps = [];
-
-  var n = data.length;
-  var i = 0;
-  while (i < n) {
-    var cls = data[i++];
-    var comp = new cls();
-
-    i = org_apache_flex_utils_MXMLDataInterpreter.initializeStrandBasedObject(document, parent, comp, data, i);
-
-    comps.push(comp);
-  }
-  return comps;
-};
-
-
-/**
- * @expose
- * @param {Object} document The MXML object.
- * @param {Object} parent The parent object.
- * @param {Object} comp The component being initialized.
- * @param {Array} data The data array.
- * @param {number} i The offset into data.
- * @return {number} The new offset into the data.
- */
-org_apache_flex_utils_MXMLDataInterpreter.initializeStrandBasedObject =
-    function(document, parent, comp, data, i) {
-  var bead, beadOffset, beads, children, Cls, generateMXMLArray,
-      generateMXMLObject, id, j, k, l, m, n, name, self, simple, value, dispatchBeadsAdded;
-
-  generateMXMLArray =
-      org_apache_flex_utils_MXMLDataInterpreter.generateMXMLArray;
-  generateMXMLObject =
-      org_apache_flex_utils_MXMLDataInterpreter.generateMXMLObject;
-
-  id = null;
-
-  m = data[i++]; // num props
-  if (m > 0 && data[0] === 'model') {
-    m--;
-    name = data[i++];
-    simple = data[i++];
-    value = data[i++];
-
-    if (simple === null) {
-      value = generateMXMLArray(document, parent, value);
-    } else if (simple === false) {
-      value = generateMXMLObject(document, value);
-    }
-
-    comp[name] = value;
-  }
-
-  beadOffset = i + (m - 1) * 3;
-  if (m > 0 && data[beadOffset] === 'beads') {
-    m--;
-  } else {
-    beadOffset = -1;
-  }
-
-  for (j = 0; j < m; j++) {
-    name = data[i++];
-    simple = data[i++];
-    value = data[i++];
-
-    if (simple === null) {
-      value = generateMXMLArray(document, null, value);
-    } else if (simple === false) {
-      value = generateMXMLObject(document, value);
-    }
-
-    if (name === 'id') {
-      id = value;
-      document[value] = comp;
-    }
-
-    if (name === 'document' && !comp.document) {
-      comp.document = document;
-    } else if (name === '_id') {
-      id = value; // and don't assign to comp
-    } else if (name === 'id') {
-      try {
-        comp.id = value;
-      } catch (e) {}
-    } else {
-      comp[name] = value;
-    }
-  }
-
-  if (beadOffset > -1)
-  {
-    name = data[i++];
-    simple = data[i++];
-    value = data[i++];
-
-    if (simple === null) {
-      value = generateMXMLArray(document, null, value);
-    } else if (simple === false) {
-      value = generateMXMLObject(document, value);
-    }
-    comp[name] = value;
-  }
-
-  m = data[i++]; // num styles
-  for (j = 0; j < m; j++) {
-    name = data[i++];
-    simple = data[i++];
-    value = data[i++];
-
-    if (simple === null) {
-      value = generateMXMLArray(document, null, value);
-    } else if (simple === false) {
-      value = generateMXMLObject(document, value);
-    }
-
-    if (comp.setStyle) {
-      comp.setStyle(name, value);
-    }
-  }
-
-    /*
-    m = data[i++]; // num effects
-    for (j = 0; j < m; j++)
-    {
-      name = data[i++];
-      simple = data[i++];
-      value = data[i++];
-      if (simple === null)
-        value = generateMXMLArray(document, null, value, opt_recursive);
-      else if (simple === false)
-        value = generateMXMLObject(document, value);
-      comp.setStyle(name, value);
-    }
-    */
-
-  m = data[i++]; // num events
-  for (j = 0; j < m; j++) {
-    name = data[i++];
-    value = data[i++];
-
-    comp.addEventListener(name, goog.bind(value, document));
-  }
-
-  children = data[i++];
-  if (children && comp['setMXMLDescriptor']) {
-    comp['setMXMLDescriptor'](document, children);
-  }
-  if (parent && org_apache_flex_utils_Language.is(comp,
-      org_apache_flex_core_IUIBase)) {
-    parent.addElement(comp);
-  }
-
-  if (children) {
-    if (!comp['setMXMLDescriptor']) {
-      self = org_apache_flex_utils_MXMLDataInterpreter;
-      self.generateMXMLInstances(
-            document, comp, children);
-      if (typeof comp.childrenAdded === 'function')
-        comp.childrenAdded();
-    }
-  }
-
-  if (id) {
-    document[id] = comp;
-  }
-
-  if (typeof(comp.setDocument) === 'function') {
-    comp.setDocument(document, id);
-  }
-
-  if (goog.isFunction(comp.finalizeElement)) {
-    comp.finalizeElement();
-  }
-
-  return i;
-};
-
-
-/**
- * @expose
- * @param {Object} document The MXML object.
- * @param {Object} parent The parent object.
- * @param {Array} data The data array.
- */
-org_apache_flex_utils_MXMLDataInterpreter.generateMXMLInstances =
-    function(document, parent, data) {
-  if (data) {
-    org_apache_flex_utils_MXMLDataInterpreter.generateMXMLArray(
-        document, parent, data);
-  }
-};
-
-
-/**
- * @expose
- * @param {Object} host The MXML object.
- * @param {Array} data The data array.
- */
-org_apache_flex_utils_MXMLDataInterpreter.generateMXMLProperties =
-    function(host, data) {
-  var bead, beadOffset, beads, generateMXMLArray, generateMXMLObject, i, id, j,
-      k, l, m, name, simple, value;
-
-  if (!data) {
-    return;
-  }
-
-  i = 0;
-  id = null;
-
-  generateMXMLArray =
-      org_apache_flex_utils_MXMLDataInterpreter.generateMXMLArray;
-  generateMXMLObject =
-      org_apache_flex_utils_MXMLDataInterpreter.generateMXMLObject;
-
-  m = data[i++]; // num props
-  beadOffset = i + (m - 1) * 3;
-  if (m > 0 && data[beadOffset] === 'beads') {
-    m--;
-  } else {
-    beadOffset = -1;
-  }
-
-  for (j = 0; j < m; j++) {
-    name = data[i++];
-    simple = data[i++];
-    value = data[i++];
-
-    if (simple === null) {
-      value = generateMXMLArray(host, null, value);
-    } else if (simple === false) {
-      value = generateMXMLObject(host, value);
-    }
-
-    if (name === 'id') {
-      id = value;
-    }
-
-    if (name === '_id') {
-      id = value; // and don't assign
-    } else {
-      host[name] = value;
-    }
-  }
-
-  if (beadOffset > -1) {
-    name = data[i++];
-    simple = data[i++];
-    value = data[i++];
-
-    if (simple === null) {
-      value = generateMXMLArray(host, null, value);
-    } else if (simple === false) {
-      value = generateMXMLObject(host, value);
-    }
-
-    beads = value;
-    l = beads.length;
-    for (k = 0; k < l; k++) {
-      bead = beads[k];
-      host.addBead(bead);
-    }
-  }
-
-  m = data[i++]; // num styles
-  for (j = 0; j < m; j++) {
-    name = data[i++];
-    simple = data[i++];
-    value = data[i++];
-
-    if (simple === null) {
-      value = generateMXMLArray(host, null, value);
-    } else if (simple === false) {
-      value = generateMXMLObject(host, value);
-    }
-
-    host[name] = value;
-  }
-
-  /*
-        m = data[i++]; // num effects
-        for (j = 0; j < m; j++)
-        {
-            name = data[i++];
-            simple = data[i++];
-            value = data[i++];
-            if (simple === null)
-                value = generateMXMLArray(host, null, value, false);
-            else if (simple === false)
-                value = generateMXMLObject(host, value);
-            host[name] = value;
-        }
-      */
-
-  m = data[i++]; // num events
-  for (j = 0; j < m; j++) {
-    name = data[i++];
-    value = data[i++];
-    host.addEventListener(name, goog.bind(value, host));
-  }
-};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/js/FlexJS/src/org/apache/flex/utils/MixinManager.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/utils/MixinManager.js b/frameworks/js/FlexJS/src/org/apache/flex/utils/MixinManager.js
deleted file mode 100644
index 6579489..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/utils/MixinManager.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-goog.provide('org_apache_flex_utils_MixinManager');
-
-
-
-/**
- * @constructor
- * @implements {org_apache_flex_core_IBead}
- * Initialize mixins.
- * Compiler may not be generating list of mixins right now.
- */
-org_apache_flex_utils_MixinManager = function() {
-};
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org_apache_flex_utils_MixinManager.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'MixinManager',
-                qName: 'org_apache_flex_utils_MixinManager'}],
-     interfaces: [org_apache_flex_core_IBead]};
-
-
-Object.defineProperties(org_apache_flex_utils_MixinManager.prototype, {
-    /** @expose */
-    strand: {
-        /** @this {org_apache_flex_utils_MixinManager} */
-        set: function(value) {
-            this.strand_ = value;
-
-            if (value) {
-              if (typeof(value.info) == 'function') {
-                var mixins = value.info()['mixins'];
-                if (mixins) {
-                  var n = mixins.length;
-                  for (var i = 0; i < n; i++) {
-                    mixins[i].init(value);
-                  }
-                }
-              }
-            }
-        }
-    }
-});

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/js/FlexJS/src/org/apache/flex/utils/PointUtils.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/utils/PointUtils.js b/frameworks/js/FlexJS/src/org/apache/flex/utils/PointUtils.js
deleted file mode 100644
index f42aae7..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/utils/PointUtils.js
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-goog.provide('org_apache_flex_utils_PointUtils');
-
-goog.require('org_apache_flex_geom_Point');
-
-
-
-/**
- * @constructor
- */
-org_apache_flex_utils_PointUtils = function() {
-};
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org_apache_flex_utils_PointUtils.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'PointUtils',
-                qName: 'org_apache_flex_utils_PointUtils' }] };
-
-
-/**
- * @expose
- * @param {org_apache_flex_geom_Point} point The Point to be converted.
- * @param {Object} local The object used as reference.
- * @return {org_apache_flex_geom_Point} The converted Point.
- */
-org_apache_flex_utils_PointUtils.globalToLocal =
-    function(point, local) {
-  var x = point.x, y = point.y;
-  var element = local.element;
-
-  do {
-    x -= element.offsetLeft;
-    y -= element.offsetTop;
-    if (local.hasOwnProperty('parent')) {
-      local = local.parent;
-      element = local.element;
-    } else {
-      element = null;
-    }
-  }
-  while (element);
-  return new org_apache_flex_geom_Point(x, y);
-};
-
-
-/**
- * @expose
- * @param {org_apache_flex_geom_Point} point The Point to be converted.
- * @param {Object} local The object used as reference.
- * @return {org_apache_flex_geom_Point} The converted Point.
- */
-org_apache_flex_utils_PointUtils.localToGlobal =
-    function(point, local) {
-  var x = point.x, y = point.y;
-  var element = local.element;
-
-  do {
-    x += element.offsetLeft;
-    y += element.offsetTop;
-    if (local.hasOwnProperty('parent')) {
-      local = local.parent;
-      element = local.element;
-    } else {
-      element = null;
-    }
-  }
-  while (element);
-  return new org_apache_flex_geom_Point(x, y);
-};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/js/FlexJS/src/org/apache/flex/utils/Timer.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/utils/Timer.js b/frameworks/js/FlexJS/src/org/apache/flex/utils/Timer.js
deleted file mode 100644
index 5dcda3d..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/utils/Timer.js
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-goog.provide('org_apache_flex_utils_Timer');
-
-goog.require('org_apache_flex_events_EventDispatcher');
-
-
-
-/**
- * @constructor
- * @extends {org_apache_flex_events_EventDispatcher}
- * @param {number} delay The delay.
- * @param {number=} opt_repeatCount The repeatCount.
- */
-org_apache_flex_utils_Timer = function(delay, opt_repeatCount) {
-  org_apache_flex_utils_Timer.base(this, 'constructor');
-
-  if (opt_repeatCount !== undefined) {
-    this._repeatCount = opt_repeatCount;
-  }
-
-  /**
-   * @protected
-   * @type {number}
-   */
-  this.timerInterval = -1;
-
-  /**
-   * @protected
-   * @type {number}
-   */
-  this._delay = delay;
-
-  /**
-   * @protected
-   * @type {number}
-   */
-  this._currentCount = 0;
-};
-goog.inherits(org_apache_flex_utils_Timer,
-    org_apache_flex_events_EventDispatcher);
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org_apache_flex_utils_Timer.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'Timer',
-                qName: 'org_apache_flex_utils_Timer'}] };
-
-
-/**
- * @expose
- * Stops the timer and sets currentCount = 0.
- */
-org_apache_flex_utils_Timer.prototype.reset = function() {
-  this.stop();
-  this._currentCount = 0;
-};
-
-
-/**
- * @expose
- * Stops the timer.
- */
-org_apache_flex_utils_Timer.prototype.stop = function() {
-  clearInterval(this.timerInterval);
-  this.timerInterval = -1;
-};
-
-
-/**
- * @expose
- * Starts the timer.
- */
-org_apache_flex_utils_Timer.prototype.start = function() {
-  this.timerInterval =
-      setInterval(goog.bind(this.timerHandler, this), this._delay);
-};
-
-
-/**
- * @protected
- */
-org_apache_flex_utils_Timer.prototype.timerHandler =
-    function() {
-  this._currentCount++;
-  if (this._repeatCount > 0 && this._currentCount >= this._repeatCount) {
-    this.stop();
-  }
-
-  this.dispatchEvent(new org_apache_flex_events_Event('timer'));
-
-};
-
-Object.defineProperties(org_apache_flex_utils_Timer.prototype, {
-    /** @expose */
-    currentCount: {
-        /** @this {org_apache_flex_utils_Timer} */
-        get: function() {
-            return this._currentCount;
-        }
-    },
-    /** @expose */
-    running: {
-        /** @this {org_apache_flex_utils_Timer} */
-        get: function() {
-            return this.timerInterval !== -1;
-        }
-    },
-    /** @expose */
-    delay: {
-        /** @this {org_apache_flex_utils_Timer} */
-        get: function() {
-            return this._delay;
-        },
-        /** @this {org_apache_flex_utils_Timer} */
-        set: function(value) {
-            this._delay = value;
-        }
-    },
-    /** @expose */
-    repeatCount: {
-        /** @this {org_apache_flex_utils_Timer} */
-        get: function() {
-            return this._repeatCount;
-        },
-        /** @this {org_apache_flex_utils_Timer} */
-        set: function(value) {
-            this._repeatCount = value;
-        }
-    }
-});

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/js/FlexJS/src/org/apache/flex/utils/UIUtils.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/utils/UIUtils.js b/frameworks/js/FlexJS/src/org/apache/flex/utils/UIUtils.js
deleted file mode 100644
index fe1eaaa..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/utils/UIUtils.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-goog.provide('org_apache_flex_utils_UIUtils');
-
-goog.require('org_apache_flex_core_IPopUpHost');
-goog.require('org_apache_flex_utils_Language');
-
-
-
-/**
- * @constructor
- */
-org_apache_flex_utils_UIUtils = function() {
-};
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org_apache_flex_utils_UIUtils.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'UIUtils',
-                qName: 'org_apache_flex_utils_UIUtils' }] };
-
-
-/**
- * @expose
- * @param {Object} item The item to be centered.
- * @param {Object} relativeTo The object used as reference.
- */
-org_apache_flex_utils_UIUtils.center =
-    function(item, relativeTo) {
-
-  var rw = relativeTo.width;
-  if (isNaN(rw)) rw = window.innerWidth;
-  var rh = relativeTo.height;
-  if (isNaN(rh)) rh = window.innerHeight;
-
-  var xpos = (rw - item.width) / 2;
-  var ypos = (rh - item.height) / 2;
-  item.x = xpos;
-  item.y = ypos;
-};
-
-
-/**
- * @expose
- * @param {Object} start A component to start the search.
- * @return {Object} A component that implements IPopUpHost.
- */
-org_apache_flex_utils_UIUtils.findPopUpHost =
-    function(start) {
-
-  while (start != null && !org_apache_flex_utils_Language.is(start, org_apache_flex_core_IPopUpHost)) {
-    start = start.parent;
-  }
-
-  return start;
-};
-
-
-/**
- * @expose
- * @param {Object} popUp An IPopUpHost component looking to be removed.
- */
-org_apache_flex_utils_UIUtils.removePopUp =
-    function(popUp) {
-
-  var p = popUp.parent;
-  p.removeElement(popUp);
-};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/js/FlexJS/src/org/apache/flex/utils/ViewSourceContextMenuOption.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/utils/ViewSourceContextMenuOption.js b/frameworks/js/FlexJS/src/org/apache/flex/utils/ViewSourceContextMenuOption.js
deleted file mode 100644
index 5dae11a..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/utils/ViewSourceContextMenuOption.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-goog.provide('org_apache_flex_utils_ViewSourceContextMenuOption');
-
-goog.require('org_apache_flex_events_EventDispatcher');
-
-
-
-/**
- * @constructor
- * @extends {org_apache_flex_events_EventDispatcher}
- */
-org_apache_flex_utils_ViewSourceContextMenuOption = function() {
-  // no implementation in JS since ViewSource is already in menu
-};
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org_apache_flex_utils_ViewSourceContextMenuOption.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'ViewSourceContextMenuOption',
-                qName: 'org_apache_flex_utils_ViewSourceContextMenuOption'}] };
-
-
-Object.defineProperties(org_apache_flex_utils_ViewSourceContextMenuOption.prototype, {
-    /** @expose */
-    strand: {
-        /** @this {org_apache_flex_utils_ViewSourceContextMenuOption} */
-        set: function(value) {}
-    }
-});
-

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/js/FlexJS/tests/FlexJSTest.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/tests/FlexJSTest.js b/frameworks/js/FlexJS/tests/FlexJSTest.js
deleted file mode 100644
index cb81eac..0000000
--- a/frameworks/js/FlexJS/tests/FlexJSTest.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-goog.provide('FlexJSTest');
-
-goog.require('MyController');
-goog.require('MyInitialView');
-goog.require('MyModel');
-goog.require('MySimpleValuesImpl');
-
-goog.require('org.apache.flex.FlexGlobal');
-
-goog.require('org.apache.flex.core.Application');
-
-/**
- * @constructor
- * @extends {org.apache.flex.core.Application}
- */
-FlexJSTest = function() {
-    org.apache.flex.core.Application.call(this);
-
-    this.controller = org.apache.flex.FlexGlobal.newObject(
-        MyController, [this]
-    );
-
-    this.initialView =
-        /** @type {org.apache.flex.core.ViewBase} */ (
-            org.apache.flex.FlexGlobal.newObject(MyInitialView, [this])
-        );
-
-    this.model =
-        /** @type {flash.events.EventDispatcher} */ (
-            org.apache.flex.FlexGlobal.newObject(MyModel, [])
-        );
-    this.model.set_labelText('Say hi!');
-
-    this.valuesImpl =
-        /** @type {org.apache.flex.core.SimpleValuesImpl} */ (
-            org.apache.flex.FlexGlobal.newObject(MySimpleValuesImpl, [this])
-        );
-
-    // this method of logging survives the Closure Compiler
-    //window['console']['log'](app);
-};
-goog.inherits(FlexJSTest, org.apache.flex.core.Application);
-
-// Ensures the symbol will be visible after compiler renaming.
-goog.exportSymbol('FlexJSTest', FlexJSTest);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/js/FlexJS/tests/MyController.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/tests/MyController.js b/frameworks/js/FlexJS/tests/MyController.js
deleted file mode 100644
index beb6618..0000000
--- a/frameworks/js/FlexJS/tests/MyController.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the 'License');
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an 'AS IS' BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-goog.provide('MyController');
-
-goog.require('flash.events.EventDispatcher');
-
-goog.require('org.apache.flex.FlexGlobal');
-
-/**
- * @constructor
- * @param {org.apache.flex.core.Application} app The main application.
- */
-MyController = function(app) {
-    /**
-     * @type {org.apache.flex.core.Application}
-     */
-    this.app = app || null;
-
-    this.app.addEventListener(
-        'viewChanged', org.apache.flex.FlexGlobal.createProxy(
-            this, this.viewChangeHandler
-        )
-    );
-};
-
-/**
- * @this {MyController}
- * @param {flash.events.Event} event The event.
- */
-MyController.prototype.viewChangeHandler = function(event) {
-    this.app.initialView.addEventListener(
-        'buttonClicked', org.apache.flex.FlexGlobal.createProxy(
-            this, this.buttonClickHandler
-        )
-    );
-};
-
-/**
- * @this {MyController}
- * @param {flash.events.Event} event The event.
- */
-MyController.prototype.buttonClickHandler = function(event) {
-    this.app.model.set_labelText('Hello Universe');
-};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/js/FlexJS/tests/MyInitialView.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/tests/MyInitialView.js b/frameworks/js/FlexJS/tests/MyInitialView.js
deleted file mode 100644
index 35f35d2..0000000
--- a/frameworks/js/FlexJS/tests/MyInitialView.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the 'License');
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an 'AS IS' BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-goog.provide('MyInitialView');
-
-goog.require('org.apache.flex.FlexGlobal');
-
-goog.require('org.apache.flex.core.ViewBase');
-goog.require('org.apache.flex.html.Label');
-goog.require('org.apache.flex.html.TextButton');
-
-/**
- * @constructor
- * @extends {org.apache.flex.core.ViewBase}
- */
-MyInitialView = function() {
-    org.apache.flex.core.ViewBase.call(this);
-};
-goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
-
-/**
- * @override
- * @this {org.apache.flex.core.ViewBase}
- * @return {Array} The array of UI element descriptors.
- */
-MyInitialView.prototype.get_uiDescriptors = function() {
-    return [
-        org.apache.flex.html.Label,
-            null,
-            'lbl',
-            2, 'x', 100, 'y', 25,
-            0,
-            0,
-            1, 'text', 0, 'model', 'labelText', 'labelTextChanged',
-        org.apache.flex.html.TextButton,
-            null,
-            null,
-            3, 'text', 'OK', 'x', 100, 'y', 75,
-            0,
-            1, 'click', this.clickHandler, 0
-    ];
-};
-
-/**
- * @this {MyInitialView}
- * @param {flash.events.Event} event The event.
- */
-MyInitialView.prototype.clickHandler = function(event) {
-    this.dispatchEvent(
-        /** @type {flash.events.Event} */ (
-            org.apache.flex.FlexGlobal.newObject(
-                flash.events.Event, ['buttonClicked']
-            )
-        )
-    );
-};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/js/FlexJS/tests/MyModel.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/tests/MyModel.js b/frameworks/js/FlexJS/tests/MyModel.js
deleted file mode 100644
index 59a659a..0000000
--- a/frameworks/js/FlexJS/tests/MyModel.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the 'License');
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an 'AS IS' BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-goog.provide('MyModel');
-
-goog.require('flash.events.EventDispatcher');
-
-goog.require('org.apache.flex.FlexGlobal');
-
-/**
- * @constructor
- * @extends {flash.events.EventDispatcher}
- */
-MyModel = function() {
-    flash.events.EventDispatcher.call(this);
-
-    /**
-     * @private
-     * @type {string}
-     */
-    this.labelText_;
-};
-goog.inherits(MyModel, flash.events.EventDispatcher);
-
-/**
- * @expose
- * @this {MyModel}
- * @return {string} The labelText getter.
- */
-MyModel.prototype.get_labelText = function() {
-    return this.labelText_;
-};
-
-/**
- * @expose
- * @this {MyModel}
- * @param {string} value The labelText setter.
- */
-MyModel.prototype.set_labelText = function(value) {
-    if (value != this.labelText_) {
-        this.labelText_ = value;
-
-        this.dispatchEvent(
-            org.apache.flex.FlexGlobal.newObject(
-                flash.events.Event, ['labelTextChanged']
-            )
-        );
-    }
-};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/js/FlexJS/tests/MySimpleValuesImpl.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/tests/MySimpleValuesImpl.js b/frameworks/js/FlexJS/tests/MySimpleValuesImpl.js
deleted file mode 100644
index dfde492..0000000
--- a/frameworks/js/FlexJS/tests/MySimpleValuesImpl.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-goog.provide('MySimpleValuesImpl');
-
-goog.require('org.apache.flex.core.SimpleValuesImpl');
-
-/**
- * @constructor
- * @extends {org.apache.flex.core.SimpleValuesImpl}
- */
-MySimpleValuesImpl = function() {
-    org.apache.flex.core.SimpleValuesImpl.call(this);
-
-    /**
-     * @private
-     * @type {Object}
-     */
-    this.values_ = {
-        /*
-        ITextButtonBead :
-            org_apache_flex_html_beads_TextButtonBead,
-        ITextBead :
-            org_apache_flex_html_beads_TextFieldBead,
-        ITextModel :
-            org_apache_flex_html_beads_models.TextModel
-        */
-    };
-};
-goog.inherits(MySimpleValuesImpl, org.apache.flex.core.SimpleValuesImpl);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/js/FlexJS/tests/test.html
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/tests/test.html b/frameworks/js/FlexJS/tests/test.html
deleted file mode 100644
index 60c6032..0000000
--- a/frameworks/js/FlexJS/tests/test.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>
-<head>
-
-    <!-- start "compiled" -->
-    <script type="text/javascript" src="./FlexJS.js"></script>
-    <!-- end "compiled" -->
-
-    <!-- start "all": sequence matters ;-) ->
-
-    <script type="text/javascript" src="../closure/library/closure/goog/base.js"></script>
-
-    <script type="text/javascript" src="../src/FlexObject.js"></script>
-
-    <script type="text/javascript" src="../src/flash/events/Event.js"></script>
-
-    <script type="text/javascript" src="../src/FlexGlobal.js"></script>
-
-    <script type="text/javascript" src="../src/flash/events/EventDispatcher.js"></script>
-
-    <script type="text/javascript" src="../src/org/apache/flex/binding/SimpleBinding.js"></script>
-
-    <script type="text/javascript" src="../src/org/apache/flex/core/UIBase.js"></script>
-    <script type="text/javascript" src="../src/org/apache/flex/core/ViewBase.js"></script>
-    <script type="text/javascript" src="../src/org/apache/flex/core/ValuesManager.js"></script>
-    <script type="text/javascript" src="../src/org/apache/flex/core/SimpleValuesImpl.js"></script>
-    <script type="text/javascript" src="../src/org/apache/flex/core/Application.js"></script>
-
-    <script type="text/javascript" src="../src/org/apache/flex/html/Label.js"></script>
-    <script type="text/javascript" src="../src/org/apache/flex/html/TextButton.js"></script>
-
-    <script type="text/javascript" src="./MySimpleValuesImpl.js"></script>
-    <script type="text/javascript" src="./MyController.js"></script>
-    <script type="text/javascript" src="./MyModel.js"></script>
-    <script type="text/javascript" src="./MyInitialView.js"></script>
-
-    <script type="text/javascript" src="./FlexJSTest.js"></script>
-
-    <!-- end "all" -->
-
-</head>
-<body onload="new FlexJSTest().start();">
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Binding/js/src/org/apache/flex/binding/BindingBase.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/js/src/org/apache/flex/binding/BindingBase.js b/frameworks/projects/Binding/js/src/org/apache/flex/binding/BindingBase.js
new file mode 100644
index 0000000..863fc86
--- /dev/null
+++ b/frameworks/projects/Binding/js/src/org/apache/flex/binding/BindingBase.js
@@ -0,0 +1,121 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+goog.provide('org_apache_flex_binding_BindingBase');
+
+
+
+/**
+ * @constructor
+ */
+org_apache_flex_binding_BindingBase = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_binding_BindingBase.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'BindingBase',
+                qName: 'org_apache_flex_binding_BindingBase'}] };
+
+
+/**
+ * @protected
+ * @type {Object}
+ */
+org_apache_flex_binding_BindingBase.prototype.document = null;
+
+
+/**
+ * @expose
+ * @type {Object}
+ */
+org_apache_flex_binding_BindingBase.prototype.destination = null;
+
+
+/**
+ * @expose
+ * @type {string}
+ */
+org_apache_flex_binding_BindingBase.prototype.destinationPropertyName = '';
+
+
+/**
+ * @expose
+ * @type {Object}
+ */
+org_apache_flex_binding_BindingBase.prototype.source = null;
+
+
+/**
+ * @expose
+ * @type {string}
+ */
+org_apache_flex_binding_BindingBase.prototype.sourcePropertyName = '';
+
+
+/**
+ * @expose
+ * @type {?string}
+ */
+org_apache_flex_binding_BindingBase.prototype.sourceID = null;
+
+
+/**
+ * @expose
+ * @param {Object} document The MXML object.
+ */
+org_apache_flex_binding_BindingBase.prototype.setDocument = function(document) {
+  this.document = document;
+};
+
+
+/**
+ * @param {Object} event The event.
+ */
+org_apache_flex_binding_BindingBase.prototype.sourceChangeHandler = function(event) {
+  if (event.propertyName != this.sourceID)
+    return;
+
+  if (this.source)
+    this.source.removeEventListener(this.eventName,
+        goog.bind(this.changeHandler, this));
+
+  this.source = this.document[this.sourceID];
+};
+
+
+Object.defineProperties(org_apache_flex_binding_BindingBase.prototype, {
+  /** @expose */
+  strand: {
+        /** @this {org_apache_flex_binding_BindingBase} */
+      set: function(value) {
+          if (this.destination == null)
+            this.destination = value;
+          if (this.sourceID != null) {
+            this.source = this.document[this.sourceID];
+            if (this.source == null) {
+               this.document.addEventListener('valueChange',
+                    goog.bind(this.sourceChangeHandler, this));
+               return;
+            }
+          }
+          else
+            this.source = this.document;
+        }
+    }
+});

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Binding/js/src/org/apache/flex/binding/ChainBinding.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/js/src/org/apache/flex/binding/ChainBinding.js b/frameworks/projects/Binding/js/src/org/apache/flex/binding/ChainBinding.js
new file mode 100644
index 0000000..a7b73b9
--- /dev/null
+++ b/frameworks/projects/Binding/js/src/org/apache/flex/binding/ChainBinding.js
@@ -0,0 +1,207 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+goog.provide('org_apache_flex_binding_ChainBinding');
+goog.provide('org_apache_flex_binding_ChainWatcher');
+
+
+
+/**
+ * @constructor
+ */
+org_apache_flex_binding_ChainBinding = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_binding_ChainBinding.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'ChainBinding',
+                qName: 'org_apache_flex_binding_ChainBinding'}] };
+
+
+/**
+ * @protected
+ * @type {Object}
+ */
+org_apache_flex_binding_ChainBinding.prototype.document = null;
+
+
+/**
+ * @expose
+ * @type {Object}
+ */
+org_apache_flex_binding_ChainBinding.prototype.destination = null;
+
+
+/**
+ * @expose
+ * @type {Object}
+ */
+org_apache_flex_binding_ChainBinding.prototype.value = null;
+
+
+/**
+ * @expose
+ * @type {Object}
+ */
+org_apache_flex_binding_ChainBinding.prototype.source = null;
+
+
+/**
+ */
+org_apache_flex_binding_ChainBinding.prototype.applyBinding = function() {
+  var chainSet = this.evaluateSourceChain();
+  if (chainSet)
+    this.applyValue();
+};
+
+
+/**
+ * @return {boolean} True if chain complete.
+ */
+org_apache_flex_binding_ChainBinding.prototype.evaluateSourceChain = function() {
+  var propName;
+  var n = this.source.length;
+  var obj = this.document;
+  for (var i = 0; i < n - 1; i++) {
+    propName = this.source[i];
+    var propObj;
+    propObj = obj[propName];
+    var watcher = new org_apache_flex_binding_ChainWatcher(propName, this.applyBinding);
+    obj.addEventListener('valueChange', watcher.handler);
+    if (propObj == null)
+      return false;
+    obj = propObj;
+  }
+  propName = this.source[n - 1];
+  var self = this;
+  function valueChangeHandler(event) {
+    if (event.propertyName != propName)
+      return;
+    self.value = event.newValue;
+    self.applyValue();
+  }
+  obj.addEventListener('valueChange', valueChangeHandler);
+
+  // we have a complete chain, get the value
+  this.value = obj[propName];
+  return true;
+};
+
+
+/**
+ */
+org_apache_flex_binding_ChainBinding.prototype.applyValue = function() {
+  var destinationName, n, obj, self;
+  function handler(event) {
+    if (event.propertyName != propName)
+      return;
+    if (event.oldValue != null)
+      event.oldValue.removeEventListener('valueChange', handler);
+    self.applyValue();
+  }
+  if (typeof(this.destination) === 'string') {
+    destinationName = this.destination;
+    this.document[destinationName] = this.value;
+    return;
+  }
+
+  n = this.destination.length;
+  obj = this.document;
+  self = this;
+  for (var i = 0; i < n - 1; i++) {
+    var propName = this.destination[i];
+    var propObj;
+    propObj = obj[propName];
+    if (propObj == null) {
+      obj.addEventListener('valueChange', handler);
+      return;
+    }
+    obj = propObj;
+  }
+  obj[this.destination[n - 1]] = this.value;
+};
+
+
+/**
+ * @expose
+ * @param {Object} document The MXML object.
+ */
+org_apache_flex_binding_ChainBinding.prototype.setDocument = function(document) {
+  this.document = document;
+};
+
+
+
+/**
+ * @constructor
+ * @param {string} propName The name of the property to watch.
+ * @param {function()} cb The callback function.
+ */
+org_apache_flex_binding_ChainWatcher = function(propName, cb) {
+  this.propertyName = propName;
+  this.callback = cb;
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_binding_ChainWatcher.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'ChainWatcher',
+                qName: 'org_apache_flex_binding_ChainWatcher'}] };
+
+
+/**
+ * @protected
+ * @type {string}
+ */
+org_apache_flex_binding_ChainWatcher.prototype.propertyName = '';
+
+
+/**
+ * @protected
+ * @type {?function()}
+ */
+org_apache_flex_binding_ChainWatcher.prototype.callback = null;
+
+
+/**
+ * @expose
+ * @param {Object} event The event object.
+ */
+org_apache_flex_binding_ChainWatcher.prototype.handler = function(event) {
+  if (event.propertyName != this.propertyName)
+    return;
+  if (event.oldValue != null)
+    event.oldValue.removeEventListener('valueChange', this.handler);
+  this.callback();
+};
+
+
+Object.defineProperties(org_apache_flex_binding_ChainBinding.prototype, {
+    /** @expose */
+    strand: {
+        /** @this {org_apache_flex_binding_ChainBinding} */
+        set: function(value) {
+            this.applyBinding();
+        }
+    }
+});

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Binding/js/src/org/apache/flex/binding/ConstantBinding.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/js/src/org/apache/flex/binding/ConstantBinding.js b/frameworks/projects/Binding/js/src/org/apache/flex/binding/ConstantBinding.js
new file mode 100644
index 0000000..7f992ac
--- /dev/null
+++ b/frameworks/projects/Binding/js/src/org/apache/flex/binding/ConstantBinding.js
@@ -0,0 +1,58 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+goog.provide('org_apache_flex_binding_ConstantBinding');
+
+goog.require('org_apache_flex_binding_BindingBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_binding_BindingBase}
+ */
+org_apache_flex_binding_ConstantBinding = function() {
+  org_apache_flex_binding_ConstantBinding.base(this, 'constructor');
+};
+goog.inherits(org_apache_flex_binding_ConstantBinding,
+    org_apache_flex_binding_BindingBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_binding_ConstantBinding.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'ConstantBinding',
+                qName: 'org_apache_flex_binding_ConstantBinding'}] };
+
+
+Object.defineProperties(org_apache_flex_binding_ConstantBinding.prototype, {
+    /** @expose */
+    strand: {
+        /** @this {org_apache_flex_binding_ConstantBinding} */
+        set: function(value) {
+            org_apache_flex_utils_Language.superSetter(org_apache_flex_binding_ConstantBinding, this, 'strand', value);
+
+            var val;
+            if (this.sourcePropertyName in this.source) {
+              val = this.source[this.sourcePropertyName];
+            } else if (this.sourcePropertyName in this.source.constructor) {
+              val = this.source.constructor[this.sourcePropertyName];
+            }
+            this.destination[this.destinationPropertyName] = val;
+        }
+    }
+});

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Binding/js/src/org/apache/flex/binding/GenericBinding.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/js/src/org/apache/flex/binding/GenericBinding.js b/frameworks/projects/Binding/js/src/org/apache/flex/binding/GenericBinding.js
new file mode 100644
index 0000000..84eb1f0
--- /dev/null
+++ b/frameworks/projects/Binding/js/src/org/apache/flex/binding/GenericBinding.js
@@ -0,0 +1,172 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+goog.provide('org_apache_flex_binding_GenericBinding');
+
+goog.require('org_apache_flex_binding_BindingBase');
+goog.require('org_apache_flex_events_ValueChangeEvent');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_binding_BindingBase}
+ */
+org_apache_flex_binding_GenericBinding = function() {
+  org_apache_flex_binding_GenericBinding.base(this, 'constructor');
+};
+goog.inherits(org_apache_flex_binding_GenericBinding,
+    org_apache_flex_binding_BindingBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_binding_GenericBinding.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'GenericBinding',
+                qName: 'org_apache_flex_binding_GenericBinding'}] };
+
+
+/**
+ * @expose
+ * @type {Object}
+ */
+org_apache_flex_binding_GenericBinding.prototype.destinationData = null;
+
+
+/**
+ * @expose
+ * @type {?function(?): ?}
+ */
+org_apache_flex_binding_GenericBinding.prototype.destinationFunction = null;
+
+
+Object.defineProperties(org_apache_flex_binding_GenericBinding.prototype, {
+    /** @expose */
+    strand: {
+        /** @this {org_apache_flex_binding_GenericBinding} */
+        set: function(value) {
+            this.destination = value;
+
+            try {
+              var val = this.getValueFromSource();
+              this.applyValue(val);
+            } catch (e) {
+            }
+        }
+    }
+});
+
+
+/**
+ * @expose
+ * @return {Object} The value from the source as specified.
+ */
+org_apache_flex_binding_GenericBinding.prototype.getValueFromSource =
+    function() {
+  var obj;
+  if (typeof(this.source) == 'object' &&
+      typeof(this.source.slice) == 'function')
+  {
+    var arr = this.source;
+    var n = arr.length;
+    obj = this.document[arr[0]];
+    if (obj == null)
+      return null;
+    for (var i = 1; i < n; i++)
+    {
+      obj = obj[arr[i]];
+      if (obj == null)
+        return null;
+    }
+    return obj;
+  }
+  else if (typeof(this.source) == 'function')
+  {
+    var fn = this.source;
+    obj = fn.apply(this.document);
+    return obj;
+  }
+  else if (typeof(this.source) == 'string')
+  {
+    obj = this.document[this.source];
+    return obj;
+  }
+  return null;
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The value from the source as specified.
+ */
+org_apache_flex_binding_GenericBinding.prototype.applyValue =
+    function(value) {
+  if (this.destinationFunction != null)
+  {
+    this.destinationFunction.apply(this.document, [value]);
+  }
+  else if (typeof(this.destinationData) == 'object')
+  {
+    var arr = this.destinationData;
+    var n = arr.length;
+    var obj;
+    var getter = arr[0];
+    obj = this.document[arr[0]];
+    if (obj == null) {
+       this.document.addEventListener(
+           org_apache_flex_events_ValueChangeEvent.VALUE_CHANGE,
+           goog.bind(this.destinationChangeHandler, this));
+       return;
+    }
+    for (var i = 1; i < n - 1; i++)
+    {
+      getter = arr[i];
+       obj = obj[arr[i]];
+      if (obj == null)
+        return;
+    }
+    var setter = arr[n - 1];
+      obj[arr[n - 1]] = value;
+  }
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The value from the source as specified.
+ */
+org_apache_flex_binding_GenericBinding.prototype.valueChanged =
+    function(value) {
+
+  try {
+    var val = this.getValueFromSource();
+    this.applyValue(val);
+  } catch (e) {
+  }
+};
+
+
+/**
+ * @expose
+ * @param {Object} event The change event.
+ */
+org_apache_flex_binding_GenericBinding.prototype.destinationChangeHandler =
+    function(event) {
+  if (event.propertyName == this.destinationData[0])
+    this.valueChanged(null);
+};
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Binding/js/src/org/apache/flex/binding/PropertyWatcher.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/js/src/org/apache/flex/binding/PropertyWatcher.js b/frameworks/projects/Binding/js/src/org/apache/flex/binding/PropertyWatcher.js
new file mode 100644
index 0000000..685a40e
--- /dev/null
+++ b/frameworks/projects/Binding/js/src/org/apache/flex/binding/PropertyWatcher.js
@@ -0,0 +1,195 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+goog.provide('org_apache_flex_binding_PropertyWatcher');
+
+goog.require('org_apache_flex_binding_WatcherBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_binding_WatcherBase}
+ * @param {Object} source The source object.
+ * @param {string} propertyName The property in the source.
+ * @param {Object} eventNames An array of event names or an event name.
+ * @param {function(?): ?} getterFunction A function to get the source property.
+ */
+org_apache_flex_binding_PropertyWatcher =
+    function(source, propertyName, eventNames, getterFunction) {
+  org_apache_flex_binding_PropertyWatcher.base(this, 'constructor');
+
+  this.source = source;
+  this.propertyName = propertyName;
+  this.getterFunction = getterFunction;
+  this.eventNames = eventNames;
+};
+goog.inherits(org_apache_flex_binding_PropertyWatcher,
+    org_apache_flex_binding_WatcherBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_binding_PropertyWatcher.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'PropertyWatcher',
+                qName: 'org_apache_flex_binding_PropertyWatcher'}] };
+
+
+/**
+ * @type {Object}
+ */
+org_apache_flex_binding_PropertyWatcher.prototype.source = null;
+
+
+/**
+ * @type {?string}
+ */
+org_apache_flex_binding_PropertyWatcher.prototype.propertyName = null;
+
+
+/**
+ * @type {Object}
+ */
+org_apache_flex_binding_PropertyWatcher.prototype.eventNames = null;
+
+
+/**
+ * @type {?function(?): ?}
+ */
+org_apache_flex_binding_PropertyWatcher.prototype.getterFunction = null;
+
+
+/**
+ * @protected
+ * @param {Object} event The event.
+ */
+org_apache_flex_binding_PropertyWatcher.prototype.changeHandler =
+    function(event) {
+  if (typeof(event.propertyName) == 'string')
+  {
+    var propName = event.propertyName;
+
+    if (propName != this.propertyName)
+      return;
+  }
+
+  this.wrapUpdate(this.updateProperty);
+
+  this.notifyListeners();
+
+};
+
+
+/**
+ * @expose
+ * @param {Object} parent The new parent watcher.
+ */
+org_apache_flex_binding_PropertyWatcher.prototype.parentChanged =
+    function(parent) {
+
+  if (this.source &&
+      typeof(this.source.removeEventListener) == 'function')
+    this.removeEventListeners();
+
+  this.source = parent;
+
+  if (this.source && typeof(this.source.addEventListener) == 'function')
+    this.addEventListeners();
+
+  // Now get our property.
+  this.wrapUpdate(this.updateProperty);
+};
+
+
+/**
+ * @protected
+ */
+org_apache_flex_binding_PropertyWatcher.prototype.addEventListeners =
+    function() {
+  if (typeof(this.eventNames) == 'string')
+    this.source.addEventListener(this.eventNames,
+        goog.bind(this.changeHandler, this));
+  else if (typeof(this.eventNames) == 'object')
+  {
+    var arr = this.eventNames;
+    var n = arr.length;
+    for (var i = 0; i < n; i++)
+    {
+      var eventName = this.eventNames[i];
+      this.source.addEventListener(eventName,
+          goog.bind(this.changeHandler, this));
+    }
+  }
+};
+
+
+/**
+ * @protected
+ */
+org_apache_flex_binding_PropertyWatcher.prototype.removeEventListeners =
+    function() {
+  if (typeof(this.eventNames) == 'string')
+    this.source.removeEventListener(this.eventNames,
+        goog.bind(this.changeHandler, this));
+  else if (typeof(this.eventNames) == 'object')
+  {
+    var arr = this.eventNames;
+    var n = arr.length;
+    for (var i = 0; i < n; i++)
+    {
+      var eventName = this.eventNames[i];
+      this.source.removeEventListener(eventName,
+          goog.bind(this.changeHandler, this));
+    }
+  }
+};
+
+
+/**
+ * @protected
+ * Gets the actual property then updates
+ * the Watcher's children appropriately.
+ */
+org_apache_flex_binding_PropertyWatcher.prototype.updateProperty =
+    function() {
+
+  if (this.source)
+  {
+    if (this.propertyName == 'this')
+    {
+      this.value = this.source;
+    }
+    else
+    {
+      if (this.getterFunction != null)
+      {
+        this.value = this.getterFunction.apply(
+            this.source, [this.propertyName]);
+      }
+      else
+      {
+        this.value = this.source[this.propertyName];
+      }
+    }
+  }
+  else
+  {
+    this.value = null;
+  }
+
+  this.updateChildren();
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Binding/js/src/org/apache/flex/binding/SimpleBinding.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/js/src/org/apache/flex/binding/SimpleBinding.js b/frameworks/projects/Binding/js/src/org/apache/flex/binding/SimpleBinding.js
new file mode 100644
index 0000000..78197fb
--- /dev/null
+++ b/frameworks/projects/Binding/js/src/org/apache/flex/binding/SimpleBinding.js
@@ -0,0 +1,91 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+goog.provide('org_apache_flex_binding_SimpleBinding');
+
+goog.require('org_apache_flex_binding_BindingBase');
+goog.require('org_apache_flex_utils_Language');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_binding_BindingBase}
+ */
+org_apache_flex_binding_SimpleBinding = function() {
+  org_apache_flex_binding_SimpleBinding.base(this, 'constructor');
+};
+goog.inherits(org_apache_flex_binding_SimpleBinding,
+    org_apache_flex_binding_BindingBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_binding_SimpleBinding.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'SimpleBinding',
+                qName: 'org_apache_flex_binding_SimpleBinding'}] };
+
+
+/**
+ * @expose
+ * @type {string}
+ */
+org_apache_flex_binding_SimpleBinding.prototype.eventName = '';
+
+
+/**
+ * @expose
+ */
+org_apache_flex_binding_SimpleBinding.prototype.changeHandler = function() {
+  this.destination[this.destinationPropertyName] =
+      this.source[this.sourcePropertyName];
+};
+
+
+/**
+ * @param {Object} event The event.
+ */
+org_apache_flex_binding_SimpleBinding.prototype.sourceChangeHandler = function(event) {
+  org_apache_flex_binding_SimpleBinding.base(this, 'sourceChangeHandler', event);
+  if (this.source) {
+    this.source.addEventListener(this.eventName,
+        goog.bind(this.changeHandler, this));
+    this.changeHandler();
+  }
+};
+
+
+Object.defineProperties(org_apache_flex_binding_SimpleBinding.prototype, {
+    /** @expose */
+    strand: {
+        /** @this {org_apache_flex_binding_SimpleBinding} */
+         set: function(value) {
+            org_apache_flex_utils_Language.superSetter(
+                org_apache_flex_binding_SimpleBinding, this, 'strand', value);
+
+            if (!this.source)
+                return;
+
+            this.source.addEventListener(this.eventName,
+                goog.bind(this.changeHandler, this));
+
+            this.changeHandler();
+         }
+    }
+});
+
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Binding/js/src/org/apache/flex/binding/WatcherBase.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/js/src/org/apache/flex/binding/WatcherBase.js b/frameworks/projects/Binding/js/src/org/apache/flex/binding/WatcherBase.js
new file mode 100644
index 0000000..a7183a2
--- /dev/null
+++ b/frameworks/projects/Binding/js/src/org/apache/flex/binding/WatcherBase.js
@@ -0,0 +1,246 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+goog.provide('org_apache_flex_binding_WatcherBase');
+
+
+
+/**
+ * @constructor
+ */
+org_apache_flex_binding_WatcherBase = function() {
+
+  /**
+     * @protected
+     * @type {Object}
+     */
+  this.listeners = null;
+
+  /**
+     * @protected
+     * @type {Object}
+     * Children of this watcher are watching sub values.
+     */
+  this.children = null;
+
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_binding_WatcherBase.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'WatcherBase',
+                qName: 'org_apache_flex_binding_WatcherBase'}] };
+
+
+/**
+ *  @expose
+ *  @type {Object|number|string|boolean}
+ *  The value itself.
+ */
+org_apache_flex_binding_WatcherBase.prototype.value = null;
+
+
+/**
+ *  @expose
+ *  This is an abstract method that subclasses implement.
+ *  @this {org_apache_flex_binding_WatcherBase}
+ *  @param {Object} parent The new parent.
+ */
+org_apache_flex_binding_WatcherBase.prototype.parentChanged =
+    function(parent) {
+};
+
+
+/**
+ *  @expose
+ *  Add a child to this watcher, meaning that the child
+ *  is watching a sub value of ours.
+ *  @this {org_apache_flex_binding_WatcherBase}
+ *  @param {Object} child The new child.
+ */
+org_apache_flex_binding_WatcherBase.prototype.addChild =
+    function(child) {
+  if (!this.children)
+    this.children = [child];
+  else
+    this.children.push(child);
+
+  child.parentChanged(this.value);
+};
+
+
+/**
+ *  @expose
+ *  Add a binding to this watcher, meaning that the binding
+ *  is notified when our value changes.
+ *  @this {org_apache_flex_binding_WatcherBase}
+ *  @param {Object} binding The new binding.
+ */
+org_apache_flex_binding_WatcherBase.prototype.addBinding =
+    function(binding) {
+  if (!this.listeners)
+    this.listeners = [binding];
+  else
+    this.listeners.push(binding);
+
+  binding.valueChanged(this.value);
+};
+
+
+/**
+ *  @expose
+ *  @this {org_apache_flex_binding_WatcherBase}
+ *  We have probably changed, so go through
+ *  and make sure our children are updated.
+ */
+org_apache_flex_binding_WatcherBase.prototype.updateChildren = function() {
+  if (this.children)
+  {
+    var n = this.children.length;
+    for (var i = 0; i < n; ++i)
+    {
+      this.children[i].parentChanged(this);
+    }
+  }
+};
+
+
+/**
+ *  @protected
+ *  @this {org_apache_flex_binding_WatcherBase}
+ *  @param {Object} oldValue The prior value.
+ *  @return {boolean} True if value changed.
+ */
+org_apache_flex_binding_WatcherBase.prototype.valueChanged =
+    function(oldValue) {
+
+  if (oldValue == null && this.value == null)
+    return false;
+
+  var valType = typeof(this.value);
+
+  // The first check is meant to catch the delayed instantiation case
+  // where a control comes into existence but its value is still
+  // the equivalent of not having been filled in.
+  // Otherwise we simply return whether the value has changed.
+
+  if (valType == 'string')
+  {
+    if (oldValue == null && this.value === '')
+      return false;
+    else
+      return oldValue != this.value;
+  }
+
+  if (valType == 'number')
+  {
+    if (oldValue == null && this.value === 0)
+      return false;
+    else
+      return oldValue != this.value;
+  }
+
+  if (valType == 'boolean')
+  {
+    if (oldValue == null && this.value === false)
+      return false;
+    else
+      return oldValue != this.value;
+  }
+
+  return true;
+};
+
+
+/**
+ *  @protected
+ *  @this {org_apache_flex_binding_WatcherBase}
+ *  @param {function(?): ?} wrappedFunction The function to call.
+ */
+org_apache_flex_binding_WatcherBase.prototype.wrapUpdate =
+    function(wrappedFunction) {
+  try
+  {
+    wrappedFunction.apply(this);
+  }
+  catch (error)
+  {
+    var staticClass = org_apache_flex_binding_WatcherBase;
+    var n = staticClass.allowedErrorTypes.length;
+    for (var i = 0; i < n; i++)
+    {
+      if (org_apache_flex_utils_Language.is(error, staticClass.allowedErrorTypes[i].type))
+      {
+        var handler = staticClass.allowedErrorTypes[i].handler;
+        if (handler != null)
+          this.value = handler(this, wrappedFunction);
+        else
+          this.value = null;
+      }
+    }
+
+    if (error.errorID && staticClass.allowedErrors.indexOf(error.errorID) == -1) {
+      throw error;
+    }
+  }
+};
+
+
+/**
+ * Certain errors are normal when executing an update, so we swallow them:
+ */
+org_apache_flex_binding_WatcherBase.allowedErrors = [
+  1006, //   Error #1006: Call attempted on an object
+  //                that is not a function.
+  1009, //   Error #1009: null has no properties.
+  1010, //   Error #1010: undefined has no properties.
+  1055, //   Error #1055: - has no properties.
+  1069, //   Error #1069: Property - not found on - and
+  //                there is no default value
+  1507 //   Error #1507: - invalid null argument.
+];
+
+
+/**
+ * Certain types of errors are normal when executing an update,
+ * so we custom handle them or swallow them:
+ */
+org_apache_flex_binding_WatcherBase.allowedErrorTypes = [
+  { type: RangeError /*,
+              handler: function(w:WatcherBase,
+                    wrappedFunction:Function):Object { return null }*/
+  }
+];
+
+
+/**
+ *  @protected
+ *  @this {org_apache_flex_binding_WatcherBase}
+ */
+org_apache_flex_binding_WatcherBase.prototype.notifyListeners = function()
+    {
+  if (this.listeners)
+  {
+    var n = this.listeners.length;
+
+    for (var i = 0; i < n; i++)
+    {
+      this.listeners[i].valueChanged(this.value);
+    }
+  }
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/ChartBase.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/ChartBase.js b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/ChartBase.js
new file mode 100644
index 0000000..7ed7649
--- /dev/null
+++ b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/ChartBase.js
@@ -0,0 +1,85 @@
+/**
+ * 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_charts_core_IChart
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org_apache_flex_charts_core_ChartBase');
+
+goog.require('org_apache_flex_charts_core_IChart');
+goog.require('org_apache_flex_events_Event');
+goog.require('org_apache_flex_html_List');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_html_List}
+ * @implements {org_apache_flex_charts_core_IChart}
+ */
+org_apache_flex_charts_core_ChartBase =
+    function() {
+  org_apache_flex_charts_core_ChartBase.base(this, 'constructor');
+  this.className = 'ChartBase';
+};
+goog.inherits(
+    org_apache_flex_charts_core_ChartBase,
+    org_apache_flex_html_List);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_charts_core_ChartBase.prototype.FLEXJS_CLASS_INFO = {
+    names: [{ name: 'ChartBase', qName: 'org_apache_flex_charts_core_ChartBase'}]
+  };
+
+
+/**
+ * @override
+ */
+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;
+  };
+
+
+/**
+ * @private
+ * @type {Array}
+ */
+org_apache_flex_charts_core_ChartBase.prototype.series_ = null;
+
+
+Object.defineProperties(org_apache_flex_charts_core_ChartBase.prototype, {
+    /** @expose */
+    series: {
+        /** @this {org_apache_flex_charts_core_ChartBase} */
+        get: function() {
+             return this.series_;
+        },
+        /** @this {org_apache_flex_charts_core_ChartBase} */
+        set: function(value) {
+             this.series_ = value;
+             this.dispatchEvent(new org_apache_flex_events_Event('seriesChanged'));
+        }
+    }
+});

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IAxisBead.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IAxisBead.js b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IAxisBead.js
new file mode 100644
index 0000000..f5870d8
--- /dev/null
+++ b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IAxisBead.js
@@ -0,0 +1,61 @@
+/**
+ * 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_charts_core_IAxisBead
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org_apache_flex_charts_core_IAxisBead');
+
+goog.require('org_apache_flex_core_IBead');
+
+
+
+/**
+ * @interface
+ * @extends {org_apache_flex_core_IBead}
+ */
+org_apache_flex_charts_core_IAxisBead = function() {
+};
+
+Object.defineProperties(org_apache_flex_charts_core_IAxisBead.prototype, {
+    /** @expose */
+    placement: {
+        get: function() {},
+        set: function(value) {}
+    },
+    /** @expose */
+    axisStroke: {
+        get: function() {},
+        set: function(value) {}
+    },
+    /** @expose */
+    tickStroke: {
+        get: function() {},
+        set: function(value) {}
+    }
+});
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_charts_core_IAxisBead.prototype.FLEXJS_CLASS_INFO = {
+    names: [{ name: 'IAxisBead', qName: 'org_apache_flex_charts_core_IAxisBead'}],
+    interfaces: [org_apache_flex_core_IBead]
+  };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IAxisGroup.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IAxisGroup.js b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IAxisGroup.js
new file mode 100644
index 0000000..d7b826c
--- /dev/null
+++ b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IAxisGroup.js
@@ -0,0 +1,45 @@
+/**
+ * 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_charts_core_IAxisGroup
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org_apache_flex_charts_core_IAxisGroup');
+
+
+
+/**
+ * @interface
+ */
+org_apache_flex_charts_core_IAxisGroup = function() {
+};
+
+
+/**
+ * @return {void}
+ */
+org_apache_flex_charts_core_IAxisGroup.prototype.removeAllElements = function() {};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_charts_core_IAxisGroup.prototype.FLEXJS_CLASS_INFO = {
+    names: [{ name: 'IAxisGroup', qName: 'org_apache_flex_charts_core_IAxisGroup'}]
+  };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/ICartesianChartLayout.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/ICartesianChartLayout.js b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/ICartesianChartLayout.js
new file mode 100644
index 0000000..9acd74d
--- /dev/null
+++ b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/ICartesianChartLayout.js
@@ -0,0 +1,39 @@
+/**
+ * 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_charts_core_IChart
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org_apache_flex_charts_core_ICartesianChartLayout');
+
+
+
+/**
+ * @interface
+ */
+org_apache_flex_charts_core_ICartesianChartLayout = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_charts_core_ICartesianChartLayout.prototype.FLEXJS_CLASS_INFO = {
+    names: [{ name: 'ICartesianChartLayout', qName: 'org_apache_flex_charts_core_ICartesianChartLayout'}]
+  };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChart.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChart.js b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChart.js
new file mode 100644
index 0000000..e337ac5
--- /dev/null
+++ b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChart.js
@@ -0,0 +1,48 @@
+/**
+ * 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_charts_core_IChart
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org_apache_flex_charts_core_IChart');
+
+
+
+/**
+ * @interface
+ */
+org_apache_flex_charts_core_IChart = function() {
+};
+
+
+Object.defineProperties(org_apache_flex_charts_core_IChart.prototype, {
+    /** @expose */
+    series: {
+        get: function() {},
+        set: function(value) {}
+    }
+});
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_charts_core_IChart.prototype.FLEXJS_CLASS_INFO = {
+    names: [{ name: 'IChart', qName: 'org_apache_flex_charts_core_IChart'}]
+  };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartAxis.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartAxis.js b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartAxis.js
new file mode 100644
index 0000000..386fa6f
--- /dev/null
+++ b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartAxis.js
@@ -0,0 +1,39 @@
+/**
+ * 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_charts_core_IChartAxis
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org_apache_flex_charts_core_IChartAxis');
+
+
+
+/**
+ * @interface
+ */
+org_apache_flex_charts_core_IChartAxis = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_charts_core_IChartAxis.prototype.FLEXJS_CLASS_INFO = {
+    names: [{ name: 'IChartAxis', qName: 'org_apache_flex_charts_core_IChartAxis'}]
+  };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartDataGroup.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartDataGroup.js b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartDataGroup.js
new file mode 100644
index 0000000..22c4d76
--- /dev/null
+++ b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartDataGroup.js
@@ -0,0 +1,53 @@
+/**
+ * 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_charts_core_IChartDataGroup
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org_apache_flex_charts_core_IChartDataGroup');
+
+goog.require('mx_core_IFactory');
+goog.require('org_apache_flex_core_IItemRendererParent');
+
+
+
+/**
+ * @interface
+ * @extends {org_apache_flex_core_IItemRendererParent}
+ */
+org_apache_flex_charts_core_IChartDataGroup = function() {
+};
+
+
+/**
+ * @param {Object} series The series containing the itemRenderer.
+ * @param {number} index The position of the itemRenderer within the series.
+ * @return {Object} The itemRenderer matching the series and index.
+ */
+org_apache_flex_charts_core_IChartDataGroup.prototype.getItemRendererForSeriesAtIndex =
+  function(series, index) {};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_charts_core_IChartDataGroup.prototype.FLEXJS_CLASS_INFO = {
+    names: [{ name: 'IChartDataGroup', qName: 'org_apache_flex_charts_core_IChartDataGroup'}],
+    interfaces: [org_apache_flex_core_IItemRendererParent]
+  };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartItemRenderer.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartItemRenderer.js b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartItemRenderer.js
new file mode 100644
index 0000000..6ca280e
--- /dev/null
+++ b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartItemRenderer.js
@@ -0,0 +1,78 @@
+/**
+ * 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_charts_core_IChartItemRenderer
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org_apache_flex_charts_core_IChartItemRenderer');
+
+goog.require('org_apache_flex_core_IItemRenderer');
+
+
+
+/**
+ * @interface
+ * @extends {org_apache_flex_core_IItemRenderer}
+ */
+org_apache_flex_charts_core_IChartItemRenderer = function() {
+};
+
+
+Object.defineProperties(org_apache_flex_charts_core_IChart.prototype, {
+    /** @expose */
+    xField: {
+        get: function() {},
+        set: function(value) {}
+    },
+    /** @expose */
+    yField: {
+        get: function() {},
+        set: function(value) {}
+    },
+    /** @expose */
+    fillColor: {
+        get: function() {},
+        set: function(value) {}
+    },
+    /** @expose */
+    x: {
+        set: function(value) {}
+    },
+    /** @expose */
+    y: {
+        set: function(value) {}
+    },
+    /** @expose */
+    width: {
+        set: function(value) {}
+    },
+    /** @expose */
+    height: {
+        set: function(value) {}
+    }
+});
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_charts_core_IChartItemRenderer.prototype.FLEXJS_CLASS_INFO = {
+    names: [{ name: 'IChartItemRenderer', qName: 'org_apache_flex_charts_core_IChartItemRenderer'}],
+    interfaces: [org_apache_flex_core_IItemRenderer]
+  };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartSeries.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartSeries.js b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartSeries.js
new file mode 100644
index 0000000..b75086a
--- /dev/null
+++ b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IChartSeries.js
@@ -0,0 +1,65 @@
+/**
+ * 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_charts_core_IChartSeries
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org_apache_flex_charts_core_IChartSeries');
+
+goog.require('mx_core_IFactory');
+
+
+
+/**
+ * @interface
+ */
+org_apache_flex_charts_core_IChartSeries = function() {
+};
+
+
+Object.defineProperties(org_apache_flex_charts_core_IChartSeries.prototype, {
+    /** @expose */
+    xField: {
+        get: function() {},
+        set: function(value) {}
+    },
+    /** @expose */
+    yField: {
+        get: function() {},
+        set: function(value) {}
+    },
+    /** @expose */
+    fillColor: {
+        get: function() {},
+        set: function(value) {}
+    },
+    /** @expose */
+    itemRenderer: {
+        get: function() {},
+        set: function(value) {}
+    }
+});
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_charts_core_IChartSeries.prototype.FLEXJS_CLASS_INFO = {
+    names: [{ name: 'IChartSeries', qName: 'org_apache_flex_charts_core_IChartSeries'}]
+  };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IHorizontalAxisBead.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IHorizontalAxisBead.js b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IHorizontalAxisBead.js
new file mode 100644
index 0000000..e3173de
--- /dev/null
+++ b/frameworks/projects/Charts/js/src/org/apache/flex/charts/core/IHorizontalAxisBead.js
@@ -0,0 +1,60 @@
+/**
+ * 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_charts_core_IHorizontalAxisBead
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org_apache_flex_charts_core_IHorizontalAxisBead');
+
+goog.require('org_apache_flex_charts_core_IAxisBead');
+
+
+
+/**
+ * @interface
+ * @extends {org_apache_flex_charts_core_IAxisBead}
+ */
+org_apache_flex_charts_core_IHorizontalAxisBead = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_charts_core_IHorizontalAxisBead.prototype.FLEXJS_CLASS_INFO = {
+    names: [{ name: 'IHorizontalAxisBead', qName: 'org_apache_flex_charts_core_IHorizontalAxisBead'}],
+    interfaces: [org_apache_flex_charts_core_IAxisBead]
+  };
+
+
+Object.defineProperties(org_apache_flex_charts_core_IHorizontalAxisBead.prototype, {
+    /** @expose */
+    axisHeight: {
+        set: function(value) {},
+        get: function() {}
+    },
+    /** @expose */
+    maximum: {
+        get: function() {}
+    },
+    /** @expose */
+    minimum: {
+        get: function() {}
+    }
+});
\ No newline at end of file


Mime
View raw message