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:37 UTC
[05/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/List.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/List.js b/frameworks/js/FlexJS/src/org/apache/flex/html/List.js
new file mode 100644
index 0000000..c554129
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/List.js
@@ -0,0 +1,176 @@
+/**
+ * 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.List');
+
+goog.require('mx.core.IFactory');
+goog.require('org.apache.flex.core.IDataProviderItemRendererMapper');
+goog.require('org.apache.flex.core.IItemRendererClassFactory');
+goog.require('org.apache.flex.core.ItemRendererClassFactory');
+goog.require('org.apache.flex.core.ListBase');
+goog.require('org.apache.flex.core.ValuesManager');
+goog.require('org.apache.flex.html.staticControls.beads.ListView');
+goog.require('org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData');
+goog.require('org.apache.flex.html.staticControls.beads.controllers.ListSingleSelectionMouseController');
+goog.require('org.apache.flex.html.staticControls.beads.models.ArraySelectionModel');
+goog.require('org.apache.flex.html.staticControls.supportClasses.DataItemRenderer');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.core.ListBase}
+ */
+org.apache.flex.html.staticControls.List = function() {
+ goog.base(this);
+};
+goog.inherits(org.apache.flex.html.staticControls.List,
+ org.apache.flex.core.ListBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.List.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'List',
+ qName: 'org.apache.flex.html.staticControls.List' }] };
+
+
+/**
+ * @expose
+ * @return {mx.core.IFactory} The itemRenderer generator.
+ */
+org.apache.flex.html.staticControls.List.prototype.get_itemRenderer =
+function() {
+ return this.itemRenderer_;
+};
+
+
+/**
+ * @expose
+ * @param {mx.core.IFactory} value The itemRenderer generator.
+ */
+org.apache.flex.html.staticControls.List.prototype.set_itemRenderer =
+function(value) {
+ this.itemRenderer_ = value;
+};
+
+
+/**
+ * @expose
+ * @return {String} The name of the field to use as a label.
+ */
+org.apache.flex.html.staticControls.List.prototype.get_labelField =
+function() {
+ return this.get_model().get_labelField();
+};
+
+
+/**
+ * @expose
+ * @param {String} value The name of the field to use as a label.
+ */
+org.apache.flex.html.staticControls.List.prototype.set_labelField =
+function(value) {
+ this.get_model().set_labelField(value);
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.List.prototype.createElement =
+ function() {
+ goog.base(this, 'createElement');
+ this.set_className('List');
+
+ return this.element;
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.List.prototype.addedToParent =
+ function() {
+ goog.base(this, 'addedToParent');
+
+ var b = this.getBeadByType(org.apache.flex.core.IDataProviderItemRendererMapper);
+ if (org.apache.flex.core.ValuesManager.valuesImpl.getValue && !b) {
+ /**
+ * @type {Function}
+ */
+ var c;
+ c = /** @type {Function} */ (org.apache.flex.core.ValuesManager.valuesImpl.getValue(this,
+ 'iDataProviderItemRendererMapper'));
+ if (c) {
+ var bead = new c();
+ this.addBead(bead);
+ }
+ }
+// var c = this.getBeadByType(org.apache.flex.core.IItemRenderer);
+// if (c == null) {
+// c = this.getBeadByType(
+// org.apache.flex.html.staticControls.supportClasses.DataItemRenderer);
+// if (c == null) {
+// this.addBead(new
+// org.apache.flex.html.staticControls.beads.
+// TextItemRendererFactoryForArrayData());
+// }
+// }
+};
+
+
+/**
+ * @expose
+ * @return {Array.<Object>} An array of objects that make up the actual
+ * list (most likely itemRenderers).
+ */
+org.apache.flex.html.staticControls.List.prototype.internalChildren =
+ function() {
+ var listView =
+ this.getBeadByType(org.apache.flex.html.staticControls.beads.ListView);
+ var dg = listView.get_dataGroup();
+ var items = null;
+ if (dg.renderers) {
+ items = dg.renderers;
+ }
+ return items;
+};
+
+
+/**
+ * @expose
+ * @param {Object} event The event that triggered the selection.
+ */
+org.apache.flex.html.staticControls.List.prototype.selectedHandler =
+ function(event) {
+ var itemRenderer = event.currentTarget;
+ if (this.renderers) {
+ var n = this.renderers.length;
+ var i;
+ for (i = 0; i < n; i++) {
+ var test = this.renderers[i];
+ if (test == itemRenderer) {
+ this.model.set_selectedIndex(i);
+ itemRenderer.set_selected(true);
+ }
+ else {
+ test.set_selected(false);
+ }
+ }
+ }
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/NumericStepper.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/NumericStepper.js b/frameworks/js/FlexJS/src/org/apache/flex/html/NumericStepper.js
new file mode 100644
index 0000000..66926ef
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/NumericStepper.js
@@ -0,0 +1,185 @@
+/**
+ * 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.NumericStepper');
+
+goog.require('org.apache.flex.core.UIBase');
+goog.require('org.apache.flex.html.staticControls.Spinner');
+goog.require('org.apache.flex.html.staticControls.TextInput');
+goog.require('org.apache.flex.html.staticControls.beads.models.RangeModel');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.core.UIBase}
+ */
+org.apache.flex.html.staticControls.NumericStepper = function() {
+ this.model =
+ new org.apache.flex.html.staticControls.beads.models.RangeModel();
+ goog.base(this);
+};
+goog.inherits(org.apache.flex.html.staticControls.NumericStepper,
+ org.apache.flex.core.UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'NumericStepper',
+ qName: 'org.apache.flex.html.staticControls.NumericStepper' }] };
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.createElement =
+ function() {
+ this.element = document.createElement('div');
+ this.positioner = this.element;
+
+ this.input = new org.apache.flex.html.staticControls.TextInput();
+ this.addElement(this.input);
+ this.input.positioner.style.display = 'inline-block';
+
+ this.spinner = new org.apache.flex.html.staticControls.Spinner();
+ this.addElement(this.spinner);
+ this.spinner.positioner.style.display = 'inline-block';
+ goog.events.listen(this.spinner, 'valueChanged',
+ goog.bind(this.spinnerChange, this));
+
+ this.element.flexjs_wrapper = this;
+ this.set_className('NumericStepper');
+
+ this.input.set_text(String(this.spinner.get_value()));
+
+ return this.element;
+};
+
+
+/**
+ * @param {Object} event The input event.
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.spinnerChange =
+ function(event)
+ {
+ var newValue = this.spinner.get_value();
+ this.set_value(newValue);
+ this.input.set_text(String(this.spinner.get_value()));
+ this.dispatchEvent(new org.apache.flex.events.Event('valueChanged'));
+};
+
+
+/**
+ * @expose
+ * @return {Number} The current minimum value.
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.get_minimum =
+ function() {
+ return this.model.get_minimum();
+};
+
+
+/**
+ * @expose
+ * @param {Number} value The new minimum value.
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.set_minimum =
+ function(value) {
+ this.model.set_minimum(value);
+};
+
+
+/**
+ * @expose
+ * @return {Number} The current maximum value.
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.get_maximum =
+ function() {
+ return this.model.get_maximum();
+};
+
+
+/**
+ * @expose
+ * @param {Number} value The new maximum value.
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.set_maximum =
+ function(value) {
+ this.model.set_maximum(value);
+};
+
+
+/**
+ * @expose
+ * @return {Number} The current value.
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.get_value =
+ function() {
+ return this.model.get_value();
+};
+
+
+/**
+ * @expose
+ * @param {Number} newValue The new value.
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.set_value =
+ function(newValue) {
+ this.model.set_value(newValue);
+};
+
+
+/**
+ * @expose
+ * @return {Number} The current snapInterval value.
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.get_snapInterval =
+ function() {
+ return this.model.get_snapInterval();
+};
+
+
+/**
+ * @expose
+ * @param {Number} value The new snapInterval value.
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.set_snapInterval =
+ function(value) {
+ this.model.set_snapInterval(value);
+};
+
+
+/**
+ * @expose
+ * @return {Number} The current stepSize value.
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.get_stepSize =
+ function() {
+ return this.model.get_stepSize();
+};
+
+
+/**
+ * @expose
+ * @param {Number} value The new stepSize value.
+ */
+org.apache.flex.html.staticControls.NumericStepper.prototype.set_stepSize =
+ function(value) {
+ this.model.set_stepSize(value);
+};
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/Panel.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/Panel.js b/frameworks/js/FlexJS/src/org/apache/flex/html/Panel.js
new file mode 100644
index 0000000..88a22b5
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/Panel.js
@@ -0,0 +1,186 @@
+/**
+ * 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.Panel');
+
+goog.require('org.apache.flex.html.staticControls.Container');
+goog.require('org.apache.flex.html.staticControls.ControlBar');
+goog.require('org.apache.flex.html.staticControls.TitleBar');
+goog.require('org.apache.flex.html.staticControls.beads.PanelView');
+goog.require('org.apache.flex.html.staticControls.beads.models.PanelModel');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.html.staticControls.Container}
+ */
+org.apache.flex.html.staticControls.Panel = function() {
+ this.model =
+ new org.apache.flex.html.staticControls.beads.models.PanelModel();
+ goog.base(this);
+};
+goog.inherits(org.apache.flex.html.staticControls.Panel,
+ org.apache.flex.html.staticControls.Container);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.Panel.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'Panel',
+ qName: 'org.apache.flex.html.staticControls.Panel' }] };
+
+
+/**
+ * @override
+ * @param {Object} c Element being added.
+ */
+org.apache.flex.html.staticControls.Panel.prototype.addElement = function(c) {
+ if (c == this.titleBar) {
+ this.element.insertBefore(this.titleBar.element, this.contentArea);
+ }
+ else if (c == this.controlBar) {
+ this.element.appendChild(c.element);
+ }
+ else {
+ this.contentArea.appendChild(c.element);
+ }
+ c.addedToParent();
+};
+
+
+/**
+ * @override
+ * @param {Object} c The child element.
+ * @param {number} index The index.
+ */
+org.apache.flex.html.staticControls.Panel.prototype.addElementAt =
+ function(c, index) {
+ var children = this.internalChildren();
+ if (index >= children.length)
+ this.addElement(c);
+ else
+ {
+ this.contentArea.insertBefore(c.element,
+ children[index]);
+ c.addedToParent();
+ }
+};
+
+
+/**
+ * @override
+ * @param {Object} c The child element.
+ * @return {number} The index in parent.
+ */
+org.apache.flex.html.staticControls.Panel.prototype.getElementIndex =
+ function(c) {
+ var children = this.internalChildren();
+ var n = children.length;
+ for (var i = 0; i < n; i++)
+ {
+ if (children[i] == c.element)
+ return i;
+ }
+ return -1;
+};
+
+
+/**
+ * @override
+ * @param {Object} c The child element.
+ */
+org.apache.flex.html.staticControls.Panel.prototype.removeElement =
+ function(c) {
+ this.contentArea.removeChild(c.element);
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.Panel.prototype.createElement =
+ function() {
+
+ this.element = document.createElement('div');
+ this.element.className = 'Panel';
+
+ this.contentArea = document.createElement('div');
+ this.contentArea.flexjs_wrapper = this;
+ this.element.appendChild(this.contentArea);
+
+ this.panelView = new org.apache.flex.html.staticControls.beads.PanelView();
+ this.panelView.set_strand(this);
+
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+
+ return this.element;
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.Panel.prototype.addedToParent =
+ function() {
+ goog.base(this, 'addedToParent');
+};
+
+
+/**
+ * @expose
+ * @return {string} The title getter.
+ */
+org.apache.flex.html.staticControls.Panel.prototype.get_title = function() {
+ return this.model.get_title();
+};
+
+
+/**
+ * @expose
+ * @param {string} value The title setter.
+ */
+org.apache.flex.html.staticControls.Panel.prototype.set_title =
+ function(value) {
+ this.model.set_title(value);
+};
+
+
+/**
+ * @expose
+ * @return {Array} The controlBar getter.
+ */
+org.apache.flex.html.staticControls.Panel.prototype.get_controlBar =
+ function() {
+ return this.controlBarChildren;
+};
+
+
+/**
+ * @expose
+ * @param {Array} value The controlBar setter.
+ */
+org.apache.flex.html.staticControls.Panel.prototype.set_controlBar =
+ function(value) {
+ this.controlBarChildren = value;
+
+ for (var i = 0; i < value.length; i++) {
+ var item = value[i];
+ this.controlBar.addElement(item);
+ }
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/RadioButton.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/RadioButton.js b/frameworks/js/FlexJS/src/org/apache/flex/html/RadioButton.js
new file mode 100644
index 0000000..5713e3d
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/RadioButton.js
@@ -0,0 +1,197 @@
+/**
+ * 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.RadioButton');
+
+goog.require('org.apache.flex.core.UIBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.core.UIBase}
+ */
+org.apache.flex.html.staticControls.RadioButton = function() {
+ goog.base(this);
+};
+goog.inherits(org.apache.flex.html.staticControls.RadioButton,
+ org.apache.flex.core.UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'RadioButton',
+ qName: 'org.apache.flex.html.staticControls.RadioButton'}] };
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.createElement =
+ function() {
+ var rb;
+
+ this.element = document.createElement('label');
+
+ rb = document.createElement('input');
+ rb.type = 'radio';
+ this.element.appendChild(rb);
+ this.element.appendChild(document.createTextNode('radio button'));
+
+ this.positioner = this.element;
+ rb.flexjs_wrapper = this;
+
+ return this.element;
+};
+
+
+/**
+ * @expose
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.initModel =
+ function() {
+};
+
+
+/**
+ * @expose
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.initSkin =
+ function() {
+};
+
+
+/**
+ * @expose
+ * @return {string} The groupName getter.
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.get_groupName =
+ function() {
+ return this.element.childNodes.item(0).name;
+};
+
+
+/**
+ * @expose
+ * @param {string} value The groupName setter.
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.set_groupName =
+ function(value) {
+ this.element.childNodes.item(0).name = value;
+};
+
+
+/**
+ * @expose
+ * @return {string} The text getter.
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.get_text =
+ function() {
+ return this.element.childNodes.item(1).nodeValue;
+};
+
+
+/**
+ * @expose
+ * @param {string} value The text setter.
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.set_text =
+ function(value) {
+ this.element.childNodes.item(1).nodeValue = value;
+};
+
+
+/**
+ * @expose
+ * @return {boolean} The selected getter.
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.get_selected =
+ function() {
+ return this.element.childNodes.item(0).checked;
+};
+
+
+/**
+ * @expose
+ * @param {boolean} value The selected setter.
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.set_selected =
+ function(value) {
+ this.element.childNodes.item(0).checked = value;
+};
+
+
+/**
+ * @expose
+ * @return {Object} The value getter.
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.get_value =
+ function() {
+ return this.element.childNodes.item(0).value;
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The value setter.
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.set_value =
+ function(value) {
+ this.element.childNodes.item(0).value = value;
+};
+
+
+/**
+ * @expose
+ * @return {Object} The value of the selected RadioButton.
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.get_selectedValue =
+ function() {
+ var buttons, groupName, i, n;
+
+ groupName = this.element.childNodes.item(0).name;
+ buttons = document.getElementsByName(groupName);
+ n = buttons.length;
+
+ for (i = 0; i < n; i++) {
+ if (buttons[i].checked) {
+ return buttons[i].value;
+ }
+ }
+ return null;
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The value of the selected RadioButton.
+ */
+org.apache.flex.html.staticControls.RadioButton.prototype.set_selectedValue =
+ function(value) {
+ var buttons, groupName, i, n;
+
+ groupName = this.element.childNodes.item(0).name;
+ buttons = document.getElementsByName(groupName);
+ n = buttons.length;
+ for (i = 0; i < n; i++) {
+ if (buttons[i].value === value) {
+ buttons[i].checked = true;
+ break;
+ }
+ }
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/SimpleAlert.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/SimpleAlert.js b/frameworks/js/FlexJS/src/org/apache/flex/html/SimpleAlert.js
new file mode 100644
index 0000000..5fc3530
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/SimpleAlert.js
@@ -0,0 +1,51 @@
+/**
+ * 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.SimpleAlert');
+
+goog.require('org.apache.flex.core.UIBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.core.UIBase}
+ */
+org.apache.flex.html.staticControls.SimpleAlert = function() {
+ goog.base(this);
+
+};
+goog.inherits(org.apache.flex.html.staticControls.SimpleAlert,
+ org.apache.flex.core.UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.SimpleAlert.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'SimpleAlert',
+ qName: 'org.apache.flex.html.staticControls.SimpleAlert'}] };
+
+
+/**
+ * @param {string} message The message to display in the alert.
+ * @param {Object} host The host that should display the alert.
+ */
+org.apache.flex.html.staticControls.SimpleAlert.show =
+ function(message, host) {
+
+ alert(message);
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/SimpleList.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/SimpleList.js b/frameworks/js/FlexJS/src/org/apache/flex/html/SimpleList.js
new file mode 100644
index 0000000..79e40ef
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/SimpleList.js
@@ -0,0 +1,129 @@
+/**
+ * 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.SimpleList');
+
+goog.require('org.apache.flex.core.ListBase');
+goog.require('org.apache.flex.html.staticControls.beads.models.ArraySelectionModel');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.core.ListBase}
+ */
+org.apache.flex.html.staticControls.SimpleList = function() {
+ goog.base(this);
+ this.model = new org.apache.flex.html.staticControls.
+ beads.models.ArraySelectionModel();
+};
+goog.inherits(org.apache.flex.html.staticControls.SimpleList,
+ org.apache.flex.core.ListBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.SimpleList.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'SimpleList',
+ qName: 'org.apache.flex.html.staticControls.SimpleList'}] };
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.SimpleList.prototype.
+ createElement = function() {
+ this.element = document.createElement('select');
+ this.element.size = 5;
+ goog.events.listen(this.element, 'change',
+ goog.bind(this.changeHandler, this));
+ this.positioner = this.element;
+ this.set_className('SimpleList');
+
+ return this.element;
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.SimpleList.prototype.
+ get_dataProvider = function() {
+ return this.model.get_dataProvider();
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.SimpleList.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].toString();
+ dp.add(opt);
+ }
+
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.SimpleList.prototype.
+ get_selectedIndex = function() {
+ return this.model.get_selectedIndex();
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.SimpleList.prototype.
+ set_selectedIndex = function(value) {
+ this.model.set_selectedIndex(value);
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.SimpleList.prototype.
+ get_selectedItem = function() {
+ return this.model.get_selectedItem();
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.SimpleList.prototype.
+ set_selectedItem = function(value) {
+ this.model.set_selectedItem(value);
+};
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/Slider.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/Slider.js b/frameworks/js/FlexJS/src/org/apache/flex/html/Slider.js
new file mode 100644
index 0000000..6a19bd4
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/Slider.js
@@ -0,0 +1,219 @@
+/**
+ * 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.Slider');
+
+goog.require('org.apache.flex.core.UIBase');
+goog.require('org.apache.flex.html.staticControls.beads.SliderThumbView');
+goog.require('org.apache.flex.html.staticControls.beads.SliderTrackView');
+goog.require('org.apache.flex.html.staticControls.beads.controllers.SliderMouseController');
+goog.require('org.apache.flex.html.staticControls.beads.models.RangeModel');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.core.UIBase}
+ */
+org.apache.flex.html.staticControls.Slider = function() {
+ this.model =
+ new org.apache.flex.html.staticControls.beads.models.RangeModel();
+ goog.base(this);
+};
+goog.inherits(org.apache.flex.html.staticControls.Slider,
+ org.apache.flex.core.UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.Slider.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'Slider',
+ qName: 'org.apache.flex.html.staticControls.Slider'}] };
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.Slider.prototype.createElement =
+ function() {
+
+ this.element = document.createElement('div');
+ this.element.style.width = '200px';
+ this.element.style.height = '30px';
+
+ this.track = new org.apache.flex.html.staticControls.beads.SliderTrackView();
+ this.addBead(this.track);
+
+ this.thumb = new org.apache.flex.html.staticControls.beads.SliderThumbView();
+ this.addBead(this.thumb);
+
+ this.controller = new org.apache.flex.html.staticControls.beads.controllers.
+ SliderMouseController();
+ this.addBead(this.controller);
+
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+
+ this.set_className('Slider');
+
+ return this.element;
+};
+
+
+/**
+ * @expose
+ * @return {number} The value getter.
+ */
+org.apache.flex.html.staticControls.Slider.prototype.get_value =
+ function() {
+ return this.model.get_value();
+};
+
+
+/**
+ * @expose
+ * @param {Object} newValue The new value.
+ * @return {void} The value setter.
+ */
+org.apache.flex.html.staticControls.Slider.prototype.set_value =
+ function(newValue) {
+ this.model.set_value(newValue);
+ this.setThumbFromValue(this.model.get_value());
+};
+
+
+/**
+ * @expose
+ * @return {number} The minimum getter.
+ */
+org.apache.flex.html.staticControls.Slider.prototype.get_minimum =
+ function() {
+ return this.model.get_minimum();
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The new minimum value.
+ * @return {void} The minimum setter.
+ */
+org.apache.flex.html.staticControls.Slider.prototype.set_minimum =
+ function(value) {
+ this.model.set_minimum(value);
+};
+
+
+/**
+ * @expose
+ * @return {number} The maximum getter.
+ */
+org.apache.flex.html.staticControls.Slider.prototype.get_maximum =
+ function() {
+ return this.model.get_maximum();
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The new maximum value.
+ * @return {void} The maximum setter.
+ */
+org.apache.flex.html.staticControls.Slider.prototype.set_maximum =
+ function(value) {
+ this.model.set_maximum(value);
+};
+
+
+/**
+ * @expose
+ * @return {number} The snapInterval getter.
+ */
+org.apache.flex.html.staticControls.Slider.prototype.get_snapInterval =
+ function() {
+ return this.model.get_snapInterval();
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The new snapInterval value.
+ * @return {void} The snapInterval setter.
+ */
+org.apache.flex.html.staticControls.Slider.prototype.set_snapInterval =
+ function(value) {
+ this.model.set_snapInterval(value);
+};
+
+
+/**
+ * @expose
+ * @return {number} The stepSize getter.
+ */
+org.apache.flex.html.staticControls.Slider.prototype.get_stepSize =
+ function() {
+ return this.model.get_stepSize();
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The new stepSize value.
+ * @return {void} The stepSize setter.
+ */
+org.apache.flex.html.staticControls.Slider.prototype.set_stepSize =
+ function(value) {
+ this.model.set_stepSize(value);
+};
+
+
+/**
+ * @param {Object} value The current value.
+ * @return {number} Calculates the new value based snapInterval and stepSize.
+ */
+org.apache.flex.html.staticControls.Slider.prototype.snap = function(value)
+ {
+ var si = this.get_snapInterval();
+ var n = Math.round((value - this.get_minimum()) / si) *
+ si + this.get_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;
+};
+
+
+/**
+ * @param {number} value The value used to calculate new position of the thumb.
+ * @return {void} Moves the thumb to the corresponding position.
+ */
+org.apache.flex.html.staticControls.Slider.prototype.setThumbFromValue =
+ function(value)
+ {
+ var min = this.model.get_minimum();
+ var max = this.model.get_maximum();
+ var p = (value - min) / (max - min);
+ var xloc = p * (parseInt(this.track.element.style.width, 10) -
+ parseInt(this.thumb.element.style.width, 10));
+
+ this.thumb.element.style.left = String(xloc) + 'px';
+};
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/Spinner.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/Spinner.js b/frameworks/js/FlexJS/src/org/apache/flex/html/Spinner.js
new file mode 100644
index 0000000..8911105
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/Spinner.js
@@ -0,0 +1,211 @@
+/**
+ * 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.Spinner');
+
+goog.require('org.apache.flex.core.UIBase');
+goog.require('org.apache.flex.html.staticControls.TextButton');
+goog.require('org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.core.UIBase}
+ */
+org.apache.flex.html.staticControls.Spinner = function() {
+ goog.base(this);
+
+ this.minimum_ = 0;
+ this.maximum_ = 100;
+ this.value_ = 1;
+ this.stepSize_ = 1;
+ this.snapInterval_ = 1;
+};
+goog.inherits(org.apache.flex.html.staticControls.Spinner,
+ org.apache.flex.core.UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.Spinner.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'Spinner',
+ qName: 'org.apache.flex.html.staticControls.Spinner'}] };
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.Spinner.prototype.createElement =
+ function() {
+ this.element = document.createElement('div');
+ this.positioner = this.element;
+
+ this.element.style.verticalAlign = 'middle';
+
+ this.incrementButton = new org.apache.flex.html.staticControls.TextButton();
+ this.incrementButton.set_text('\u2191');
+ this.addElement(this.incrementButton);
+
+ this.decrementButton = new org.apache.flex.html.staticControls.TextButton();
+ this.decrementButton.set_text('\u2193');
+ this.addElement(this.decrementButton);
+
+ this.controller = new org.apache.flex.html.staticControls.
+ beads.controllers.SpinnerMouseController();
+ this.addBead(this.controller);
+
+ this.element.flexjs_wrapper = this;
+
+ return this.element;
+};
+
+
+/**
+ * @expose
+ * @return {number} The current value.
+ */
+org.apache.flex.html.staticControls.Spinner.prototype.get_value =
+ function() {
+ return this.value_;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The new value.
+ */
+org.apache.flex.html.staticControls.Spinner.prototype.set_value =
+ function(value) {
+ if (value != this.value_) {
+ this.value_ = value;
+ this.dispatchEvent('valueChanged');
+ }
+};
+
+
+/**
+ * @expose
+ * @return {number} The minimum value.
+ */
+org.apache.flex.html.staticControls.Spinner.prototype.get_minimum = function() {
+ return this.minimum_;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The new minimum value.
+ */
+org.apache.flex.html.staticControls.Spinner.prototype.set_minimum =
+ function(value) {
+ if (value != this.minimum_) {
+ this.minimum_ = value;
+ this.dispatchEvent('minimumChanged');
+ }
+};
+
+
+/**
+ * @expose
+ * @return {number} The maximum value.
+ */
+org.apache.flex.html.staticControls.Spinner.prototype.get_maximum =
+ function() {
+ return this.maximum_;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The new maximum setter.
+ */
+org.apache.flex.html.staticControls.Spinner.prototype.set_maximum =
+ function(value) {
+ if (value != this.maximum_) {
+ this.maximum_ = value;
+ this.dispatchEvent('maximumChanged');
+ }
+};
+
+
+/**
+ * @expose
+ * @return {number} The snapInterval.
+ */
+org.apache.flex.html.staticControls.Spinner.prototype.get_snapInterval =
+ function() {
+ return this.snapInterval_;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The new snapInterval value.
+ */
+org.apache.flex.html.staticControls.Spinner.prototype.set_snapInterval =
+ function(value) {
+ if (value != this.snapInterval_) {
+ this.snapInterval_ = value;
+ this.dispatchEvent('snapIntervalChanged');
+ }
+};
+
+
+/**
+ * @expose
+ * @return {number} The stepSize.
+ */
+org.apache.flex.html.staticControls.Spinner.prototype.get_stepSize =
+ function() {
+ return this.stepSize_;
+};
+
+
+/**
+ * @expose
+ * @param {number} value The new stepSize value.
+ */
+org.apache.flex.html.staticControls.Spinner.prototype.set_stepSize =
+ function(value) {
+ if (value != this.stepSize_) {
+ this.stepSize_ = value;
+ this.dispatchEvent('stepSizeChanged');
+ }
+};
+
+
+/**
+ * @param {number} value The proposed value.
+ * @return {number} The new value based on snapInterval
+ * and stepSize.
+ */
+org.apache.flex.html.staticControls.Spinner.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/TextArea.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/TextArea.js b/frameworks/js/FlexJS/src/org/apache/flex/html/TextArea.js
new file mode 100644
index 0000000..2e018e5
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/TextArea.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.TextArea');
+
+goog.require('org.apache.flex.core.UIBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.core.UIBase}
+ */
+org.apache.flex.html.staticControls.TextArea = function() {
+ goog.base(this);
+};
+goog.inherits(org.apache.flex.html.staticControls.TextArea,
+ org.apache.flex.core.UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.TextArea.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'TextArea',
+ qName: 'org.apache.flex.html.staticControls.TextArea'}] };
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.TextArea.prototype.createElement =
+ function() {
+
+ this.element = document.createElement('textarea');
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+
+ return this.element;
+};
+
+
+/**
+ * @expose
+ * @return {string} The text getter.
+ */
+org.apache.flex.html.staticControls.TextArea.prototype.get_text = function() {
+ return this.element.value;
+};
+
+
+/**
+ * @expose
+ * @param {string} value The text setter.
+ */
+org.apache.flex.html.staticControls.TextArea.prototype.set_text =
+ function(value) {
+ this.element.value = value;
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/TextButton.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/TextButton.js b/frameworks/js/FlexJS/src/org/apache/flex/html/TextButton.js
new file mode 100644
index 0000000..882b178
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/TextButton.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.html.staticControls.TextButton');
+
+goog.require('org.apache.flex.html.staticControls.Button');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.html.staticControls.Button}
+ */
+org.apache.flex.html.staticControls.TextButton = function() {
+ goog.base(this);
+};
+goog.inherits(org.apache.flex.html.staticControls.TextButton,
+ org.apache.flex.html.staticControls.Button);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.TextButton.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'TextButton',
+ qName: 'org.apache.flex.html.staticControls.TextButton'}] };
+
+
+/**
+ * @expose
+ * @return {string} The text getter.
+ */
+org.apache.flex.html.staticControls.TextButton.prototype.get_text = function() {
+ return this.element.innerHTML;
+};
+
+
+/**
+ * @expose
+ * @param {string} value The text setter.
+ */
+org.apache.flex.html.staticControls.TextButton.prototype.set_text =
+ function(value) {
+ this.element.innerHTML = value;
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/TextInput.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/TextInput.js b/frameworks/js/FlexJS/src/org/apache/flex/html/TextInput.js
new file mode 100644
index 0000000..48cccab
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/TextInput.js
@@ -0,0 +1,95 @@
+/**
+ * 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.TextInput');
+
+goog.require('org.apache.flex.core.UIBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.core.UIBase}
+ */
+org.apache.flex.html.staticControls.TextInput = function() {
+ goog.base(this);
+};
+goog.inherits(org.apache.flex.html.staticControls.TextInput,
+ org.apache.flex.core.UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.TextInput.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'TextInput',
+ qName: 'org.apache.flex.html.staticControls.TextInput'}] };
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.TextInput.prototype.createElement = function() {
+ this.element = document.createElement('input');
+ this.element.setAttribute('type', 'input');
+
+ //attach input handler to dispatch flexjs change event when user write in textinput
+ //goog.events.listen(this.element, 'change', goog.bind(this.killChangeHandler, this));
+ goog.events.listen(this.element, 'input', goog.bind(this.inputChangeHandler_, this));
+
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+
+ return this.element;
+};
+
+
+/**
+ * @expose
+ * @return {string} The text getter.
+ */
+org.apache.flex.html.staticControls.TextInput.prototype.get_text = function() {
+ return this.element.value;
+};
+
+
+/**
+ * @expose
+ * @param {string} value The text setter.
+ */
+org.apache.flex.html.staticControls.TextInput.prototype.set_text = function(value) {
+ this.element.value = value;
+};
+
+
+/**
+ * @expose
+ * @param {Object} event The event.
+ */
+/*org.apache.flex.html.staticControls.TextInput.prototype.killChangeHandler = function(event) {
+ //event.preventDefault();
+};*/
+
+
+/**
+ * @private
+ * @param {Object} event The event.
+ */
+org.apache.flex.html.staticControls.TextInput.prototype.inputChangeHandler_ = function(event) {
+ event.stopPropagation();
+
+ this.dispatchEvent(new org.apache.flex.events.Event(org.apache.flex.events.Event.EventType.CHANGE));
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/TitleBar.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/TitleBar.js b/frameworks/js/FlexJS/src/org/apache/flex/html/TitleBar.js
new file mode 100644
index 0000000..36f9322
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/TitleBar.js
@@ -0,0 +1,150 @@
+/**
+ * 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.TitleBar');
+
+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.beads.models.TitleBarModel');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.html.staticControls.Container}
+ */
+org.apache.flex.html.staticControls.TitleBar = function() {
+
+ this.model =
+ new org.apache.flex.html.staticControls.beads.models.TitleBarModel();
+
+ goog.base(this);
+};
+goog.inherits(org.apache.flex.html.staticControls.TitleBar,
+ org.apache.flex.html.staticControls.Container);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.TitleBar.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'TitleBar',
+ qName: 'org.apache.flex.html.staticControls.TitleBar'}] };
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.TitleBar.prototype.createElement =
+ function() {
+
+ this.element = document.createElement('div');
+
+ this.titleLabel = new org.apache.flex.html.staticControls.Label();
+ this.addElement(this.titleLabel);
+ this.titleLabel.element.id = 'title';
+ this.titleLabel.positioner.style.display = 'inline-block';
+ this.titleLabel.set_className('TitleBarLabel');
+
+ this.titleButton = new org.apache.flex.html.staticControls.TextButton();
+ this.addElement(this.titleButton);
+ this.titleButton.element.id = 'closeButton';
+ this.titleButton.text = 'Close';
+ this.titleButton.positioner.style.position = 'absolute';
+ this.titleButton.positioner.style.right = '0px';
+
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+
+ this.set_className('TitleBar');
+
+ // listen for changes to the model so items can be changed in the view
+ this.model.addEventListener('titleChange',
+ goog.bind(this.changeHandler, this));
+
+ return this.element;
+};
+
+
+/**
+ * @override
+ */
+org.apache.flex.html.staticControls.TitleBar.prototype.addedToParent =
+ function() {
+
+ this.titleLabel.set_text(this.model.get_title());
+
+ if (this.model.showCloseButton) {
+ this.titleButton.positioner.style.display = 'inline-block';
+ } else {
+ this.titleButton.positioner.style.display = 'none';
+ }
+};
+
+
+/**
+ * @param {Object} event The event that triggered this handler.
+ */
+org.apache.flex.html.staticControls.TitleBar.prototype.changeHandler =
+ function(event) {
+ if (event.type == 'titleChange') {
+ this.titleLabel.set_text(this.model.get_title());
+ }
+ else if (event.type == 'htmlTitleChange') {
+ this.titleLabel.set_text(this.model.get_htmlTitle());
+ }
+};
+
+
+/**
+ * @expose
+ * @return {string} The title getter.
+ */
+org.apache.flex.html.staticControls.TitleBar.prototype.get_title =
+ function() {
+ return this.model.get_title();
+};
+
+
+/**
+ * @expose
+ * @param {string} value The title setter.
+ */
+org.apache.flex.html.staticControls.TitleBar.prototype.set_title =
+ function(value) {
+ this.model.set_title(value);
+};
+
+
+/**
+ * @expose
+ * @return {string} The showCloseButton getter.
+ */
+org.apache.flex.html.staticControls.TitleBar.prototype.get_showCloseButton =
+ function() {
+ return this.model.get_showCloseButton();
+};
+
+
+/**
+ * @expose
+ * @param {string} value The title setter.
+ */
+org.apache.flex.html.staticControls.TitleBar.prototype.set_showCloseButton =
+ function(value) {
+ this.model.set_showCloseButton(value);
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/accessories/NumericOnlyTextInputBead.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/accessories/NumericOnlyTextInputBead.js b/frameworks/js/FlexJS/src/org/apache/flex/html/accessories/NumericOnlyTextInputBead.js
new file mode 100644
index 0000000..13a5ae9
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/accessories/NumericOnlyTextInputBead.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.html.staticControls.accessories.NumericOnlyTextInputBead');
+
+
+
+/**
+ * @constructor
+ */
+org.apache.flex.html.staticControls.accessories.NumericOnlyTextInputBead =
+ function() {
+
+ /**
+ * @protected
+ * @type {Object}
+ */
+ this.promptElement = null;
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.accessories.NumericOnlyTextInputBead.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'NumericOnlyTextInputBead',
+ qName: 'org.apache.flex.html.staticControls.accessories.NumericOnlyTextInputBead' }] };
+
+
+/**
+ * @expose
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.staticControls.accessories.NumericOnlyTextInputBead.
+ prototype.set_strand = function(value) {
+ if (this.strand_ !== value) {
+ this.strand_ = value;
+ value.addEventListener('keypress', goog.bind(this.validateInput, this));
+ }
+};
+
+
+/**
+ * @expose
+ * @param {Object} event The input to validate?
+ */
+org.apache.flex.html.staticControls.accessories.NumericOnlyTextInputBead.
+ prototype.validateInput = function(event) {
+
+ var code = event.charCode;
+
+ // backspace or delete
+ if (event.keyCode == 8 || event.keyCode == 46) return;
+
+ // tab or return/enter
+ if (event.keyCode == 9 || event.keyCode == 13) return;
+
+ // left or right cursor arrow
+ if (event.keyCode == 37 || event.keyCode == 39) return;
+
+ var key = String.fromCharCode(code);
+
+ var regex = /[0-9]|\./;
+ if (!regex.test(key)) {
+ event.returnValue = false;
+ if (event.preventDefault) event.preventDefault();
+ return;
+ }
+ var cursorStart = event.target.selectionStart;
+ var cursorEnd = event.target.selectionEnd;
+ var left = event.target.value.substring(0, cursorStart);
+ var right = event.target.value.substr(cursorEnd);
+ var complete = left + key + right;
+ if (isNaN(complete)) {
+ event.returnValue = false;
+ if (event.preventDefault) event.preventDefault();
+ }
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/accessories/PasswordInputBead.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/accessories/PasswordInputBead.js b/frameworks/js/FlexJS/src/org/apache/flex/html/accessories/PasswordInputBead.js
new file mode 100644
index 0000000..cd5baf7
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/accessories/PasswordInputBead.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.
+ */
+
+goog.provide('org.apache.flex.html.staticControls.accessories.PasswordInputBead');
+
+
+
+/**
+ * @constructor
+ */
+org.apache.flex.html.staticControls.accessories.PasswordInputBead =
+ function() {
+
+ /**
+ * @protected
+ * @type {Object}
+ */
+ this.promptElement = null;
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.accessories.PasswordInputBead.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'PasswordInputBead',
+ qName: 'org.apache.flex.html.staticControls.accessories.PasswordInputBead' }] };
+
+
+/**
+ * @expose
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.staticControls.accessories.PasswordInputBead.
+ prototype.set_strand = function(value) {
+ if (this.strand_ !== value) {
+ this.strand_ = value;
+ value.element.type = 'password';
+ }
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/accessories/TextPromptBead.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/accessories/TextPromptBead.js b/frameworks/js/FlexJS/src/org/apache/flex/html/accessories/TextPromptBead.js
new file mode 100644
index 0000000..444f370
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/accessories/TextPromptBead.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.accessories.TextPromptBead');
+
+
+
+/**
+ * @constructor
+ */
+org.apache.flex.html.staticControls.accessories.TextPromptBead = function() {
+
+ /**
+ * @protected
+ * @type {Object}
+ */
+ this.promptElement = null;
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.accessories.TextPromptBead.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'TextPromptBead',
+ qName: 'org.apache.flex.html.staticControls.accessories.TextPromptBead' }] };
+
+
+/**
+ * @expose
+ * @return {string} value The new prompt.
+ */
+org.apache.flex.html.staticControls.accessories.TextPromptBead.prototype.
+ get_prompt = function() {
+ return this.prompt;
+};
+
+
+/**
+ * @expose
+ * @param {string} value The new prompt.
+ */
+org.apache.flex.html.staticControls.accessories.TextPromptBead.prototype.
+ set_prompt = function(value) {
+ this.prompt = value;
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.staticControls.accessories.TextPromptBead.prototype.
+ set_strand = function(value) {
+ if (this.strand_ !== value) {
+ this.strand_ = value;
+ value.element.placeholder = this.prompt;
+ }
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ButtonBarView.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ButtonBarView.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ButtonBarView.js
new file mode 100644
index 0000000..2801b9f
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ButtonBarView.js
@@ -0,0 +1,55 @@
+/**
+ * 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.ButtonBarView');
+
+goog.require('org.apache.flex.html.staticControls.beads.ListView');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.html.staticControls.beads.ListView}
+ */
+org.apache.flex.html.staticControls.beads.ButtonBarView = function() {
+ this.lastSelectedIndex = -1;
+ goog.base(this);
+
+ this.className = 'ButtonBarView';
+};
+goog.inherits(
+ org.apache.flex.html.staticControls.beads.ButtonBarView,
+ org.apache.flex.html.staticControls.beads.ListView);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.ButtonBarView.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'ButtonBarView',
+ qName: 'org.apache.flex.html.staticControls.beads.ButtonBarView' }] };
+
+
+/**
+ * @expose
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.staticControls.beads.ButtonBarView.prototype.set_strand =
+ function(value) {
+
+ goog.base(this, 'set_strand', value);
+ this.strand_ = value;
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js
new file mode 100644
index 0000000..f461ef7
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js
@@ -0,0 +1,137 @@
+/**
+ * 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.DataItemRendererFactoryForArrayData');
+
+goog.require('org.apache.flex.core.IDataProviderItemRendererMapper');
+goog.require('org.apache.flex.events.EventDispatcher');
+goog.require('org.apache.flex.html.staticControls.beads.ListView');
+goog.require('org.apache.flex.html.staticControls.beads.models.ArraySelectionModel');
+goog.require('org.apache.flex.html.staticControls.supportClasses.ButtonBarButtonItemRenderer');
+
+
+
+/**
+ * @constructor
+ * @implements {org.apache.flex.core.IDataProviderItemRendererMapper}
+ */
+org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData =
+ function() {
+};
+
+
+/**
+ * @expose
+ */
+org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.prototype.itemRendererFactory = null;
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
+ prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'DataItemRendererFactoryForArrayData',
+ qName: 'org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData' }],
+ interfaces: [org.apache.flex.core.IDataProviderItemRendererMapper] };
+
+
+/**
+ * @private
+ * @type {Object}
+ */
+org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
+ prototype.itemRendererClass_ = null;
+
+
+/**
+ * @expose
+ * @param {Object} value The component strand.
+ */
+org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
+ 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.model.addEventListener('dataProviderChanged',
+ goog.bind(this.dataProviderChangedHandler, this));
+
+ if (org.apache.flex.core.ValuesManager.valuesImpl.getValue && !this.itemRendererFactory_) {
+ /**
+ * @type {Function}
+ */
+ var c = /** @type {Function} */ (org.apache.flex.core.ValuesManager.valuesImpl.getValue(this.strand_,
+ 'iItemRendererClassFactory'));
+ this.itemRendererFactory_ = new c();
+ this.strand_.addBead(this.itemRendererFactory_);
+ }
+
+ this.dataProviderChangedHandler(null);
+};
+
+
+/**
+ * @expose
+ * @return {Object} The itemRenderer.
+ */
+org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
+ prototype.get_itemRendererClass = function() {
+ if (org.apache.flex.core.ValuesManager.valuesImpl.getValue && !this.itemRendererClass_) {
+ var c = org.apache.flex.core.ValuesManager.valuesImpl.getValue(this.strand_, 'iItemRenderer');
+ if (c) {
+ this.itemRendererClass_ = c;
+ }
+ }
+ return this.itemRendererClass_;
+};
+
+
+/**
+ * @expose
+ * @param {Object} value class to use for the item renderer.
+ */
+org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
+ prototype.set_itemRendererClass = function(value) {
+ this.itemRendererClass_ = value;
+};
+
+
+/**
+ * @expose
+ * @param {Object} event The event that triggered the dataProvider change.
+ */
+org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
+ prototype.dataProviderChangedHandler = function(event) {
+ var dp, i, n, opt;
+
+ dp = this.model.get_dataProvider();
+ n = dp.length;
+ for (i = 0; i < n; i++) {
+ var ir = this.itemRendererFactory_.createItemRenderer(this.dataGroup);
+ ir.set_index(i);
+ ir.set_labelField(this.model.get_labelField());
+ ir.set_data(dp[i]);
+ }
+
+ var newEvent = new org.apache.flex.events.Event('itemsCreated');
+ 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/IListView.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/IListView.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/IListView.js
new file mode 100644
index 0000000..9f4cb33
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/IListView.js
@@ -0,0 +1,43 @@
+/**
+ * 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.
+ */
+
+/**
+ * @fileoverview
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org.apache.flex.html.staticControls.beads.IListView');
+
+goog.require('org.apache.flex.core.IBeadView');
+
+
+
+/**
+ * IListView
+ *
+ * @interface
+ */
+org.apache.flex.html.staticControls.beads.IListView = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.IListView.prototype.FLEXJS_CLASS_INFO =
+{ names: [{ name: 'IListView',
+ qName: 'org.apache.flex.html.staticControls.beads.IListView'}],
+ interfaces: [org.apache.flex.core.IBeadView] };
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ImageView.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ImageView.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ImageView.js
new file mode 100644
index 0000000..d63cf23
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ImageView.js
@@ -0,0 +1,63 @@
+/**
+ * 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.ImageView');
+
+
+goog.require('org.apache.flex.html.staticControls.beads.models.ImageModel');
+
+
+
+/**
+ * @constructor
+ */
+org.apache.flex.html.staticControls.beads.ImageView = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.ImageView
+ .prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'ImageView',
+ qName: 'org.apache.flex.html.staticControls.beads.ImageView'}] };
+
+
+/**
+ * @expose
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.staticControls.beads.ImageView.prototype.set_strand =
+ function(value) {
+
+ this.strand_ = value;
+
+ this.model = value.getBeadByType(
+ org.apache.flex.html.staticControls.beads.models.ImageModel);
+ this.model.addEventListener('sourceChanged',
+ goog.bind(this.sourceChangeHandler, this));
+};
+
+
+/**
+ * @expose
+ * @param {Object} event The event triggered by the source change.
+ */
+org.apache.flex.html.staticControls.beads.ImageView.prototype.
+ sourceChangeHandler = function(event) {
+ this.strand_.element.src = this.model.get_source();
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ListView.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ListView.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ListView.js
new file mode 100644
index 0000000..862b94c
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ListView.js
@@ -0,0 +1,168 @@
+/**
+ * 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.ListView');
+
+goog.require('org.apache.flex.core.IBeadLayout');
+goog.require('org.apache.flex.core.IBeadView');
+goog.require('org.apache.flex.core.IItemRendererParent');
+goog.require('org.apache.flex.core.ILayoutParent');
+goog.require('org.apache.flex.core.ValuesManager');
+goog.require('org.apache.flex.html.staticControls.beads.IListView');
+goog.require('org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData');
+goog.require('org.apache.flex.html.staticControls.beads.models.ArraySelectionModel');
+goog.require('org.apache.flex.html.staticControls.supportClasses.NonVirtualDataGroup');
+
+
+
+/**
+ * @constructor
+ * @implements {org.apache.flex.core.ILayoutParent}
+ * @implements {org.apache.flex.html.staticControls.beads.IListView}
+ */
+org.apache.flex.html.staticControls.beads.ListView = function() {
+ this.lastSelectedIndex = -1;
+
+ this.className = 'ListView';
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.ListView.prototype.
+ FLEXJS_CLASS_INFO =
+ { names: [{ name: 'ListView',
+ qName: 'org.apache.flex.html.staticControls.beads.ListView' }],
+ interfaces: [org.apache.flex.html.staticControls.beads.IListView, org.apache.flex.core.ILayoutParent] };
+
+
+/**
+ * @expose
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.staticControls.beads.ListView.prototype.set_strand =
+ function(value) {
+
+ this.strand_ = value;
+
+ this.strand_.addEventListener('widthChanged',
+ goog.bind(this.handleSizeChange, this));
+ this.strand_.addEventListener('heightChanged',
+ goog.bind(this.handleSizeChange, this));
+
+ /*if (this.strand_.getBeadByType(org.apache.flex.core.IBeadLayout) == null) {
+ var m = org.apache.flex.core.ValuesManager.valuesImpl.
+ getValue(this.strand_,'iBeadLayout');
+ var c = new m();
+ this.strand_.addBead(c);
+ }*/
+
+ this.model = this.strand_.get_model();
+ this.model.addEventListener('selectedIndexChanged',
+ goog.bind(this.selectionChangeHandler, this));
+
+ this.dataGroup_ = new
+ org.apache.flex.html.staticControls.supportClasses.NonVirtualDataGroup();
+ this.dataGroup_.set_strand(this);
+ this.strand_.addElement(this.dataGroup_);
+
+ this.handleSizeChange(null);
+};
+
+
+/**
+ * @expose
+ * @return {Object} The DataGroup instance.
+ */
+org.apache.flex.html.staticControls.beads.ListView.prototype.get_dataGroup =
+ function() {
+ return this.dataGroup_;
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The event that triggered the selection.
+ */
+org.apache.flex.html.staticControls.beads.ListView.prototype.
+ selectionChangeHandler = function(value) {
+ var ir;
+ if (this.lastSelectedIndex != -1) {
+ ir = this.dataGroup_.getItemRendererForIndex(this.lastSelectedIndex);
+ if (ir) ir.set_selected(false);
+ }
+ if (this.model.get_selectedIndex() != -1) {
+ ir = this.dataGroup_.getItemRendererForIndex(
+ this.model.get_selectedIndex());
+ if (ir) ir.set_selected(true);
+ }
+ this.lastSelectedIndex = this.model.get_selectedIndex();
+};
+
+
+/**
+ * @expose
+ * @return {Object} The view that contains the layout objects.
+ */
+org.apache.flex.html.staticControls.beads.ListView.prototype.get_contentView = function() {
+ return this;
+};
+
+
+/**
+ * @expose
+ * @return {Object} The border for the layout area.
+ */
+org.apache.flex.html.staticControls.beads.ListView.prototype.get_border = function() {
+ return null;
+};
+
+
+/**
+ * @expose
+ * @return {Object} The vertical scrollbar.
+ */
+org.apache.flex.html.staticControls.beads.ListView.prototype.get_vScrollBar = function() {
+ return null;
+};
+
+
+/**
+ * @expose
+ * @param {Object} value The vertical scrollbar.
+ */
+org.apache.flex.html.staticControls.beads.ListView.prototype.set_vScrollBar = function(value) {
+};
+
+
+/**
+ * @expose
+ * @return {Object} The view that can be resized.
+ */
+org.apache.flex.html.staticControls.beads.ListView.prototype.get_resizeableView = function() {
+ return this;
+};
+
+
+/**
+ * @expose
+ * @param {Object} event The event that triggered the resize.
+ */
+org.apache.flex.html.staticControls.beads.ListView.prototype.handleSizeChange = function(event) {
+ this.dataGroup_.set_width(this.strand_.get_width());
+ this.dataGroup_.set_height(this.strand_.get_height());
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/PanelView.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/PanelView.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/PanelView.js
new file mode 100644
index 0000000..e19e6a0
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/PanelView.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.PanelView');
+
+
+
+/**
+ * @constructor
+ */
+org.apache.flex.html.staticControls.beads.PanelView = function() {
+
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.PanelView
+ .prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'PanelView',
+ qName: 'org.apache.flex.html.staticControls.beads.PanelView'}] };
+
+
+/**
+ * @expose
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.staticControls.beads.PanelView.prototype.set_strand =
+ function(value) {
+
+ this.strand_ = value;
+
+ this.strand_.titleBar = new org.apache.flex.html.staticControls.TitleBar();
+ this.strand_.titleBar.addedToParent();
+ this.strand_.titleBar.element.id = 'titleBar';
+ this.strand_.addElement(this.strand_.titleBar);
+
+ this.strand_.controlBar =
+ new org.apache.flex.html.staticControls.ControlBar();
+ this.strand_.addElement(this.strand_.controlBar);
+
+ // listen for changes to the strand's model so items can be changed
+ // in the view
+ this.strand_.model.addEventListener('titleChange',
+ goog.bind(this.changeHandler, this));
+
+};
+
+
+/**
+ * @param {Object} event The event that triggered this handler.
+ */
+org.apache.flex.html.staticControls.beads.PanelView.prototype.changeHandler =
+ function(event) {
+ if (event.type == 'titleChange') {
+ this.strand_.titleBar.set_title(this.strand_.model.get_title());
+ }
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/SliderThumbView.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/SliderThumbView.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/SliderThumbView.js
new file mode 100644
index 0000000..9afc551
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/SliderThumbView.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.
+ */
+
+goog.provide('org.apache.flex.html.staticControls.beads.SliderThumbView');
+
+
+
+/**
+ * @constructor
+ */
+org.apache.flex.html.staticControls.beads.SliderThumbView = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.SliderThumbView
+ .prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'SliderThumbView',
+ qName: 'org.apache.flex.html.staticControls.beads.SliderThumbView'}] };
+
+
+/**
+ * @expose
+ * @param {Object} value The strand.
+ */
+org.apache.flex.html.staticControls.beads.SliderThumbView.prototype.
+ set_strand = function(value) {
+ this.strand_ = value;
+
+ this.element = document.createElement('div');
+ this.element.className = 'SliderThumb';
+ this.element.id = 'thumb';
+ this.element.style.backgroundColor = '#949494';
+ this.element.style.border = 'thin solid #747474';
+ this.element.style.position = 'relative';
+ this.element.style.height = '30px';
+ this.element.style.width = '10px';
+ this.element.style.zIndex = '2';
+ this.element.style.top = '-10px';
+ this.element.style.left = '20px';
+
+ this.strand_.element.appendChild(this.element);
+
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/SliderTrackView.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/SliderTrackView.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/SliderTrackView.js
new file mode 100644
index 0000000..f1a4152
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/SliderTrackView.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.
+ */
+
+goog.provide('org.apache.flex.html.staticControls.beads.SliderTrackView');
+
+
+
+/**
+ * @constructor
+ */
+org.apache.flex.html.staticControls.beads.SliderTrackView = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.SliderTrackView
+ .prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'SliderTrackView',
+ qName: 'org.apache.flex.html.staticControls.beads.SliderTrackView'}] };
+
+
+/**
+ * @expose
+ * @param {Object} value The strand.
+ */
+org.apache.flex.html.staticControls.beads.SliderTrackView.prototype.
+ set_strand = function(value) {
+ this.strand_ = value;
+
+ this.element = document.createElement('div');
+ this.element.className = 'SliderTrack';
+ this.element.id = 'track';
+ this.element.style.backgroundColor = '#E4E4E4';
+ this.element.style.height = '10px';
+ this.element.style.width = '200px';
+ this.element.style.border = 'thin solid #C4C4C4';
+ this.element.style.position = 'relative';
+ this.element.style.left = '0px';
+ this.element.style.top = '10px';
+ this.element.style.zIndex = '1';
+
+ this.strand_.element.appendChild(this.element);
+
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5759d50b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/TextItemRendererFactoryForArrayData.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/TextItemRendererFactoryForArrayData.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/TextItemRendererFactoryForArrayData.js
new file mode 100644
index 0000000..d340174
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/TextItemRendererFactoryForArrayData.js
@@ -0,0 +1,92 @@
+/**
+ * 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.TextItemRendererFactoryForArrayData');
+
+goog.require('org.apache.flex.core.IDataProviderItemRendererMapper');
+goog.require('org.apache.flex.core.IItemRenderer');
+goog.require('org.apache.flex.events.EventDispatcher');
+goog.require('org.apache.flex.html.staticControls.beads.models.ArraySelectionModel');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.events.EventDispatcher}
+ * @implements {org.apache.flex.core.IItemRenderer}
+ */
+org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData =
+ function() {
+ goog.base(this);
+};
+goog.inherits(
+ org.apache.flex.html.staticControls.
+ beads.TextItemRendererFactoryForArrayData,
+ org.apache.flex.events.EventDispatcher);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData.
+ prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'TextItemRendererFactoryForArrayData',
+ qName: 'org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData' }],
+ interfaces: [org.apache.flex.core.IItemRenderer] };
+
+
+/**
+ * @expose
+ * @param {Object} value The component strand.
+ */
+org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData.
+ 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.model.addEventListener('dataProviderChanged',
+ goog.bind(this.dataProviderChangedHandler, this));
+
+ this.dataProviderChangedHandler(null);
+};
+
+
+/**
+ * @expose
+ * @param {Object} event The event that triggered the dataProvider change.
+ */
+org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData.
+ prototype.dataProviderChangedHandler = function(event) {
+ var dp, i, n, opt;
+
+ dp = this.model.get_dataProvider();
+ n = dp.length;
+ for (i = 0; i < n; i++) {
+ opt = new
+ org.apache.flex.html.staticControls.supportClasses.StringItemRenderer();
+ this.dataGroup.addElement(opt);
+ opt.set_text(dp[i]);
+ }
+
+ var newEvent = new org.apache.flex.events.Event('itemsCreated');
+ this.strand_.dispatchEvent(newEvent);
+};