You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2014/03/25 22:03:36 UTC

[04/35] remove staticControls folders and move components up a level. Next commit will rename packages inside the files

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.js
new file mode 100644
index 0000000..8893383
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.js
@@ -0,0 +1,124 @@
+/**
+ * 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.html.staticControls.beads.controllers.ItemRendererMouseController');
+
+goog.require('org.apache.flex.core.IBeadController');
+
+
+
+/**
+ * @constructor
+ * @implements {org.apache.flex.core.IBeadController}
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    ItemRendererMouseController = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    ItemRendererMouseController.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'ItemRendererMouseController',
+                qName: 'org.apache.flex.html.staticControls.beads.controllers.ItemRendererMouseController' }],
+      interfaces: [org.apache.flex.core.IBeadController] };
+
+
+/**
+ * @expose
+ * @param {Object} value The strand for this component.
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    ItemRendererMouseController.prototype.set_strand = function(value) {
+  this.strand_ = value;
+
+  goog.events.listen(this.strand_.element, goog.events.EventType.MOUSEOVER,
+      goog.bind(this.handleMouseOver, this));
+
+  goog.events.listen(this.strand_.element, goog.events.EventType.MOUSEOUT,
+      goog.bind(this.handleMouseOut, this));
+
+  goog.events.listen(this.strand_.element, goog.events.EventType.MOUSEDOWN,
+      goog.bind(this.handleMouseDown, this));
+
+  goog.events.listen(this.strand_.element, goog.events.EventType.MOUSEUP,
+      goog.bind(this.handleMouseUp, this));
+};
+
+
+/**
+ * @expose
+ * @param {Object} event The mouse event that triggered the hover.
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    ItemRendererMouseController.prototype.handleMouseOver = function(event) {
+
+  this.strand_.set_hovered(true);
+
+  var newEvent = new goog.events.Event('rollover');
+  newEvent.target = this.strand_;
+  this.strand_.get_itemRendererParent().dispatchEvent(newEvent);
+};
+
+
+/**
+ * @expose
+ * @param {Object} event The mouse-out event.
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    ItemRendererMouseController.prototype.handleMouseOut = function(event) {
+
+  this.strand_.set_hovered(false);
+
+  var newEvent = new goog.events.Event('rollout');
+  newEvent.target = this.strand_;
+  this.strand_.get_itemRendererParent().dispatchEvent(newEvent);
+};
+
+
+/**
+ * @expose
+ * @param {Object} event The mouse-down event.
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    ItemRendererMouseController.prototype.handleMouseDown = function(event) {
+
+  // ??
+};
+
+
+/**
+ * @expose
+ * @param {Object} event The mouse-up event that triggers the selection.
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    ItemRendererMouseController.prototype.handleMouseUp = function(event) {
+
+  var newEvent = new goog.events.Event('selected');
+
+  // normally you do not - and should not - change the target of an event,
+  // but these events do not propagate nor bubble up the object tree, so
+  // we have to force the event's target to be this item renderer instance.
+
+  newEvent.target = this.strand_;
+
+  // since the event is not going to up the chain, we also have to dispatch
+  // it against its final destination.
+
+  this.strand_.get_itemRendererParent().dispatchEvent(newEvent);
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.js
new file mode 100644
index 0000000..42025b3
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.js
@@ -0,0 +1,77 @@
+/**
+ * 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.html.staticControls.beads.controllers.ListSingleSelectionMouseController');
+
+goog.require('org.apache.flex.core.IBeadController');
+goog.require('org.apache.flex.html.staticControls.beads.ListView');
+goog.require('org.apache.flex.html.staticControls.beads.models.ArraySelectionModel');
+
+
+
+/**
+ * @constructor
+ * @implements {org.apache.flex.core.IBeadController}
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    ListSingleSelectionMouseController = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.controllers.ListSingleSelectionMouseController.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'ListSingleSelectionMouseController',
+                qName: 'org.apache.flex.html.staticControls.beads.controllers.ListSingleSelectionMouseController' }],
+      interfaces: [org.apache.flex.core.IBeadController] };
+
+
+/**
+ * @expose
+ *        ListSingleSelectionMouseController}
+ * @param {Object} value The strand for this component.
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    ListSingleSelectionMouseController.prototype.set_strand = function(value) {
+  this.strand_ = value;
+
+  this.model = value.getBeadByType(
+      org.apache.flex.html.staticControls.beads.models.ArraySelectionModel);
+  this.listView = value.getBeadByType(
+      org.apache.flex.html.staticControls.beads.ListView);
+
+  this.dataGroup = this.listView.get_dataGroup();
+  this.dataGroup.addEventListener('selected',
+      goog.bind(this.selectedHandler, this));
+};
+
+
+/**
+ * @expose
+ *        ListSingleSelectionMouseController}
+ * @param {Object} event The event that triggered the selection.
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    ListSingleSelectionMouseController.prototype.selectedHandler =
+        function(event) {
+
+  var index = event.target.get_index();
+  this.model.set_selectedIndex(index);
+
+  var newEvent = new org.apache.flex.events.Event('change');
+  this.strand_.dispatchEvent(newEvent);
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/SliderMouseController.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/SliderMouseController.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/SliderMouseController.js
new file mode 100644
index 0000000..afa6c29
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/SliderMouseController.js
@@ -0,0 +1,173 @@
+/**
+ * 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.html.staticControls.beads.controllers.SliderMouseController');
+
+goog.require('org.apache.flex.html.staticControls.beads.SliderThumbView');
+goog.require('org.apache.flex.html.staticControls.beads.SliderTrackView');
+
+
+
+/**
+ * @constructor
+ */
+org.apache.flex.html.staticControls.beads.controllers.SliderMouseController =
+    function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    SliderMouseController.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'SliderMouseController',
+                qName: 'org.apache.flex.html.staticControls.beads.controllers.SliderMouseController' }] };
+
+
+/**
+ * @expose
+ *        SliderMouseController}
+ * @param {Object} value The strand.
+ */
+org.apache.flex.html.staticControls.beads.controllers.SliderMouseController.
+    prototype.set_strand = function(value) {
+  this.strand_ = value;
+
+  this.track = this.strand_.getBeadByType(
+      org.apache.flex.html.staticControls.beads.SliderTrackView);
+  this.thumb = this.strand_.getBeadByType(
+      org.apache.flex.html.staticControls.beads.SliderThumbView);
+
+  goog.events.listen(this.track.element, goog.events.EventType.CLICK,
+                     this.handleTrackClick, false, this);
+
+  goog.events.listen(this.thumb.element, goog.events.EventType.MOUSEDOWN,
+                     this.handleThumbDown, false, this);
+};
+
+
+/**
+ *        SliderMouseController}
+ * @param {Event} event The event triggering the function.
+ * @return {void} Handles click on track.
+ */
+org.apache.flex.html.staticControls.beads.controllers.SliderMouseController.
+    prototype.handleTrackClick =
+    function(event)
+    {
+  var xloc = event.clientX;
+  var p = Math.min(1, xloc / parseInt(this.track.element.style.width, 10));
+  var n = p * (this.strand_.get_maximum() - this.strand_.get_minimum()) +
+          this.strand_.get_minimum();
+
+  this.strand_.set_value(n);
+
+  this.origin = parseInt(this.thumb.element.style.left, 10);
+  this.position = parseInt(this.thumb.element.style.left, 10);
+
+  this.calcValFromMousePosition(event, true);
+
+  this.strand_.dispatchEvent(new org.apache.flex.events.Event('valueChanged'));
+};
+
+
+/**
+ *        SliderMouseController}
+ * @param {Event} event The event triggering the function.
+ * @return {void} Handles mouse-down on the thumb.
+ */
+org.apache.flex.html.staticControls.beads.controllers.SliderMouseController.
+    prototype.handleThumbDown =
+    function(event)
+    {
+  goog.events.listen(this.strand_.element, goog.events.EventType.MOUSEUP,
+                     this.handleThumbUp, false, this);
+  goog.events.listen(this.strand_.element, goog.events.EventType.MOUSEMOVE,
+                     this.handleThumbMove, false, this);
+
+  this.origin = event.clientX;
+  this.position = parseInt(this.thumb.element.style.left, 10);
+};
+
+
+/**
+ *        SliderMouseController}
+ * @param {Event} event The event triggering the function.
+ * @return {void} Handles mouse-up on the thumb.
+ */
+org.apache.flex.html.staticControls.beads.controllers.SliderMouseController.
+    prototype.handleThumbUp =
+    function(event)
+    {
+  goog.events.unlisten(this.strand_.element, goog.events.EventType.MOUSEUP,
+                       this.handleThumbUp, false, this);
+  goog.events.unlisten(this.strand_.element, goog.events.EventType.MOUSEMOVE,
+                       this.handleThumbMove, false, this);
+
+  this.calcValFromMousePosition(event, false);
+
+  this.strand_.dispatchEvent(new org.apache.flex.events.Event('valueChanged'));
+};
+
+
+/**
+ *        SliderMouseController}
+ * @param {Event} event The event triggering the function.
+ * @return {void} Handles mouse-move on the thumb.
+ */
+org.apache.flex.html.staticControls.beads.controllers.SliderMouseController.
+    prototype.handleThumbMove =
+    function(event)
+    {
+  this.calcValFromMousePosition(event, false);
+
+  this.strand_.dispatchEvent(new org.apache.flex.events.Event('valueChanged'));
+};
+
+
+/**
+ *        SliderMouseController}
+ * @param {Event} event The event triggering the function.
+ * @param {boolean} useOffset If true, event.offsetX is used in the calculation.
+ * @return {void} Determines the new value based on the movement of the mouse
+ * along the slider.
+ */
+org.apache.flex.html.staticControls.beads.controllers.SliderMouseController.
+    prototype.calcValFromMousePosition =
+    function(event, useOffset)
+    {
+  var deltaX = (useOffset ? event.offsetX : event.clientX) - this.origin;
+  var thumbW = parseInt(this.thumb.element.style.width, 10) / 2;
+  var newX = this.position + deltaX;
+
+  var p = newX / parseInt(this.track.element.style.width, 10);
+  var n = p * (this.strand_.get_maximum() - this.strand_.get_minimum()) +
+          this.strand_.get_minimum();
+  n = this.strand_.snap(n);
+  if (n < this.strand_.get_minimum()) n = this.strand_.get_minimum();
+  else if (n > this.strand_.get_maximum()) n = this.strand_.get_maximum();
+
+  p = (n - this.strand_.get_minimum()) / (this.strand_.get_maximum() -
+      this.strand_.get_minimum());
+  newX = p * parseInt(this.track.element.style.width, 10);
+
+  this.thumb.element.style.left = String(newX -
+      parseInt(this.thumb.element.style.width, 10) / 2) + 'px';
+
+  this.strand_.set_value(n);
+};
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/SpinnerMouseController.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/SpinnerMouseController.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/SpinnerMouseController.js
new file mode 100644
index 0000000..4549d09
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/controllers/SpinnerMouseController.js
@@ -0,0 +1,86 @@
+/**
+ * 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.html.staticControls.beads.controllers.SpinnerMouseController');
+
+goog.require('org.apache.flex.html.staticControls.TextButton');
+
+
+
+/**
+ * @constructor
+ */
+org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController =
+    function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    SpinnerMouseController.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'SpinnerMouseController',
+                qName: 'org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController' }] };
+
+
+/**
+ * @expose
+ *        SpinnerMouseController}
+ * @param {Object} value The strand.
+ */
+org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController.
+    prototype.set_strand = function(value) {
+  this.strand_ = value;
+
+  this.incrementButton = this.strand_.incrementButton;
+  this.decrementButton = this.strand_.decrementButton;
+
+  goog.events.listen(this.incrementButton.element, goog.events.EventType.CLICK,
+      goog.bind(this.handleIncrementClick, this));
+
+  goog.events.listen(this.decrementButton.element, goog.events.EventType.CLICK,
+      goog.bind(this.handleDecrementClick, this));
+};
+
+
+/**
+ *        SpinnerMouseController}
+ * @param {Object} event The event object.
+ */
+org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController.
+    prototype.handleIncrementClick = function(event)
+    {
+  var newValue = this.strand_.snap(Math.min(this.strand_.get_maximum(),
+      this.strand_.get_value() +
+      this.strand_.get_stepSize()));
+  this.strand_.set_value(newValue);
+};
+
+
+/**
+ *        SpinnerMouseController}
+ * @param {Event} event The event object.
+ */
+org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController.
+    prototype.handleDecrementClick =
+    function(event)
+    {
+  var newValue = this.strand_.snap(Math.max(this.strand_.get_minimum(),
+      this.strand_.get_value() -
+      this.strand_.get_stepSize()));
+  this.strand_.set_value(newValue);
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.js
new file mode 100644
index 0000000..6e1c0cf
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.js
@@ -0,0 +1,113 @@
+/**
+ * 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.html.staticControls.beads.layouts.ButtonBarLayout');
+
+goog.require('org.apache.flex.core.IBeadLayout');
+goog.require('org.apache.flex.html.staticControls.beads.ListView');
+
+
+
+/**
+ * @constructor
+ * @implements {org.apache.flex.core.IBeadLayout}
+ */
+org.apache.flex.html.staticControls.beads.layouts.ButtonBarLayout =
+    function() {
+  this.strand_ = null;
+
+  this.className = 'ButtonBarLayout';
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.layouts.ButtonBarLayout
+    .prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'ButtonBarLayout',
+                qName: 'org.apache.flex.html.staticControls.beads.layouts.ButtonBarLayout' }],
+      interfaces: [org.apache.flex.core.IBeadLayout] };
+
+
+/**
+ * @expose
+ * @param {Array} value A set of widths to use for each button (optional).
+ */
+org.apache.flex.html.staticControls.beads.layouts.ButtonBarLayout.prototype.set_buttonWidths =
+function(value) {
+  this.buttonWidths_ = value;
+};
+
+
+/**
+ * @expose
+ * @return {Array} A set of widths to use for each button.
+ */
+org.apache.flex.html.staticControls.beads.layouts.ButtonBarLayout.prototype.get_buttonWidths =
+function() {
+  return this.buttonWidths_;
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.staticControls.beads.layouts.ButtonBarLayout.
+    prototype.set_strand =
+    function(value) {
+  if (this.strand_ !== value) {
+    this.strand_ = value;
+    this.strand_.addEventListener('childrenAdded',
+        goog.bind(this.changeHandler, this));
+    this.strand_.addEventListener('itemsCreated',
+        goog.bind(this.changeHandler, this));
+    this.strand_.element.style.display = 'block';
+  }
+};
+
+
+/**
+ * @param {org.apache.flex.events.Event} event The text getter.
+ */
+org.apache.flex.html.staticControls.beads.layouts.ButtonBarLayout.
+    prototype.changeHandler = function(event) {
+  var children, i, n, xpos, useWidth, useHeight;
+
+  children = this.strand_.internalChildren();
+  n = children.length;
+
+  xpos = 0;
+  useWidth = this.strand_.get_width() / n;
+  useHeight = this.strand_.get_height();
+
+  for (i = 0; i < n; i++)
+  {
+    children[i].set_height(useHeight);
+    if (this.buttonWidths_) children[i].set_width(this.buttonWidths_[i]);
+    else children[i].set_width(useWidth);
+    children[i].element.style['vertical-align'] = 'middle';
+    children[i].element.style['text-align'] = 'center';
+    children[i].element.style['left-margin'] = 'auto';
+    children[i].element.style['right-margin'] = 'auto';
+
+    if (children[i].element.style.display == 'none')
+      children[i].lastDisplay_ = 'inline-block';
+    else
+      children[i].element.style.display = 'inline-block';
+  }
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/NonVirtualHorizontalLayout.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/NonVirtualHorizontalLayout.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/NonVirtualHorizontalLayout.js
new file mode 100644
index 0000000..d649698
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/NonVirtualHorizontalLayout.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.
+ */
+
+goog.provide('org.apache.flex.html.staticControls.beads.layouts.NonVirtualHorizontalLayout');
+
+goog.require('org.apache.flex.core.IBeadLayout');
+goog.require('org.apache.flex.html.staticControls.beads.ListView');
+
+
+
+/**
+ * @constructor
+ * @implements {org.apache.flex.core.IBeadLayout}
+ */
+org.apache.flex.html.staticControls.beads.layouts.NonVirtualHorizontalLayout =
+    function() {
+  this.strand_ = null;
+  this.className = 'NonVirtualHorizontalLayout';
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.layouts.NonVirtualHorizontalLayout.
+    prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'NonVirtualHorizontalLayout',
+                qName: 'org.apache.flex.html.staticControls.beads.layouts.NonVirtualHorizontalLayout' }],
+      interfaces: [org.apache.flex.core.IBeadLayout] };
+
+
+/**
+ * @expose
+          NonVirtualHorizontalLayout}
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.staticControls.beads.layouts.NonVirtualHorizontalLayout.
+    prototype.set_strand =
+    function(value) {
+  if (this.strand_ !== value) {
+    this.strand_ = value;
+    this.strand_.addEventListener('childrenAdded',
+        goog.bind(this.changeHandler, this));
+    this.strand_.addEventListener('itemsCreated',
+                                  goog.bind(this.changeHandler, this));
+    this.strand_.addEventListener('elementAdded',
+                                  goog.bind(this.changeHandler, this));
+    this.strand_.element.style.display = 'block';
+
+    this.changeHandler(null);
+  }
+};
+
+
+/**
+          NonVirtualHorizontalLayout}
+ * @param {org.apache.flex.events.Event} event The text getter.
+ */
+org.apache.flex.html.staticControls.beads.layouts.NonVirtualHorizontalLayout.
+    prototype.changeHandler = function(event) {
+  var children, i, n;
+
+  children = this.strand_.internalChildren();
+  n = children.length;
+  for (i = 0; i < n; i++)
+  {
+    if (children[i].style.display == 'none')
+      children[i].lastDisplay_ = 'inline-block';
+    else
+      children[i].style.display = 'inline-block';
+  }
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalLayout.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalLayout.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalLayout.js
new file mode 100644
index 0000000..23269b1
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalLayout.js
@@ -0,0 +1,76 @@
+/**
+ * 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.html.staticControls.beads.layouts.NonVirtualVerticalLayout');
+
+goog.require('org.apache.flex.core.IBeadLayout');
+
+
+
+/**
+ * @constructor
+ * @implements {org.apache.flex.core.IBeadLayout}
+ */
+org.apache.flex.html.staticControls.beads.layouts.NonVirtualVerticalLayout =
+    function() {
+  this.strand_ = null;
+  this.className = 'NonVirtualVerticalLayout';
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.layouts.NonVirtualVerticalLayout.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'NonVirtualVerticalLayout',
+                qName: 'org.apache.flex.html.staticControls.beads.layouts.NonVirtualVerticalLayout'}],
+      interfaces: [org.apache.flex.core.IBeadLayout] };
+
+
+/**
+ * @expose
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.staticControls.beads.layouts.NonVirtualVerticalLayout.
+    prototype.set_strand = function(value) {
+  if (this.strand_ !== value) {
+    this.strand_ = value;
+    this.strand_.addEventListener('childrenAdded',
+        goog.bind(this.changeHandler, this));
+    this.strand_.addEventListener('layoutNeeded',
+        goog.bind(this.changeHandler, this));
+  }
+};
+
+
+/**
+ * @param {org.apache.flex.events.Event} event The text getter.
+ */
+org.apache.flex.html.staticControls.beads.layouts.NonVirtualVerticalLayout.
+    prototype.changeHandler = function(event) {
+  var children, i, n;
+
+  children = this.strand_.internalChildren();
+  n = children.length;
+  for (i = 0; i < n; i++)
+  {
+    if (children[i].style.display === 'none') {
+      children[i].lastDisplay_ = 'block';
+    } else {
+      children[i].style.display = 'block';
+    }
+  }
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalScrollingLayout.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalScrollingLayout.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalScrollingLayout.js
new file mode 100644
index 0000000..87073c3
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalScrollingLayout.js
@@ -0,0 +1,80 @@
+/**
+ * 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.html.staticControls.beads.layouts.NonVirtualVerticalScrollingLayout');
+
+goog.require('org.apache.flex.core.IBeadLayout');
+
+
+
+/**
+ * @constructor
+ * @implements {org.apache.flex.core.IBeadLayout}
+ */
+org.apache.flex.html.staticControls.beads.layouts.
+    NonVirtualVerticalScrollingLayout = function() {
+  this.strand_ = null;
+  this.className = 'NonVirtualVerticalScrollingLayout';
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.layouts.
+    NonVirtualVerticalScrollingLayout.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'NonVirtualVerticalScrollingLayout',
+                qName: 'org.apache.flex.html.staticControls.beads.layouts.NonVirtualVerticalScrollingLayout' }],
+      interfaces: [org.apache.flex.core.IBeadLayout] };
+
+
+/**
+ * @expose
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.staticControls.beads.layouts.
+    NonVirtualVerticalScrollingLayout.prototype.set_strand = function(value) {
+  if (this.strand_ !== value) {
+    this.strand_ = value;
+    this.strand_.addEventListener('childrenAdded',
+        goog.bind(this.changeHandler, this));
+    this.strand_.addEventListener('layoutNeeded',
+        goog.bind(this.changeHandler, this));
+  }
+};
+
+
+/**
+ * @param {org.apache.flex.events.Event} event The text getter.
+ */
+org.apache.flex.html.staticControls.beads.layouts.
+    NonVirtualVerticalScrollingLayout.prototype.changeHandler =
+        function(event) {
+  var children, i, n;
+
+  children = this.strand_.internalChildren();
+  n = children.length;
+
+  for (i = 0; i < n; i++)
+  {
+    if (children[i].element.style.display == 'none')
+      children[i].lastDisplay_ = 'block';
+    else {
+      children[i].element.style.display = 'inline-block';
+      children[i].set_width(this.strand_.get_width());
+    }
+  }
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/TileLayout.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/TileLayout.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/TileLayout.js
new file mode 100644
index 0000000..c9b42f2
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/layouts/TileLayout.js
@@ -0,0 +1,158 @@
+/**
+ * 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.html.staticControls.beads.layouts.TileLayout');
+
+goog.require('org.apache.flex.core.IBeadLayout');
+
+
+
+/**
+ * @constructor
+ * @implements {org.apache.flex.core.IBeadLayout}
+ */
+org.apache.flex.html.staticControls.beads.layouts.TileLayout =
+    function() {
+  this.strand_ = null;
+  this.className = 'TileLayout';
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.layouts.TileLayout.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'TileLayout',
+                qName: 'org.apache.flex.html.staticControls.beads.layouts.TileLayout'}],
+      interfaces: [org.apache.flex.core.IBeadLayout] };
+
+
+/**
+ * @expose
+ * @return {number} The number of columns wide for the layout.
+ */
+org.apache.flex.html.staticControls.beads.layouts.TileLayout.prototype.
+  get_numColumns = function() {
+  return this._numColumns;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The number of columns wide for the layout.
+ */
+org.apache.flex.html.staticControls.beads.layouts.TileLayout.prototype.
+  set_numColumns = function(value) {
+  this._numColumns = value;
+};
+
+
+/**
+ * @expose
+ * @return {number} The width of each column in the layout.
+ */
+org.apache.flex.html.staticControls.beads.layouts.TileLayout.prototype.
+  get_columnWidth = function() {
+  return this._columnWidth;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The width of each column in the layout.
+ */
+org.apache.flex.html.staticControls.beads.layouts.TileLayout.prototype.
+  set_columnWidth = function(value) {
+  this._columnWidth = value;
+};
+
+
+/**
+ * @expose
+ * @return {number} The height of each row of the layout.
+ */
+org.apache.flex.html.staticControls.beads.layouts.TileLayout.prototype.
+  get_rowHeight = function() {
+  return this._rowHeight;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The height of each row of the Tile layout.
+ */
+org.apache.flex.html.staticControls.beads.layouts.TileLayout.prototype.
+  set_rowHeight = function(value) {
+  this._rowHeight = value;
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.staticControls.beads.layouts.TileLayout.prototype.
+  set_strand = function(value) {
+  if (this.strand_ !== value) {
+    this.strand_ = value;
+    this.strand_.addEventListener('childrenAdded',
+        goog.bind(this.changeHandler, this));
+    this.strand_.addEventListener('layoutNeeded',
+        goog.bind(this.changeHandler, this));
+  }
+};
+
+
+/**
+ * @param {org.apache.flex.events.Event} event The text getter.
+ */
+org.apache.flex.html.staticControls.beads.layouts.TileLayout.
+    prototype.changeHandler = function(event) {
+  var children, i, n;
+  var xpos, ypos, useWidth, useHeight;
+
+  children = this.strand_.internalChildren();
+  n = children.length;
+  if (n === 0) return;
+
+  xpos = 0;
+  ypos = 0;
+  useWidth = this.get_columnWidth();
+  useHeight = this.get_rowHeight();
+
+  if (isNaN(useWidth)) useWidth = Math.floor(this.strand_.get_width() / this.get_numColumns()); // + gap
+  if (isNaN(useHeight)) {
+    // given the width and total number of items, how many rows?
+    var numRows = Math.floor(n / this.get_numColumns());
+    useHeight = Math.floor(this.strand_.get_height() / numRows);
+  }
+
+  for (i = 0; i < n; i++)
+  {
+    var child = children[i].flexjs_wrapper;
+    child.set_width(useWidth);
+    child.set_height(useHeight);
+    child.set_x(xpos);
+    child.set_y(ypos);
+
+    xpos += useWidth;
+
+    if (((i + 1) % this.get_numColumns()) === 0) {
+      xpos = 0;
+      ypos += useHeight;
+    }
+  }
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/ArraySelectionModel.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/ArraySelectionModel.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/ArraySelectionModel.js
new file mode 100644
index 0000000..8d3c0f6
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/ArraySelectionModel.js
@@ -0,0 +1,160 @@
+/**
+ * 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.html.staticControls.beads.models.ArraySelectionModel');
+
+goog.require('org.apache.flex.core.ISelectionModel');
+goog.require('org.apache.flex.events.EventDispatcher');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.events.EventDispatcher}
+ * @implements {org.apache.flex.core.ISelectionModel}
+ */
+org.apache.flex.html.staticControls.beads.models.ArraySelectionModel =
+    function() {
+  goog.base(this);
+  this.className = 'ArraySelectionModel';
+};
+goog.inherits(
+    org.apache.flex.html.staticControls.beads.models.ArraySelectionModel,
+    org.apache.flex.events.EventDispatcher);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.models.ArraySelectionModel.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'ArraySelectionModel',
+                qName: 'org.apache.flex.html.staticControls.beads.models.ArraySelectionModel' }],
+      interfaces: [org.apache.flex.core.ISelectionModel] };
+
+
+/**
+ * @expose
+ * @param {Object} value The strand.
+ */
+org.apache.flex.html.staticControls.beads.models.ArraySelectionModel.prototype.
+    set_strand = function(value) {
+  this.strand_ = value;
+};
+
+
+/**
+ * @expose
+ * @return {Object} value The dataProvider.
+ */
+org.apache.flex.html.staticControls.beads.models.ArraySelectionModel.prototype.
+    get_dataProvider = function() {
+  return this.dataProvider_;
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The dataProvider.
+ */
+org.apache.flex.html.staticControls.beads.models.ArraySelectionModel.prototype.
+    set_dataProvider = function(value) {
+  this.dataProvider_ = value;
+  this.dispatchEvent('dataProviderChanged');
+};
+
+
+/**
+ * @expose
+ * @return {number} value The selected index.
+ */
+org.apache.flex.html.staticControls.beads.models.ArraySelectionModel.prototype.
+    get_selectedIndex = function() {
+  return this.selectedIndex_;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The selected index.
+ */
+org.apache.flex.html.staticControls.beads.models.ArraySelectionModel.prototype.
+    set_selectedIndex = function(value) {
+  this.selectedIndex_ = value;
+  this.dispatchEvent('selectedIndexChanged');
+};
+
+
+/**
+ * @expose
+ * @return {Object} value The selected item.
+ */
+org.apache.flex.html.staticControls.beads.models.ArraySelectionModel.prototype.
+    get_selectedItem = function() {
+  var si;
+
+  si = this.selectedIndex_;
+
+  if (!this.dataProvider_ || si < 0 ||
+      si >= this.dataProvider_.length) {
+    return null;
+  }
+
+  return this.dataProvider_[si];
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The selected item.
+ */
+org.apache.flex.html.staticControls.beads.models.ArraySelectionModel.prototype.
+    set_selectedItem = function(value) {
+  // find item in dataProvider and set selectedIndex or -1 if not exists
+
+  this.selectedIndex_ = -1;
+  var n = this.dataProvider_.length;
+  for (var i = 0; i < n; i++) {
+    var item = this.dataProvider_[i];
+    if (item == value) {
+      this.selectedIndex_ = i;
+      break;
+    }
+  }
+
+  this.dispatchEvent('selectedItemChanged');
+  this.dispatchEvent('selectedIndexChanged');
+};
+
+
+/**
+ * @expose
+ * @return {String} The name of the field to use as a label.
+ */
+org.apache.flex.html.staticControls.beads.models.ArraySelectionModel.prototype.get_labelField =
+function() {
+  return this.labelField_;
+};
+
+
+/**
+ * @expose
+ * @param {String} value The name of the field to use as a label.
+ */
+org.apache.flex.html.staticControls.beads.models.ArraySelectionModel.prototype.set_labelField =
+function(value) {
+  this.labelField_ = value;
+  this.dispatchEvent('labelFieldChanged');
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/DataGridModel.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/DataGridModel.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/DataGridModel.js
new file mode 100644
index 0000000..15c0f9a
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/DataGridModel.js
@@ -0,0 +1,79 @@
+/**
+ * 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.html.staticControls.beads.models.DataGridModel');
+
+goog.require('org.apache.flex.core.IDataGridModel');
+goog.require('org.apache.flex.html.staticControls.beads.models.ArraySelectionModel');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.html.staticControls.beads.models.ArraySelectionModel}
+ * @implements {org.apache.flex.core.IDataGridModel}
+ */
+org.apache.flex.html.staticControls.beads.models.DataGridModel =
+    function() {
+  goog.base(this);
+
+  this.labelFields_ = [];
+
+  this.className = 'DataGridModel';
+};
+goog.inherits(
+    org.apache.flex.html.staticControls.beads.models.DataGridModel,
+    org.apache.flex.html.staticControls.beads.models.ArraySelectionModel);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.models.DataGridModel.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'DataGridModel',
+                qName: 'org.apache.flex.html.staticControls.beads.models.DataGridModel' }],
+      interfaces: [org.apache.flex.core.IDataGridModel] };
+
+
+/**
+ * @expose
+ * @param {Object} value The strand.
+ */
+org.apache.flex.html.staticControls.beads.models.DataGridModel.prototype.
+    set_strand = function(value) {
+  goog.base(this, 'set_strand', value);
+  this.strand_ = value;
+};
+
+
+/**
+ * @expose
+ * @param {Array} value Array of DataGridColumn instances.
+ */
+org.apache.flex.html.staticControls.beads.models.DataGridModel.prototype.
+    set_columns = function(value) {
+  this.columns_ = value;
+};
+
+
+/**
+ * @expose
+ * @return {Array} Array of DataGridColumn instances.
+ */
+org.apache.flex.html.staticControls.beads.models.DataGridModel.prototype.
+    get_columns = function() {
+  return this.columns_;
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/ImageModel.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/ImageModel.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/ImageModel.js
new file mode 100644
index 0000000..889a6b7
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/ImageModel.js
@@ -0,0 +1,72 @@
+/**
+ * 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.html.staticControls.beads.models.ImageModel');
+
+goog.require('org.apache.flex.events.EventDispatcher');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.events.EventDispatcher}
+ */
+org.apache.flex.html.staticControls.beads.models.ImageModel =
+    function() {
+  goog.base(this);
+};
+goog.inherits(
+    org.apache.flex.html.staticControls.beads.models.ImageModel,
+    org.apache.flex.events.EventDispatcher);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.models.ImageModel.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'ImageModel',
+                qName: 'org.apache.flex.html.staticControls.beads.models.ImageModel'}] };
+
+
+/**
+ * @expose
+ * @param {Object} value The strand.
+ */
+org.apache.flex.html.staticControls.beads.models.ImageModel.prototype.
+    set_strand = function(value) {
+  this.strand_ = value;
+};
+
+
+/**
+ * @expose
+ * @return {Object} value The image source.
+ */
+org.apache.flex.html.staticControls.beads.models.ImageModel.prototype.
+    get_source = function() {
+  return this.source;
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The image source.
+ */
+org.apache.flex.html.staticControls.beads.models.ImageModel.prototype.
+    set_source = function(value) {
+  this.source = value;
+  this.dispatchEvent('sourceChanged');
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/PanelModel.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/PanelModel.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/PanelModel.js
new file mode 100644
index 0000000..04c735d
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/PanelModel.js
@@ -0,0 +1,136 @@
+/**
+ * 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.html.staticControls.beads.models.PanelModel');
+
+goog.require('org.apache.flex.events.EventDispatcher');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.events.EventDispatcher}
+ */
+org.apache.flex.html.staticControls.beads.models.PanelModel = function() {
+  goog.base(this);
+
+  /**
+   * @private
+   * @type {string}
+   */
+  this.title_ = '';
+  /**
+   * @private
+   * @type {string}
+   */
+  this.htmlTitle_ = '';
+  /**
+   * @private
+   * @type {boolean}
+   */
+  this.showCloseButton_ = false;
+};
+goog.inherits(org.apache.flex.html.staticControls.beads.models.PanelModel,
+    org.apache.flex.events.EventDispatcher);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.models.PanelModel.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'PanelModel',
+                qName: 'org.apache.flex.html.staticControls.beads.models.PanelModel'}] };
+
+
+/**
+ * @expose
+ * @param {Object} value The strand.
+ */
+org.apache.flex.html.staticControls.beads.models.PanelModel.prototype.
+    set_strand = function(value) {
+  this.strand_ = value;
+};
+
+
+/**
+ * @expose
+ * @return {string} The title.
+ */
+org.apache.flex.html.staticControls.beads.models.PanelModel.prototype.
+    get_title = function() {
+  return this.title_;
+};
+
+
+/**
+ * @expose
+ * @param {string} value The title to set.
+ */
+org.apache.flex.html.staticControls.beads.models.PanelModel.prototype.
+    set_title = function(value) {
+  if (this.title_ != value) {
+    this.title_ = value;
+    this.dispatchEvent('titleChange');
+  }
+};
+
+
+/**
+ * @expose
+ * @return {string} The HTML title.
+ */
+org.apache.flex.html.staticControls.beads.models.PanelModel.prototype.
+    get_htmlTitle = function() {
+  return this.htmlTitle_;
+};
+
+
+/**
+ * @expose
+ * @param {string} value The new HTML title.
+ */
+org.apache.flex.html.staticControls.beads.models.PanelModel.prototype.
+    set_htmlTitle = function(value) {
+  if (this.htmlTitle_ != value) {
+    this.htmlTitle_ = value;
+    this.dispatchEvent('htmlTitleChange');
+  }
+};
+
+
+/**
+ * @expose
+ * @return {boolean} Returns true if the close button should appear in
+ * the TitleBar.
+ */
+org.apache.flex.html.staticControls.beads.models.PanelModel.prototype.
+    get_showCloseButton = function() {
+  return this.showCloseButton_;
+};
+
+
+/**
+ * @expose
+ * @param {boolean} value Determines if the close button shows (true) or
+ * not (false).
+ */
+org.apache.flex.html.staticControls.beads.models.PanelModel.prototype.
+    set_showCloseButton = function(value) {
+  if (this.showCloseButton_ != value) {
+    this.showCloseButton_ = value;
+    this.dispatchEvent('showCloseButtonChange');
+  }
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/RangeModel.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/RangeModel.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/RangeModel.js
new file mode 100644
index 0000000..eeb391b
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/RangeModel.js
@@ -0,0 +1,200 @@
+/**
+ * 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.html.staticControls.beads.models.RangeModel');
+
+goog.require('org.apache.flex.events.EventDispatcher');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.events.EventDispatcher}
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel = function() {
+  goog.base(this);
+
+  this.minimum_ = 0;
+  this.maximum_ = 100;
+  this.value_ = 0;
+  this.snapInterval_ = 1;
+  this.stepSize_ = 1;
+};
+goog.inherits(org.apache.flex.html.staticControls.beads.models.RangeModel,
+    org.apache.flex.events.EventDispatcher);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'RangeModel',
+                qName: 'org.apache.flex.html.staticControls.beads.models.RangeModel'}] };
+
+
+/**
+ * @expose
+ * @param {Object} value The strand.
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.
+    set_strand = function(value) {
+  this.strand_ = value;
+};
+
+
+/**
+ * @expose
+ * @return {number} The current minimum value.
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.
+    get_minimum = function() {
+  return this.minimum_;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The new minimum value.
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.
+    set_minimum = function(value) {
+  if (this.minimum_ != value) {
+    this.minimum_ = value;
+    this.dispatchEvent('minimumChange');
+  }
+};
+
+
+/**
+ * @expose
+ * @return {number} The current maximu value.
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.
+    get_maximum = function() {
+  return this.maximum_;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The new maximum value.
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.
+    set_maximum = function(value) {
+  if (this.maximum_ != value) {
+    this.maximum_ = value;
+    this.dispatchEvent('maximumChange');
+  }
+};
+
+
+/**
+ * @expose
+ * @return {number} The current value.
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.
+    get_value = function() {
+  return this.value_;
+};
+
+
+/**
+ * @expose
+ * @param {number} newValue The new value.
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.
+    set_value = function(newValue) {
+  if (this.value_ != newValue) {
+
+    // value must lie within the boundaries of minimum & maximum
+    // and be on a step interval, so the value is adjusted to
+    // what is coming in.
+    newValue = Math.max(this.minimum_, newValue - this.stepSize_);
+    newValue = Math.min(this.maximum_, newValue + this.stepSize_);
+    this.value_ = this.snap(newValue);
+
+    this.dispatchEvent('valueChange');
+  }
+};
+
+
+/**
+ * @expose
+ * @return {number} The current snapInterval value.
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.
+    get_snapInterval = function() {
+  return this.snapInterval_;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The new snapInterval value.
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.
+    set_snapInterval = function(value) {
+  if (this.snapInterval_ != value) {
+    this.snapInterval_ = value;
+    this.dispatchEvent('snapIntervalChange');
+  }
+};
+
+
+/**
+ * @expose
+ * @return {number} The current stepSize value.
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.
+    get_stepSize = function() {
+  return this.stepSize_;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The new stepSize value.
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.
+    set_stepSize = function(value) {
+  if (this.stepSize_ != value) {
+    this.stepSize_ = value;
+    this.dispatchEvent('stepSizeChange');
+  }
+};
+
+
+/**
+ * @expose
+ * @param {number} value The candidate number.
+ * @return {number} Adjusted value.
+ */
+org.apache.flex.html.staticControls.beads.models.RangeModel.prototype.
+    snap = function(value) {
+  var si = this.snapInterval_;
+  var n = Math.round((value - this.minimum_) / si) *
+                 si + this.minimum_;
+  if (value > 0)
+  {
+    if (value - n < n + si - value)
+      return n;
+    return n + si;
+  }
+  if (value - n > n + si - value)
+    return n + si;
+  return n;
+};
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/TitleBarModel.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/TitleBarModel.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/TitleBarModel.js
new file mode 100644
index 0000000..8d9b64d
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/models/TitleBarModel.js
@@ -0,0 +1,136 @@
+/**
+ * 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.html.staticControls.beads.models.TitleBarModel');
+
+goog.require('org.apache.flex.events.EventDispatcher');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.events.EventDispatcher}
+ */
+org.apache.flex.html.staticControls.beads.models.TitleBarModel = function() {
+  goog.base(this);
+
+  /**
+   * @private
+   * @type {string}
+   */
+  this.title_ = '';
+  /**
+   * @private
+   * @type {string}
+   */
+  this.htmlTitle_ = '';
+  /**
+   * @private
+   * @type {boolean}
+   */
+  this.showCloseButton_ = false;
+};
+goog.inherits(org.apache.flex.html.staticControls.beads.models.TitleBarModel,
+    org.apache.flex.events.EventDispatcher);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.models.TitleBarModel.prototype.FLEXJS_CLASS_INFO =
+    { names: [{ name: 'RangeModel',
+                qName: 'org.apache.flex.html.staticControls.beads.models.TitleBarModel'}] };
+
+
+/**
+ * @expose
+ * @param {Object} value The strand.
+ */
+org.apache.flex.html.staticControls.beads.models.TitleBarModel.prototype.
+    set_strand = function(value) {
+  this.strand_ = value;
+};
+
+
+/**
+ * @expose
+ * @return {string} The title.
+ */
+org.apache.flex.html.staticControls.beads.models.TitleBarModel.prototype.
+    get_title = function() {
+  return this.title_;
+};
+
+
+/**
+ * @expose
+ * @param {string} value The title to set.
+ */
+org.apache.flex.html.staticControls.beads.models.TitleBarModel.prototype.
+    set_title = function(value) {
+  if (this.title_ != value) {
+    this.title_ = value;
+    this.dispatchEvent('titleChange');
+  }
+};
+
+
+/**
+ * @expose
+ * @return {string} The HTML title.
+ */
+org.apache.flex.html.staticControls.beads.models.TitleBarModel.prototype.
+    get_htmlTitle = function() {
+  return this.htmlTitle_;
+};
+
+
+/**
+ * @expose
+ * @param {string} value The new HTML title.
+ */
+org.apache.flex.html.staticControls.beads.models.TitleBarModel.prototype.
+    set_htmlTitle = function(value) {
+  if (this.htmlTitle_ != value) {
+    this.htmlTitle_ = value;
+    this.dispatchEvent('htmlTitleChange');
+  }
+};
+
+
+/**
+ * @expose
+ * @return {boolean} Returns true if the close button should appear in
+ * the TitleBar.
+ */
+org.apache.flex.html.staticControls.beads.models.TitleBarModel.prototype.
+    get_showCloseButton = function() {
+  return this.showCloseButton_;
+};
+
+
+/**
+ * @expose
+ * @param {boolean} value Determines if the close button shows (true) or
+ * not (false).
+ */
+org.apache.flex.html.staticControls.beads.models.TitleBarModel.prototype.
+    set_showCloseButton = function(value) {
+  if (this.showCloseButton_ != value) {
+    this.showCloseButton_ = value;
+    this.dispatchEvent('showCloseButtonChange');
+  }
+};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Alert.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Alert.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Alert.js
deleted file mode 100644
index 8f27c76..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Alert.js
+++ /dev/null
@@ -1,213 +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.html.staticControls.Alert');
-
-goog.require('org.apache.flex.core.UIBase');
-goog.require('org.apache.flex.html.staticControls.Container');
-goog.require('org.apache.flex.html.staticControls.Label');
-goog.require('org.apache.flex.html.staticControls.TextButton');
-goog.require('org.apache.flex.html.staticControls.TitleBar');
-
-
-
-/**
- * @constructor
- * @extends {org.apache.flex.html.staticControls.Container}
- */
-org.apache.flex.html.staticControls.Alert = function() {
-  goog.base(this);
-};
-goog.inherits(org.apache.flex.html.staticControls.Alert,
-    org.apache.flex.html.staticControls.Container);
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org.apache.flex.html.staticControls.Alert.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'Alert',
-                qName: 'org.apache.flex.html.staticControls.Alert'}] };
-
-
-/**
- * @type {number} The value for the Yes button option.
- */
-org.apache.flex.html.staticControls.Alert.YES = 0x000001;
-
-
-/**
- * @type {number} The value for the No button option.
- */
-org.apache.flex.html.staticControls.Alert.NO = 0x000002;
-
-
-/**
- * @type {number} The value for the OK button option.
- */
-org.apache.flex.html.staticControls.Alert.OK = 0x000004;
-
-
-/**
- * @type {number} The value for the Cancel button option.
- */
-org.apache.flex.html.staticControls.Alert.CANCEL = 0x000008;
-
-
-/**
- * @override
- */
-org.apache.flex.html.staticControls.Alert.prototype.createElement =
-    function() {
-  goog.base(this, 'createElement');
-
-  this.element.className = 'Alert';
-
-  // add in a title bar
-  this.titleBar = new org.apache.flex.html.staticControls.TitleBar();
-  this.addElement(this.titleBar);
-  this.titleBar.element.id = 'titleBar';
-
-  this.message = new org.apache.flex.html.staticControls.Label();
-  this.addElement(this.message);
-  this.message.element.id = 'message';
-
-  // add a place for the buttons
-  this.buttonArea = new org.apache.flex.html.staticControls.Container();
-  this.addElement(this.buttonArea);
-  this.buttonArea.element.id = 'buttonArea';
-
-  return this.element;
-};
-
-
-/**
- * @param {string} message The message to be displayed.
- * @param {Object} host The object to display the alert.
- * @param {string} title The message to be displayed in the title bar.
- * @param {number} flags The options for the buttons.
- */
-org.apache.flex.html.staticControls.Alert.show =
-    function(message, host, title, flags) {
-
-  var a = new org.apache.flex.html.staticControls.Alert();
-  host.addElement(a);
-  a.set_title(title);
-  a.set_text(message);
-  a.set_flags(flags);
-
-  a.positioner.style.position = 'relative';
-  a.positioner.style.width = '200px';
-  a.positioner.style.margin = 'auto';
-  a.positioner.style.top = '100px';
-};
-
-
-/**
- * @return {string} The message to be displayed in the title bar.
- */
-org.apache.flex.html.staticControls.Alert.prototype.get_title = function()
-    {
-  return this.titleBar.get_title();
-};
-
-
-/**
- * @param {string} value The message to be displayed in the title bar.
- */
-org.apache.flex.html.staticControls.Alert.prototype.set_title =
-    function(value)
-    {
-  this.titleBar.set_title(value);
-};
-
-
-/**
- * @return {string} The message to be displayed.
- */
-org.apache.flex.html.staticControls.Alert.prototype.get_text = function()
-    {
-  return this.message.get_text();
-};
-
-
-/**
- * @param {string} value The message to be displayed.
- */
-org.apache.flex.html.staticControls.Alert.prototype.set_text =
-    function(value)
-    {
-  this.message.set_text(value);
-};
-
-
-/**
- * @return {number} The button options.
- */
-org.apache.flex.html.staticControls.Alert.prototype.get_flags = function()
-    {
-  return this.flags;
-};
-
-
-/**
- * @param {number} value The button options.
- */
-org.apache.flex.html.staticControls.Alert.prototype.set_flags =
-    function(value)
-    {
-  this.flags = value;
-
-  // add buttons based on flags
-  if (this.flags & org.apache.flex.html.staticControls.Alert.OK) {
-    var ok = new org.apache.flex.html.staticControls.TextButton();
-    this.buttonArea.addElement(ok);
-    ok.set_text('OK');
-    goog.events.listen(/** @type {EventTarget} */ (ok.element), 'click',
-        goog.bind(this.dismissAlert, this));
-  }
-  if (this.flags & org.apache.flex.html.staticControls.Alert.CANCEL) {
-    var cancel = new org.apache.flex.html.staticControls.TextButton();
-    this.buttonArea.addElement(cancel);
-    cancel.set_text('Cancel');
-    goog.events.listen(/** @type {EventTarget} */ (cancel.element), 'click',
-        goog.bind(this.dismissAlert, this));
-  }
-  if (this.flags & org.apache.flex.html.staticControls.Alert.YES) {
-    var yes = new org.apache.flex.html.staticControls.TextButton();
-    this.buttonArea.addElement(yes);
-    yes.set_text('YES');
-    goog.events.listen(/** @type {EventTarget} */ (yes.element), 'click',
-        goog.bind(this.dismissAlert, this));
-  }
-  if (this.flags & org.apache.flex.html.staticControls.Alert.NO) {
-    var nob = new org.apache.flex.html.staticControls.TextButton();
-    this.buttonArea.addElement(nob);
-    nob.set_text('NO');
-    goog.events.listen(/** @type {EventTarget} */ (nob.element), 'click',
-        goog.bind(this.dismissAlert, this));
-  }
-};
-
-
-/**
- * @param {Object} event The event object.
- */
-org.apache.flex.html.staticControls.Alert.prototype.dismissAlert =
-    function(event)
-    {
-  this.element.parentElement.removeChild(this.element);
-};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Button.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Button.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Button.js
deleted file mode 100644
index 5f64d56..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Button.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.html.staticControls.Button');
-
-goog.require('org.apache.flex.core.UIBase');
-
-
-
-/**
- * @constructor
- * @extends {org.apache.flex.core.UIBase}
- */
-org.apache.flex.html.staticControls.Button = function() {
-  goog.base(this);
-};
-goog.inherits(org.apache.flex.html.staticControls.Button,
-    org.apache.flex.core.UIBase);
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org.apache.flex.html.staticControls.Button.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'Button',
-                qName: 'org.apache.flex.html.staticControls.Button'}] };
-
-
-/**
- * @override
- */
-org.apache.flex.html.staticControls.Button.prototype.createElement =
-    function() {
-  this.element = document.createElement('button');
-  this.element.setAttribute('type', 'button');
-
-  this.positioner = this.element;
-  this.element.flexjs_wrapper = this;
-
-  if (org.apache.flex.core.ValuesManager.valuesImpl.getValue) {
-    var impl = org.apache.flex.core.ValuesManager.valuesImpl.
-        getValue(this, 'iStatesImpl');
-  }
-
-  return this.element;
-};
-

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/ButtonBar.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/ButtonBar.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/ButtonBar.js
deleted file mode 100644
index 3181aaa..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/ButtonBar.js
+++ /dev/null
@@ -1,85 +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.html.staticControls.ButtonBar');
-
-goog.require('org.apache.flex.core.ListBase');
-goog.require('org.apache.flex.html.staticControls.List');
-goog.require('org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData');
-goog.require('org.apache.flex.html.staticControls.beads.layouts.NonVirtualHorizontalLayout');
-goog.require('org.apache.flex.html.staticControls.supportClasses.ButtonBarButtonItemRenderer');
-
-
-
-/**
- * @constructor
- * @extends {org.apache.flex.html.staticControls.List}
- */
-org.apache.flex.html.staticControls.ButtonBar = function() {
-
-  //  this.model = new
-  //        org.apache.flex.html.staticControls.beads.models.ArraySelectionModel();
-  //  this.addBead(this.model);
-
-  goog.base(this);
-
-  //  this.addBead(new
-  //        org.apache.flex.html.staticControls.beads.ListView());
-
-  //  this.addBead(new
-  //org.apache.flex.html.staticControls.beads.layouts.NonVirtualHorizontalLayout());
-
-  //  this.itemRendererFactory = new
-  //        org.apache.flex.html.staticControls.beads.
-  //        DataItemRendererFactoryForArrayData();
-  //  this.itemRendererFactory.set_itemRendererClass('org.apache.flex.html.' +
-  //        'staticControls.supportClasses.ButtonBarButtonItemRenderer');
-  //  this.addBead(this.itemRendererFactory);
-
-  //  this.addBead(new
-  //        org.apache.flex.html.staticControls.beads.controllers.
-  //        ListSingleSelectionMouseController());
-};
-goog.inherits(org.apache.flex.html.staticControls.ButtonBar,
-    org.apache.flex.html.staticControls.List);
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org.apache.flex.html.staticControls.ButtonBar.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'ButtonBar',
-                qName: 'org.apache.flex.html.staticControls.ButtonBar'}] };
-
-
-/**
- * @override
- */
-org.apache.flex.html.staticControls.ButtonBar.prototype.createElement =
-    function() {
-  //goog.base(this, 'createElement');
-
-  this.element = document.createElement('div');
-  this.element.style.overflow = 'auto';
-  this.element.style.border = 'solid';
-  this.element.style.borderWidth = '1px';
-  this.element.style.borderColor = '#333333';
-  this.positioner = this.element;
-
-  this.set_className('ButtonBar');
-
-  return this.element;
-};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/CheckBox.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/CheckBox.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/CheckBox.js
deleted file mode 100644
index 0f63f39..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/CheckBox.js
+++ /dev/null
@@ -1,99 +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.html.staticControls.CheckBox');
-
-goog.require('org.apache.flex.core.UIBase');
-
-
-
-/**
- * @constructor
- * @extends {org.apache.flex.core.UIBase}
- */
-org.apache.flex.html.staticControls.CheckBox = function() {
-  goog.base(this);
-};
-goog.inherits(org.apache.flex.html.staticControls.CheckBox,
-    org.apache.flex.core.UIBase);
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org.apache.flex.html.staticControls.CheckBox.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'CheckBox',
-                qName: 'org.apache.flex.html.staticControls.CheckBox'}] };
-
-
-/**
- * @override
- */
-org.apache.flex.html.staticControls.CheckBox.prototype.createElement =
-    function() {
-  var cb;
-
-  this.element = document.createElement('label');
-
-  cb = document.createElement('input');
-  cb.type = 'checkbox';
-  this.element.appendChild(cb);
-  this.element.appendChild(document.createTextNode(''));
-
-  this.positioner = this.element;
-  cb.flexjs_wrapper = this;
-
-  return this.element;
-};
-
-
-/**
- * @expose
- * @return {string} The text getter.
- */
-org.apache.flex.html.staticControls.CheckBox.prototype.get_text = function() {
-  return this.element.childNodes.item(1).nodeValue;
-};
-
-
-/**
- * @expose
- * @param {string} value The text setter.
- */
-org.apache.flex.html.staticControls.CheckBox.prototype.set_text =
-    function(value) {
-  this.element.childNodes.item(1).nodeValue = value;
-};
-
-
-/**
- * @expose
- * @return {boolean} The selected getter.
- */
-org.apache.flex.html.staticControls.CheckBox.prototype.get_selected =
-    function() {
-  return this.element.childNodes.item(0).checked;
-};
-
-
-/**
- * @expose
- * @param {boolean} value The selected setter.
- */
-org.apache.flex.html.staticControls.CheckBox.prototype.set_selected =
-    function(value) {
-  this.element.childNodes.item(0).checked = value;
-};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/ComboBox.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/ComboBox.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/ComboBox.js
deleted file mode 100644
index b469b04..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/ComboBox.js
+++ /dev/null
@@ -1,210 +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.html.staticControls.ComboBox');
-
-goog.require('org.apache.flex.core.ListBase');
-
-
-
-/**
- * @constructor
- * @extends {org.apache.flex.core.ListBase}
- */
-org.apache.flex.html.staticControls.ComboBox = function() {
-  goog.base(this);
-};
-goog.inherits(org.apache.flex.html.staticControls.ComboBox,
-    org.apache.flex.core.ListBase);
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org.apache.flex.html.staticControls.ComboBox.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'ComboBox',
-                qName: 'org.apache.flex.html.staticControls.ComboBox'}] };
-
-
-/**
- * @override
- */
-org.apache.flex.html.staticControls.ComboBox.prototype.createElement =
-    function() {
-  var button, input;
-
-  this.element = document.createElement('div');
-
-  input = document.createElement('input');
-  input.style.position = 'absolute';
-  input.style.width = '80px';
-  this.element.appendChild(input);
-
-  button = document.createElement('div');
-  button.style.position = 'absolute';
-  button.style.top = '0px';
-  button.style.right = '0px';
-  button.style.background = '#bbb';
-  button.style.width = '16px';
-  button.style.height = '20px';
-  button.style.margin = '0';
-  button.style.border = 'solid #609 1px';
-  goog.events.listen(button, 'click', goog.bind(this.buttonClicked, this));
-  this.element.appendChild(button);
-
-  this.element.style.position = 'relative';
-
-  this.positioner = this.element;
-
-  // add a click handler so that a click outside of the combo box can
-  // dismiss the pop-up should it be visible.
-  goog.events.listen(document, 'click',
-      goog.bind(this.dismissPopup, this));
-
-  input.flexjs_wrapper = this;
-
-  return this.element;
-};
-
-
-/**
- * @expose
- * @param {Object} event The event.
- */
-org.apache.flex.html.staticControls.ComboBox.prototype.selectChanged =
-    function(event) {
-  var select;
-
-  select = event.currentTarget;
-
-  this.set_selectedItem(select.options[select.selectedIndex].value);
-
-  this.popup.parentNode.removeChild(this.popup);
-  this.popup = null;
-
-  this.dispatchEvent(event);
-};
-
-
-/**
- * @expose
- * @param {Object=} opt_event The event.
- */
-org.apache.flex.html.staticControls.ComboBox.prototype.dismissPopup =
-    function(opt_event) {
-  // remove the popup if it already exists
-  if (this.popup) {
-    this.popup.parentNode.removeChild(this.popup);
-    this.popup = null;
-  }
-};
-
-
-/**
- * @expose
- * @param {Object} event The event.
- */
-org.apache.flex.html.staticControls.ComboBox.prototype.buttonClicked =
-    function(event) {
-  /**
-   * @type {Array.<string>}
-   */
-  var dp;
-  var i, input, left, n, opt, opts, pn, popup, select, si, top, width;
-
-  event.stopPropagation();
-
-  if (this.popup) {
-    this.dismissPopup();
-
-    return;
-  }
-
-  input = this.element.childNodes.item(0);
-
-  pn = this.element;
-  top = pn.offsetTop + input.offsetHeight;
-  left = pn.offsetLeft;
-  width = pn.offsetWidth;
-
-  popup = document.createElement('div');
-  popup.className = 'popup';
-  popup.id = 'test';
-  popup.style.position = 'absolute';
-  popup.style.top = top.toString() + 'px';
-  popup.style.left = left.toString() + 'px';
-  popup.style.width = width.toString() + 'px';
-  popup.style.margin = '0px auto';
-  popup.style.padding = '0px';
-  popup.style.zIndex = '10000';
-
-  select = document.createElement('select');
-  select.style.width = width.toString() + 'px';
-  goog.events.listen(select, 'change', goog.bind(this.selectChanged, this));
-  opts = select.options;
-
-  dp = /** @type {Array.<string>} */ (this.get_dataProvider());
-  n = dp.length;
-  for (i = 0; i < n; i++) {
-    opt = document.createElement('option');
-    opt.text = dp[i];
-    opts.add(opt);
-  }
-
-  select.size = n;
-
-  si = this.get_selectedIndex();
-  if (si < 0) {
-    select.value = null;
-  } else {
-    select.value = dp[si];
-  }
-
-  this.popup = popup;
-
-  popup.appendChild(select);
-  document.body.appendChild(popup);
-};
-
-
-/**
- * @override
- * @expose
- * @param {Array.<Object>} value The collection of data.
- */
-org.apache.flex.html.staticControls.ComboBox.prototype.set_dataProvider =
-    function(value) {
-  this.dataProvider = value;
-};
-
-
-/**
- * @expose
- * @return {string} The text getter.
- */
-org.apache.flex.html.staticControls.ComboBox.prototype.get_text = function() {
-  return this.element.childNodes.item(0).value;
-};
-
-
-/**
- * @expose
- * @param {string} value The text setter.
- */
-org.apache.flex.html.staticControls.ComboBox.prototype.set_text =
-    function(value) {
-  this.element.childNodes.item(0).value = value;
-};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Container.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Container.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Container.js
deleted file mode 100644
index 22a3840..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Container.js
+++ /dev/null
@@ -1,86 +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.html.staticControls.Container');
-
-goog.require('org.apache.flex.core.ContainerBase');
-
-
-
-/**
- * @constructor
- * @extends {org.apache.flex.core.ContainerBase}
- */
-org.apache.flex.html.staticControls.Container = function() {
-  goog.base(this);
-};
-goog.inherits(org.apache.flex.html.staticControls.Container,
-    org.apache.flex.core.ContainerBase);
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org.apache.flex.html.staticControls.Container.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'Container',
-                qName: 'org.apache.flex.html.staticControls.Container' }] };
-
-
-/**
- * @override
- */
-org.apache.flex.html.staticControls.Container.prototype.createElement =
-    function() {
-  var cb;
-
-  this.element = document.createElement('div');
-
-  this.positioner = this.element;
-  this.element.flexjs_wrapper = this;
-
-  return this.element;
-};
-
-
-/**
- * @override
- */
-org.apache.flex.html.staticControls.Container.prototype.addElement =
-    function(child) {
-  goog.base(this, 'addElement', child);
-  this.dispatchEvent('elementAdded');
-};
-
-
-/**
- * @expose
- */
-org.apache.flex.html.staticControls.Container.prototype.childrenAdded =
-    function() {
-  this.dispatchEvent('childrenAdded');
-};
-
-
-/**
- * @expose
- * @return {Array} the HTML DOM element children.
- */
-org.apache.flex.html.staticControls.Container.prototype.internalChildren =
-    function() {
-  return this.element.children;
-};
-
-

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/ControlBar.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/ControlBar.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/ControlBar.js
deleted file mode 100644
index 09b1fa5..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/ControlBar.js
+++ /dev/null
@@ -1,57 +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.html.staticControls.ControlBar');
-
-goog.require('org.apache.flex.html.staticControls.Container');
-
-
-
-/**
- * @constructor
- * @extends {org.apache.flex.html.staticControls.Container}
- */
-org.apache.flex.html.staticControls.ControlBar = function() {
-  goog.base(this);
-
-};
-goog.inherits(org.apache.flex.html.staticControls.ControlBar,
-    org.apache.flex.html.staticControls.Container);
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org.apache.flex.html.staticControls.ControlBar.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'ControlBar',
-                qName: 'org.apache.flex.html.staticControls.ControlBar'}] };
-
-
-/**
- * @override
- */
-org.apache.flex.html.staticControls.ControlBar.prototype.createElement =
-    function() {
-
-  this.element = document.createElement('div');
-  this.element.className = 'ControlBar';
-  this.element.style.display = 'inline';
-
-  this.positioner = this.element;
-  this.element.flexjs_wrapper = this;
-
-  return this.element;
-};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/DropDownList.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/DropDownList.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/DropDownList.js
deleted file mode 100644
index e1d2ecf..0000000
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/DropDownList.js
+++ /dev/null
@@ -1,114 +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.html.staticControls.DropDownList');
-
-goog.require('org.apache.flex.core.ListBase');
-
-
-
-/**
- * @constructor
- * @extends {org.apache.flex.core.ListBase}
- */
-org.apache.flex.html.staticControls.DropDownList = function() {
-  goog.base(this);
-  this.model = new org.apache.flex.html.staticControls.beads.
-      models.ArraySelectionModel();
-};
-goog.inherits(org.apache.flex.html.staticControls.DropDownList,
-    org.apache.flex.core.ListBase);
-
-
-/**
- * Metadata
- *
- * @type {Object.<string, Array.<Object>>}
- */
-org.apache.flex.html.staticControls.DropDownList.prototype.FLEXJS_CLASS_INFO =
-    { names: [{ name: 'DropDownList',
-                qName: 'org.apache.flex.html.staticControls.DropDownList'}] };
-
-
-/**
- * @override
- */
-org.apache.flex.html.staticControls.DropDownList.prototype.
-    createElement = function() {
-  this.element = document.createElement('select');
-  this.element.size = 1;
-  goog.events.listen(this.element, 'change',
-      goog.bind(this.changeHandler, this));
-  this.positioner = this.element;
-
-  return this.element;
-};
-
-
-/**
- * @expose
- * @param {Object} value The new dataProvider.
- */
-org.apache.flex.html.staticControls.DropDownList.prototype.
-    set_dataProvider = function(value) {
-  var dp, i, n, opt;
-
-  this.model.set_dataProvider(value);
-
-  dp = this.element.options;
-  n = dp.length;
-  for (i = 0; i < n; i++) {
-    dp.remove(0);
-  }
-
-  n = value.length;
-  for (i = 0; i < n; i++) {
-    opt = document.createElement('option');
-    opt.text = value[i];
-    dp.add(opt);
-  }
-
-};
-
-
-/**
- * @protected
- */
-org.apache.flex.html.staticControls.DropDownList.prototype.changeHandler =
-    function() {
-  this.model.set_selectedIndex(this.element.selectedIndex);
-  this.dispatchEvent('change');
-};
-
-
-/**
- * @expose
- * @param {number} value The new selected index.
- */
-org.apache.flex.html.staticControls.DropDownList.prototype.
-    set_selectedIndex = function(value) {
-  this.model.set_selectedIndex(value);
-  this.element.selectedIndex = value;
-};
-
-
-/**
- * @expose
- * @param {Object} value The new selected item.
- */
-org.apache.flex.html.staticControls.DropDownList.prototype.
-    set_selectedItem = function(value) {
-  this.model.set_selectedItem(value);
-  this.element.selectedIndex = this.get_selectedIndex();
-};