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 2015/04/15 23:43:26 UTC
[21/55] [abbrv] git commit: [flex-asjs] [refs/heads/develop] - move
handwritten JS code to final home. Build scripts still need fixing up
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/Label.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/Label.js b/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/Label.js
new file mode 100644
index 0000000..6dc5f10
--- /dev/null
+++ b/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/Label.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_createjs_Label');
+
+goog.require('org_apache_flex_createjs_core_UIBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_createjs_core_UIBase}
+ */
+org_apache_flex_createjs_Label = function() {
+ org_apache_flex_createjs_core_UIBase.call(this);
+};
+goog.inherits(org_apache_flex_createjs_Label,
+ org_apache_flex_createjs_core_UIBase);
+
+
+/**
+ * @override
+ */
+org_apache_flex_createjs_Label.prototype.createElement =
+ function(p) {
+ org_apache_flex_createjs_Label.base(this, 'createElement');
+
+ this.element = new createjs.Text('default text', '20px Arial', '#ff7700');
+ this.element.x = 0;
+ this.element.y = 20;
+ this.element.textBaseline = 'alphabetic';
+ p.addChild(this.element);
+ p.getStage().update();
+
+ this.positioner = this.element;
+};
+
+
+Object.defineProperties(org_apache_flex_createjs_Label.prototype, {
+ /** @expose */
+ text: {
+ /** @this {org_apache_flex_createjs_Label} */
+ get: function() {
+ return this.element.text;
+ },
+ /** @this {org_apache_flex_createjs_Label} */
+ set: function(value) {
+ this.element.text = value;
+ this.element.getStage().update();
+ }
+ }
+});
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/TextButton.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/TextButton.js b/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/TextButton.js
new file mode 100644
index 0000000..d6b8425
--- /dev/null
+++ b/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/TextButton.js
@@ -0,0 +1,90 @@
+/**
+ * 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_createjs_TextButton');
+
+goog.require('org_apache_flex_createjs_core_UIBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_createjs_core_UIBase}
+ */
+org_apache_flex_createjs_TextButton = function() {
+ org_apache_flex_createjs_core_UIBase.call(this);
+};
+goog.inherits(org_apache_flex_createjs_TextButton,
+ org_apache_flex_createjs_core_UIBase);
+
+
+/**
+ * @expose
+ * @type {Object}
+ */
+org_apache_flex_createjs_TextButton.prototype.buttonLabel = null;
+
+
+/**
+ * @expose
+ * @type {Object}
+ */
+org_apache_flex_createjs_TextButton.prototype.buttonBackground =
+ null;
+
+
+/**
+ * @override
+ */
+org_apache_flex_createjs_TextButton.prototype.createElement =
+ function(p) {
+
+ this.buttonBackground = new createjs.Shape();
+ this.buttonBackground.name = 'background';
+ this.buttonBackground.graphics.beginFill('red').
+ drawRoundRect(0, 0, 200, 60, 10);
+
+ this.buttonLabel = new createjs.Text('button', 'bold 24px Arial',
+ '#FFFFFF');
+ this.buttonLabel.name = 'label';
+ this.buttonLabel.textAlign = 'center';
+ this.buttonLabel.textBaseline = 'middle';
+ this.buttonLabel.x = 200 / 2;
+ this.buttonLabel.y = 60 / 2;
+
+ this.element = new createjs.Container();
+ this.element.name = 'button';
+ this.element.x = 50;
+ this.element.y = 25;
+ this.element.addChild(this.buttonBackground, this.buttonLabel);
+ p.addChild(this.element);
+
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+};
+
+
+Object.defineProperties(org_apache_flex_createjs_TextButton.prototype, {
+ /** @expose */
+ text: {
+ /** @this {org_apache_flex_createjs_TextButton} */
+ get: function() {
+ return this.buttonLabel.text;
+ },
+ /** @this {org_apache_flex_createjs_TextButton} */
+ set: function(value) {
+ this.buttonLabel.text = value;
+ }
+ }
+});
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/core/UIBase.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/core/UIBase.js b/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/core/UIBase.js
new file mode 100644
index 0000000..ee80cd7
--- /dev/null
+++ b/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/core/UIBase.js
@@ -0,0 +1,135 @@
+/**
+ * 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_createjs_core_UIBase');
+
+goog.require('org_apache_flex_core_HTMLElementWrapper');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_core_HTMLElementWrapper}
+ */
+org_apache_flex_createjs_core_UIBase = function() {
+ org_apache_flex_createjs_core_UIBase.base(this, 'constructor');
+
+ /**
+ * @protected
+ * @type {Object}
+ */
+ this.positioner = null;
+
+ this.createElement();
+};
+goog.inherits(org_apache_flex_createjs_core_UIBase,
+ org_apache_flex_core_HTMLElementWrapper);
+
+
+/**
+ * @param {Object} c The child element.
+ */
+org_apache_flex_createjs_core_UIBase.prototype.addElement =
+ function(c) {
+ this.addChild(c.element);
+};
+
+
+/**
+ */
+org_apache_flex_createjs_core_UIBase.prototype.createElement =
+ function() {
+ this.element = new createjs.Container();
+
+ this.positioner = this.element;
+};
+
+
+Object.defineProperties(org_apache_flex_createjs_core_UIBase.prototype, {
+ /** @expose */
+ x: {
+ /** @this {org_apache_flex_createjs_core_UIBase} */
+ set: function(pixels) {
+ this.positioner.x = pixels;
+ this.element.getStage().update();
+ }
+ },
+ /** @expose */
+ y: {
+ /** @this {org_apache_flex_createjs_core_UIBase} */
+ set: function(pixels) {
+ this.positioner.y = pixels;
+ this.element.getStage().update();
+ }
+ },
+ /** @expose */
+ width: {
+ /** @this {org_apache_flex_createjs_core_UIBase} */
+ set: function(pixels) {
+ this.positioner.width = pixels;
+ this.element.getStage().update();
+ }
+ },
+ /** @expose */
+ height: {
+ /** @this {org_apache_flex_createjs_core_UIBase} */
+ set: function(pixels) {
+ this.positioner.height = pixels;
+ this.element.getStage().update();
+ }
+ },
+ /** @expose */
+ id: {
+ /** @this {org_apache_flex_createjs_core_UIBase} */
+ get: function() {
+ return this.name;
+ },
+ /** @this {org_apache_flex_createjs_core_UIBase} */
+ set: function(value) {
+ if (this.name !== value) {
+ this.element.name = value;
+ this.name = value;
+ this.dispatchEvent('idChanged');
+ }
+ }
+ },
+ /** @expose */
+ model: {
+ /** @this {org_apache_flex_createjs_core_UIBase} */
+ get: function() {
+ return this.model;
+ },
+ /** @this {org_apache_flex_createjs_core_UIBase} */
+ set: function(value) {
+ if (this.model !== value) {
+ this.addBead(value);
+ this.dispatchEvent('modelChanged');
+ }
+ }
+ }
+});
+
+
+/**
+ * @expose
+ * @type {string}
+ */
+org_apache_flex_createjs_core_UIBase.prototype.id = null;
+
+
+/**
+ * @expose
+ * @type {object}
+ */
+org_apache_flex_createjs_core_UIBase.prototype.model = null;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/core/ViewBase.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/core/ViewBase.js b/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/core/ViewBase.js
new file mode 100644
index 0000000..baf26a3
--- /dev/null
+++ b/frameworks/projects/CreateJS/js/src/org/apache/flex/createjs/core/ViewBase.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_createjs_core_ViewBase');
+
+goog.require('org_apache_flex_createjs_core_UIBase');
+goog.require('org_apache_flex_utils_MXMLDataInterpreter');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_createjs_core_UIBase}
+ */
+org_apache_flex_createjs_core_ViewBase = function() {
+ org_apache_flex_createjs_core_ViewBase.base(this, 'constructor');
+
+ /**
+ * @private
+ * @type {org_apache_flex_createjs_core_ViewBase}
+ */
+ this.currentObject_ = null;
+};
+goog.inherits(org_apache_flex_createjs_core_ViewBase,
+ org_apache_flex_createjs_core_UIBase);
+
+
+Object.defineProperties(org_apache_flex_createjs_core_ViewBase.prototype, {
+ /** @expose */
+ applicationModel: {
+ /** @this {org_apache_flex_createjs_core_ViewBase} */
+ get: function() {
+ return this.applicationModel_;
+ },
+ set: function(value) {
+ this.applicationModel = value;
+ }
+ }
+});
+
+
+/**
+ * @expose
+ * @type {Array}
+ */
+org_apache_flex_createjs_core_ViewBase.prototype.MXMLProperties = null;
+
+
+/**
+ * @expose
+ * @type {Array}
+ */
+org_apache_flex_createjs_core_ViewBase.prototype.MXMLDescriptor = null;
+
+
+/**
+ * @param {Object} model The model for this view.
+ */
+org_apache_flex_createjs_core_ViewBase.prototype.initUI = function(model) {
+ this.applicationModel = model;
+ org_apache_flex_utils_MXMLDataInterpreter.generateMXMLProperties(this,
+ this.MXMLProperties);
+ org_apache_flex_utils_MXMLDataInterpreter.generateMXMLInstances(this,
+ this, this.MXMLDescriptor);
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/Effects/js/src/org/apache/flex/effects/PlatformWiper.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/js/src/org/apache/flex/effects/PlatformWiper.js b/frameworks/projects/Effects/js/src/org/apache/flex/effects/PlatformWiper.js
new file mode 100644
index 0000000..de36898
--- /dev/null
+++ b/frameworks/projects/Effects/js/src/org/apache/flex/effects/PlatformWiper.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_effects_PlatformWiper');
+
+goog.require('org_apache_flex_geom_Rectangle');
+
+
+
+/**
+ * @constructor
+ */
+org_apache_flex_effects_PlatformWiper = function() {
+
+ /**
+ * @private
+ * @type {Object}
+ */
+ this.target_ = null;
+
+
+ /**
+ * @private
+ * @type {Object}
+ */
+ this.overflow_ = null;
+
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_effects_PlatformWiper.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'PlatformWiper',
+ qName: 'org_apache_flex_effects_PlatformWiper'}] };
+
+
+Object.defineProperties(org_apache_flex_effects_PlatformWiper.prototype, {
+ /** @expose */
+ target: {
+ /** @this {org_apache_flex_effects_PlatformWiper} */
+ set: function(target) {
+ if (target == null) {
+ if (this.overflow_ == null)
+ delete this.target_.positioner.style.overflow;
+ else
+ this.target_.positioner.style.overflow = this.overflow_;
+ }
+ this.target_ = target;
+ if (target != null) {
+ this.overflow_ = this.target_.positioner.style.overflow;
+ }
+ }
+ },
+ /** @expose */
+ visibleRect: {
+ /** @this {org_apache_flex_effects_PlatformWiper} */
+ set: function(rect) {
+ /*
+ var styleString = 'rect(';
+ styleString += rect.top.toString() + 'px,';
+ styleString += rect.width.toString() + 'px,';
+ styleString += rect.height.toString() + 'px,';
+ styleString += rect.left.toString() + 'px)';
+ this.target_.positioner.style.clip = styleString;
+ */
+ this.target_.positioner.style.height = rect.height.toString() + 'px';
+ this.target_.positioner.style.overflow = 'hidden';
+ }
+ }
+});
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Geometry.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Geometry.js b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Geometry.js
new file mode 100644
index 0000000..0c18920
--- /dev/null
+++ b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Geometry.js
@@ -0,0 +1,50 @@
+/**
+ * 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_maps_google_Geometry');
+
+goog.require('org_apache_flex_maps_google_LatLng');
+
+
+// IMPORTANT:
+// In order to use this class, the Google MAP API must be downloaded
+// from the <head> section of the main HTML file.
+
+
+
+/**
+ * @constructor
+ */
+org_apache_flex_maps_google_Geometry = function() {
+ this.location = new org_apache_flex_maps_google_LatLng();
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_maps_google_Geometry.prototype.
+FLEXJS_CLASS_INFO =
+{ names: [{ name: 'Geometry',
+ qName: 'org_apache_flex_maps_google_Geometry' }],
+ interfaces: [] };
+
+
+/**
+ * @type {Object} The current location
+ */
+org_apache_flex_maps_google_Geometry.prototype.location = null;
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/LatLng.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/LatLng.js b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/LatLng.js
new file mode 100644
index 0000000..8cafa2e
--- /dev/null
+++ b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/LatLng.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_maps_google_LatLng');
+
+
+// IMPORTANT:
+// In order to use this class, the Google MAP API must be downloaded
+// from the <head> section of the main HTML file.
+
+
+
+/**
+ * @constructor
+ */
+org_apache_flex_maps_google_LatLng = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_maps_google_LatLng.prototype.
+FLEXJS_CLASS_INFO =
+{ names: [{ name: 'LatLng',
+ qName: 'org_apache_flex_maps_google_LatLng' }],
+ interfaces: [] };
+
+
+/**
+ * @type {number} The latitude
+ */
+org_apache_flex_maps_google_LatLng.prototype.lat = 0;
+
+
+/**
+ * @type {number} The longitude
+ */
+org_apache_flex_maps_google_LatLng.prototype.lng = 0;
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Map.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Map.js b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Map.js
new file mode 100644
index 0000000..9a16e5d
--- /dev/null
+++ b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Map.js
@@ -0,0 +1,349 @@
+/**
+ * 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_maps_google_Map');
+
+goog.require('org_apache_flex_core_IBeadModel');
+goog.require('org_apache_flex_maps_google_Geometry');
+goog.require('org_apache_flex_maps_google_LatLng');
+goog.require('org_apache_flex_maps_google_Marker');
+goog.require('org_apache_flex_maps_google_Place');
+goog.require('org_apache_flex_maps_google_models_MapModel');
+
+
+// IMPORTANT:
+// In order to use this class, the Google MAP API must be downloaded
+// from the <head> section of the main HTML file.
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_core_UIBase}
+ */
+org_apache_flex_maps_google_Map = function() {
+ org_apache_flex_maps_google_Map.base(this, 'constructor');
+ this.initialized = false;
+};
+goog.inherits(org_apache_flex_maps_google_Map,
+ org_apache_flex_core_UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_maps_google_Map.prototype.
+FLEXJS_CLASS_INFO =
+{ names: [{ name: 'Map',
+ qName: 'org_apache_flex_maps_google_Map' }],
+ interfaces: [] };
+
+
+/**
+ *
+ */
+org_apache_flex_maps_google_Map.prototype.searchResults = null;
+
+
+/**
+ * @override
+ * @protected
+ * @return {Object} The actual element to be parented.
+ */
+org_apache_flex_maps_google_Map.prototype.createElement =
+ function() {
+
+ var model = new org_apache_flex_maps_google_models_MapModel();
+ this.addBead(model);
+
+ this.element = document.createElement('div');
+ this.className = 'Map';
+
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+
+ return this.element;
+};
+
+
+Object.defineProperties(org_apache_flex_maps_google_Map.prototype, {
+ /** @expose */
+ token: {
+ /** @this {org_apache_flex_maps_google_Map} */
+ set: function(value) {
+ this.token = value;
+ }
+ },
+ /** @expose */
+ selectedMarker: {
+ /** @this {org_apache_flex_maps_google_Map} */
+ get: function() {
+ return this._selectedMarker;
+ }
+ }
+});
+
+
+/**
+ */
+org_apache_flex_maps_google_Map.prototype.finishInitalization = function() {
+ this.loadMap(37.333, -121.900, 12);
+ this.initialized = true;
+ this.dispatchEvent('ready');
+};
+
+
+/**
+ * @expose
+ * @param {number} centerLat center latitude.
+ * @param {number} centerLong center longitude.
+ * @param {number} zoom zoom level.
+ */
+org_apache_flex_maps_google_Map.prototype.loadMap =
+ function(centerLat, centerLong, zoom) {
+ if (!this.initialized) {
+ this.currentCenter = new window['google']['maps']['LatLng'](centerLat, centerLong);
+ var mapOptions = {};
+ mapOptions['center'] = this.currentCenter;
+ mapOptions['zoom'] = zoom;
+ this.map = new window['google']['maps']['Map'](this.element, mapOptions);
+ this.geocoder = null;
+ google.maps.event.addListener(this.map, 'center_changed', goog.bind(this.centerChangeHandler, this));
+ google.maps.event.addListener(this.map, 'bounds_changed', goog.bind(this.boundsChangeHandler, this));
+ google.maps.event.addListener(this.map, 'zoom_changed', goog.bind(this.zoomChangeHandler, this));
+ }
+};
+
+
+/**
+ * @expose
+ * @param {Number} zoomLevel The level of magnification.
+ */
+org_apache_flex_maps_google_Map.prototype.setZoom =
+ function(zoomLevel) {
+ if (this.initialized) {
+ this.map.setZoom(zoomLevel);
+ }
+};
+
+
+/**
+ * @expose
+ * @param {string} address The new center of the map.
+ */
+org_apache_flex_maps_google_Map.prototype.centerOnAddress = function(address) {
+ if (!this.geocoder) this.geocoder = new window['google']['maps']['Geocoder']();
+ this.geocoder.geocode({ 'address': address}, goog.bind(this.positionHandler, this));
+};
+
+
+/**
+ * @expose
+ * @param {Object} location The new center of the map.
+ */
+org_apache_flex_maps_google_Map.prototype.setCenter = function(location) {
+ this.currentCenter = new window['google']['maps']['LatLng'](location.lat, location.lng);
+ this.map.setCenter(this.currentCenter);
+};
+
+
+/**
+ * @expose
+ */
+org_apache_flex_maps_google_Map.prototype.markCurrentLocation = function() {
+ this.createMarker(this.currentCenter);
+};
+
+
+/**
+ * @expose
+ * @param {string} address The address to locate and mark on the map.
+ */
+org_apache_flex_maps_google_Map.prototype.markAddress =
+ function(address) {
+ if (this.initialized) {
+ if (!this.geocoder) this.geocoder = new window['google']['maps']['Geocoder']();
+ this.geocoder.geocode({ 'address': address}, goog.bind(this.geoCodeHandler, this));
+ }
+};
+
+
+/**
+ * @expose
+ * @param {Object} location A LatLng that denotes the position of the marker.
+ * @return {Object} A marker object.
+ */
+org_apache_flex_maps_google_Map.prototype.createMarker =
+ function(location) {
+ var marker = new window['google']['maps']['Marker']({
+ map: this.map,
+ position: location
+ });
+ google.maps.event.addListener(marker, 'click', goog.bind(this.markerClicked, this, marker));
+ return marker;
+};
+
+
+/**
+ * @expose
+ * @param {string} placeName A place to search for.
+ */
+org_apache_flex_maps_google_Map.prototype.nearbySearch =
+ function(placeName) {
+ if (this.markers == null) this.markers = [];
+ this.service = new window['google']['maps']['places']['PlacesService'](this.map);
+ this.service.nearbySearch({'location': this.currentCenter,
+ 'radius': 5000,
+ 'name': placeName}, goog.bind(this.searchResultHandler, this));
+};
+
+
+/**
+ * @expose
+ */
+org_apache_flex_maps_google_Map.prototype.clearSearchResults =
+function() {
+ if (this.markers) {
+ for (var i = 0; i < this.markers.length; i++) {
+ this.markers[i]['setMap'](null);
+ }
+ this.markers = null;
+ }
+};
+
+
+/**
+ * @param {Object} marker The marker that was clicked.
+ * @param {Object} event The mouse event for the marker click.
+ */
+org_apache_flex_maps_google_Map.prototype.markerClicked =
+function(marker, event) {
+ var newMarker = new org_apache_flex_maps_google_Marker();
+ newMarker.position.lat = marker.position.lat();
+ newMarker.position.lng = marker.position.lng();
+ newMarker.title = marker.title;
+ newMarker.map = this;
+
+ this._selectedMarker = newMarker;
+
+ var newEvent = new org_apache_flex_events_Event('markerClicked');
+ newEvent.marker = newMarker;
+ this.dispatchEvent(newEvent);
+};
+
+
+/**
+ * @param {Array} results The found location(s).
+ * @param {string} status Status of the call.
+ */
+org_apache_flex_maps_google_Map.prototype.positionHandler =
+ function(results, status) {
+ if (status == window['google']['maps']['GeocoderStatus']['OK']) {
+ this.currentCenter = results[0]['geometry']['location'];
+ this.map['setCenter'](this.currentCenter);
+
+ var newEvent = document.createEvent('Event');
+ newEvent.initEvent('mapCentered', true, true);
+ window.dispatchEvent(newEvent);
+ } else {
+ alert('Geocode was not successful for the following reason: ' + status);
+ }
+};
+
+
+/**
+ * @param {Array} results The found location(s).
+ * @param {string} status Status of the call.
+ */
+org_apache_flex_maps_google_Map.prototype.geoCodeHandler =
+ function(results, status) {
+ if (status == window['google']['maps']['GeocoderStatus']['OK']) {
+ this.currentCenter = results[0]['geometry']['location'];
+ this.map['setCenter'](this.currentCenter);
+ var marker = new window['google']['maps']['Marker']({
+ map: this.map,
+ position: this.currentCenter
+ });
+ } else {
+ alert('Geocode was not successful for the following reason: ' + status);
+ }
+};
+
+
+/**
+ * @param {Array} results The result of the search.
+ * @param {string} status Status of the search.
+ */
+org_apache_flex_maps_google_Map.prototype.searchResultHandler =
+function(results, status) {
+ this.searchResults = [];
+ if (status == window['google']['maps']['places']['PlacesServiceStatus']['OK']) {
+ for (var i = 0; i < results.length; i++) {
+ var place = new org_apache_flex_maps_google_Place();
+ place.geometry.location.lat = results[i]['geometry']['location']['lat'];
+ place.geometry.location.lng = results[i]['geometry']['location']['lng'];
+ place.icon = results[i]['icon'];
+ place.id = results[i]['id'];
+ place.name = results[i]['name'];
+ place.reference = results[i]['reference'];
+ place.vicinity = results[i]['vicinity'];
+ this.searchResults.push(place);
+
+ var marker = this.createMarker(results[i]['geometry']['location']);
+ marker.title = place.name;
+
+ this.markers.push(marker);
+ }
+ var model = this.model;
+ model.searchResults = this.searchResults;
+ }
+};
+
+
+/**
+ * Handles changes in map center
+ */
+org_apache_flex_maps_google_Map.prototype.centerChangeHandler =
+ function() {
+ this.currentCenter = this.map['getCenter']();
+
+ var newEvent = new org_apache_flex_events_Event('centered');
+ this.dispatchEvent(newEvent);
+};
+
+
+/**
+ * Handles changes in map bounds
+ */
+org_apache_flex_maps_google_Map.prototype.boundsChangeHandler =
+ function() {
+ this.currentCenter = this.map['getCenter']();
+
+ var newEvent = new org_apache_flex_events_Event('boundsChanged');
+ this.dispatchEvent(newEvent);
+};
+
+
+/**
+ * Handles changes in map bounds
+ */
+org_apache_flex_maps_google_Map.prototype.zoomChangeHandler =
+ function() {
+ this.currentCenter = this.map['getCenter']();
+
+ var newEvent = new org_apache_flex_events_Event('zoomChanged');
+ this.dispatchEvent(newEvent);
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Marker.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Marker.js b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Marker.js
new file mode 100644
index 0000000..36b14da
--- /dev/null
+++ b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Marker.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_maps_google_Marker');
+
+goog.require('org_apache_flex_maps_google_LatLng');
+
+
+
+// IMPORTANT:
+// In order to use this class, the Google MAP API must be downloaded
+// from the <head> section of the main HTML file.
+
+
+
+/**
+ * @constructor
+ */
+org_apache_flex_maps_google_Marker = function() {
+ this.position = new org_apache_flex_maps_google_LatLng();
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_maps_google_Marker.prototype.
+FLEXJS_CLASS_INFO =
+{ names: [{ name: 'Marker',
+ qName: 'org_apache_flex_maps_google_Marker' }],
+ interfaces: [] };
+
+
+/**
+ * @type {Object} The marker's location.
+ */
+org_apache_flex_maps_google_Marker.prototype.position = null;
+
+
+/**
+ * @type {String} The title for the marker.
+ */
+org_apache_flex_maps_google_Marker.prototype.title = null;
+
+
+/**
+ * @type {Object} The map to which the marker belongs.
+ */
+org_apache_flex_maps_google_Marker.prototype.map = null;
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Place.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Place.js b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Place.js
new file mode 100644
index 0000000..482df0e
--- /dev/null
+++ b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/Place.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_maps_google_Place');
+
+goog.require('org_apache_flex_maps_google_Geometry');
+
+
+// IMPORTANT:
+// In order to use this class, the Google MAP API must be downloaded
+// from the <head> section of the main HTML file.
+
+
+
+/**
+ * @constructor
+ */
+org_apache_flex_maps_google_Place = function() {
+ this.geometry = new org_apache_flex_maps_google_Geometry();
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_maps_google_Place.prototype.
+FLEXJS_CLASS_INFO =
+{ names: [{ name: 'Place',
+ qName: 'org_apache_flex_maps_google_Place' }],
+ interfaces: [] };
+
+
+/**
+ * @type {Object} The current location
+ */
+org_apache_flex_maps_google_Place.prototype.geometry = null;
+
+
+/**
+ * @type {String} The icon representing the place.
+ */
+org_apache_flex_maps_google_Place.prototype.icon = null;
+
+
+/**
+ * @type {String} A unique identifier for the place.
+ */
+org_apache_flex_maps_google_Place.prototype.id = null;
+
+
+/**
+ * @type {String} The name of the place.
+ */
+org_apache_flex_maps_google_Place.prototype.name = null;
+
+
+/**
+ * @type {String} A reference identifier.
+ */
+org_apache_flex_maps_google_Place.prototype.reference = null;
+
+
+/**
+ * @type {String} A description of the area of the place.
+ */
+org_apache_flex_maps_google_Place.prototype.vicinity = null;
+
+
+/**
+ * @override
+ * @return {string} A description of the area of the place.
+ */
+org_apache_flex_maps_google_Place.prototype.toString = function PlaceToString() {
+ var results = '';
+ if (this.name) results = this.name;
+ if (this.vicinity) results += ' ' + this.vicinity;
+ return results;
+};
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/beads/MapView.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/beads/MapView.js b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/beads/MapView.js
new file mode 100644
index 0000000..d344607
--- /dev/null
+++ b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/beads/MapView.js
@@ -0,0 +1,65 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* MapView isn't really the view, but is a bead used to trigger
+ the loading of the map JS files */
+
+goog.provide('org_apache_flex_maps_google_beads_MapView');
+
+
+
+/**
+ * @constructor
+ */
+org_apache_flex_maps_google_beads_MapView = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_maps_google_beads_MapView.prototype.
+FLEXJS_CLASS_INFO =
+{ names: [{ name: 'MapView',
+ qName: 'org_apache_flex_maps_google_beads_MapView' }],
+ interfaces: [org_apache_flex_core_IBeadView] };
+
+
+Object.defineProperties(org_apache_flex_maps_google_beads_MapView.prototype, {
+ /** @expose */
+ strand: {
+ /** @this {org_apache_flex_maps_google_beads_MapView} */
+ set: function(value) {
+ this.strand_ = value;
+
+ var token = this.strand_.token;
+ var src = 'https://maps.googleapis.com/maps/api/js?v=3.exp';
+ if (token)
+ src += '&key=' + token;
+ src += '&libraries=places&sensor=false&callback=mapInit';
+
+ var script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.src = src;
+
+ window.mapView = this;
+ window['mapInit'] = function() {
+ this.mapView.strand_.finishInitalization();
+ };
+ document.head.appendChild(script);
+ }
+ }
+});
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/models/MapModel.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/models/MapModel.js b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/models/MapModel.js
new file mode 100644
index 0000000..8a92972
--- /dev/null
+++ b/frameworks/projects/GoogleMaps/js/src/org/apache/flex/maps/google/models/MapModel.js
@@ -0,0 +1,100 @@
+/**
+ * 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_maps_google_models_MapModel');
+
+goog.require('org_apache_flex_core_IBeadModel');
+goog.require('org_apache_flex_events_EventDispatcher');
+
+
+// IMPORTANT:
+// In order to use this class, the Google MAP API must be downloaded
+// from the <head> section of the main HTML file.
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_events_EventDispatcher}
+ * @implements {org_apache_flex_core_IBeadModel}
+ */
+org_apache_flex_maps_google_models_MapModel = function() {
+ org_apache_flex_maps_google_models_MapModel.base(this, 'constructor');
+};
+goog.inherits(
+ org_apache_flex_maps_google_models_MapModel,
+ org_apache_flex_events_EventDispatcher);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_maps_google_models_MapModel.prototype.
+FLEXJS_CLASS_INFO =
+{ names: [{ name: 'MapModel',
+ qName: 'org_apache_flex_maps_google_models_MapModel' }],
+ interfaces: [org_apache_flex_core_IBeadModel] };
+
+
+Object.defineProperties(org_apache_flex_maps_google_models_MapModelv.prototype, {
+ /** @expose */
+ strand: {
+ /** @this {org_apache_flex_maps_google_models_MapModel} */
+ set: function(value) {
+ this.strand_ = value;
+ }
+ },
+ /** @expose */
+ searchResults: {
+ get: function() {
+ return this._searchResults;
+ },
+ set: function(value) {
+ this._searchResults = value;
+ this.dispatchEvent('searchResultsChanged');
+ }
+ },
+ /** @expose */
+ zoom: {
+ get: function() {
+ return this._zoom;
+ },
+ set: function(value) {
+ this._zoom = value;
+ this.dispatchEvent('zoomChanged');
+ }
+ },
+ /** @expose */
+ selectedMarker: {
+ get: function() {
+ return this._selectedMarker;
+ },
+ set: function(value) {
+ this._selectedMarker = value;
+ this.dispatchEvent('selectedMarkerChanged');
+ }
+ },
+ /** @expose */
+ currentLocation: {
+ get: function() {
+ return this._currentLocation;
+ },
+ set: function(value) {
+ this._currentLocation = value;
+ this.dispatchEvent('currentLocationChanged');
+ }
+ }
+});
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/Alert.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/Alert.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/Alert.js
new file mode 100644
index 0000000..eb8e01c
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/Alert.js
@@ -0,0 +1,193 @@
+/**
+ * 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_Alert');
+
+goog.require('org_apache_flex_core_UIBase');
+goog.require('org_apache_flex_html_Container');
+goog.require('org_apache_flex_html_Label');
+goog.require('org_apache_flex_html_TextButton');
+goog.require('org_apache_flex_html_TitleBar');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_html_Container}
+ */
+org_apache_flex_html_Alert = function() {
+ org_apache_flex_html_Alert.base(this, 'constructor');
+};
+goog.inherits(org_apache_flex_html_Alert,
+ org_apache_flex_html_Container);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_Alert.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'Alert',
+ qName: 'org_apache_flex_html_Alert'}] };
+
+
+/**
+ * @type {number} The value for the Yes button option.
+ */
+org_apache_flex_html_Alert.YES = 0x000001;
+
+
+/**
+ * @type {number} The value for the No button option.
+ */
+org_apache_flex_html_Alert.NO = 0x000002;
+
+
+/**
+ * @type {number} The value for the OK button option.
+ */
+org_apache_flex_html_Alert.OK = 0x000004;
+
+
+/**
+ * @type {number} The value for the Cancel button option.
+ */
+org_apache_flex_html_Alert.CANCEL = 0x000008;
+
+
+/**
+ * @override
+ */
+org_apache_flex_html_Alert.prototype.createElement =
+ function() {
+ org_apache_flex_html_Alert.base(this, 'createElement');
+
+ this.element.className = 'Alert';
+
+ // add in a title bar
+ this.titleBar = new org_apache_flex_html_TitleBar();
+ this.addElement(this.titleBar);
+ this.titleBar.element.id = 'titleBar';
+
+ this.message = new org_apache_flex_html_Label();
+ this.addElement(this.message);
+ this.message.element.id = 'message';
+
+ // add a place for the buttons
+ this.buttonArea = new org_apache_flex_html_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_Alert.show =
+ function(message, host, title, flags) {
+
+ var a = new org_apache_flex_html_Alert();
+ host.addElement(a);
+ a.title = title;
+ a.text = message;
+ a.flags = flags;
+
+ a.positioner.style.position = 'relative';
+ a.positioner.style.width = '200px';
+ a.positioner.style.margin = 'auto';
+ a.positioner.style.top = '100px';
+};
+
+
+Object.defineProperties(org_apache_flex_html_Alert.prototype, {
+ /** @expose */
+ title: {
+ /** @this {org_apache_flex_html_Alert} */
+ get: function() {
+ return this.titleBar.title;
+ },
+ /** @this {org_apache_flex_html_Alert} */
+ set: function(value) {
+ this.titleBar.title = value;
+ }
+ },
+ /** @expose */
+ text: {
+ /** @this {org_apache_flex_html_Alert} */
+ get: function() {
+ return this.message.text;
+ },
+ /** @this {org_apache_flex_html_Alert} */
+ set: function(value) {
+ this.message.text = value;
+ }
+ },
+ /** @expose */
+ flags: {
+ /** @this {org_apache_flex_html_Alert} */
+ get: function() {
+ return this.flags;
+ },
+ /** @this {org_apache_flex_html_Alert} */
+ set: function(value) {
+ this.flags = value;
+
+ // add buttons based on flags
+ if (this.flags & org_apache_flex_html_Alert.OK) {
+ var ok = new org_apache_flex_html_TextButton();
+ this.buttonArea.addElement(ok);
+ ok.text = 'OK';
+ goog.events.listen(/** @type {EventTarget} */ (ok.element), 'click',
+ goog.bind(this.dismissAlert, this));
+ }
+ if (this.flags & org_apache_flex_html_Alert.CANCEL) {
+ var cancel = new org_apache_flex_html_TextButton();
+ this.buttonArea.addElement(cancel);
+ cancel.text = 'Cancel';
+ goog.events.listen(/** @type {EventTarget} */ (cancel.element), 'click',
+ goog.bind(this.dismissAlert, this));
+ }
+ if (this.flags & org_apache_flex_html_Alert.YES) {
+ var yes = new org_apache_flex_html_TextButton();
+ this.buttonArea.addElement(yes);
+ yes.text = 'YES';
+ goog.events.listen(/** @type {EventTarget} */ (yes.element), 'click',
+ goog.bind(this.dismissAlert, this));
+ }
+ if (this.flags & org_apache_flex_html_Alert.NO) {
+ var nob = new org_apache_flex_html_TextButton();
+ this.buttonArea.addElement(nob);
+ nob.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_Alert.prototype.dismissAlert =
+ function(event)
+ {
+ this.element.parentElement.removeChild(this.element);
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/Button.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/Button.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/Button.js
new file mode 100644
index 0000000..36db23a
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/Button.js
@@ -0,0 +1,60 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+goog.provide('org_apache_flex_html_Button');
+
+goog.require('org_apache_flex_core_UIBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_core_UIBase}
+ */
+org_apache_flex_html_Button = function() {
+ org_apache_flex_html_Button.base(this, 'constructor');
+};
+goog.inherits(org_apache_flex_html_Button,
+ org_apache_flex_core_UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_Button.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'Button',
+ qName: 'org_apache_flex_html_Button'}] };
+
+
+/**
+ * @override
+ */
+org_apache_flex_html_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/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/ButtonBar.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/ButtonBar.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/ButtonBar.js
new file mode 100644
index 0000000..d01b39f
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/ButtonBar.js
@@ -0,0 +1,87 @@
+/**
+ * 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_ButtonBar');
+
+goog.require('org_apache_flex_core_ListBase');
+goog.require('org_apache_flex_html_List');
+goog.require('org_apache_flex_html_beads_DataItemRendererFactoryForArrayData');
+goog.require('org_apache_flex_html_beads_layouts_NonVirtualHorizontalLayout');
+goog.require('org_apache_flex_html_supportClasses_ButtonBarButtonItemRenderer');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_html_List}
+ */
+org_apache_flex_html_ButtonBar = function() {
+
+ // this.model = new
+ // org_apache_flex_html_beads_models_ArraySelectionModel();
+ // this.addBead(this.model);
+
+ org_apache_flex_html_ButtonBar.base(this, 'constructor');
+
+ // this.addBead(new
+ // org_apache_flex_html_beads_ListView());
+
+ // this.addBead(new
+ //org_apache_flex_html_beads_layouts_NonVirtualHorizontalLayout());
+
+ // this.itemRendererFactory = new
+ // org_apache_flex_html_beads_
+ // DataItemRendererFactoryForArrayData();
+ // this.itemRendererFactory.itemRendererClass = 'org_apache_flex_html_' +
+ // 'supportClasses_ButtonBarButtonItemRenderer';
+ // this.addBead(this.itemRendererFactory);
+
+ // this.addBead(new
+ // org_apache_flex_html_beads_controllers_
+ // ListSingleSelectionMouseController());
+};
+goog.inherits(org_apache_flex_html_ButtonBar,
+ org_apache_flex_html_List);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_ButtonBar.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'ButtonBar',
+ qName: 'org_apache_flex_html_ButtonBar'}] };
+
+
+/**
+ * @override
+ */
+org_apache_flex_html_ButtonBar.prototype.createElement =
+ function() {
+ //org_apache_flex_html_ButtonBar.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.className = 'ButtonBar';
+
+ this.element.flexjs_wrapper = this;
+
+ return this.element;
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/CheckBox.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/CheckBox.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/CheckBox.js
new file mode 100644
index 0000000..2dcfbe7
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/CheckBox.js
@@ -0,0 +1,87 @@
+/**
+ * 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_CheckBox');
+
+goog.require('org_apache_flex_core_UIBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_core_UIBase}
+ */
+org_apache_flex_html_CheckBox = function() {
+ org_apache_flex_html_CheckBox.base(this, 'constructor');
+};
+goog.inherits(org_apache_flex_html_CheckBox,
+ org_apache_flex_core_UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_CheckBox.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'CheckBox',
+ qName: 'org_apache_flex_html_CheckBox'}] };
+
+
+/**
+ * @override
+ */
+org_apache_flex_html_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;
+ this.element.flexjs_wrapper = this;
+
+ return this.element;
+};
+
+
+Object.defineProperties(org_apache_flex_html_CheckBox.prototype, {
+ /** @expose */
+ text: {
+ /** @this {org_apache_flex_html_CheckBox} */
+ get: function() {
+ return this.element.childNodes.item(1).nodeValue;
+ },
+ /** @this {org_apache_flex_html_CheckBox} */
+ set: function(value) {
+ this.element.childNodes.item(1).nodeValue = value;
+ }
+ },
+ /** @expose */
+ selected: {
+ /** @this {org_apache_flex_html_CheckBox} */
+ get: function() {
+ return this.element.childNodes.item(0).checked;
+ },
+ /** @this {org_apache_flex_html_CheckBox} */
+ set: function(value) {
+ this.element.childNodes.item(0).checked = value;
+ }
+ }
+});
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/CloseButton.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/CloseButton.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/CloseButton.js
new file mode 100644
index 0000000..54256da
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/CloseButton.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_CloseButton');
+
+goog.require('org_apache_flex_html_Button');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_html_Button}
+ */
+org_apache_flex_html_CloseButton = function() {
+ org_apache_flex_html_CloseButton.base(this, 'constructor');
+};
+goog.inherits(org_apache_flex_html_CloseButton,
+ org_apache_flex_html_Button);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_CloseButton.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'CloseButton',
+ qName: 'org_apache_flex_html_CloseButton'}] };
+
+
+/**
+ * @override
+ */
+org_apache_flex_html_CloseButton.prototype.createElement =
+ function() {
+ org_apache_flex_html_CloseButton.base(this, 'createElement');
+ this.element.innerHTML = 'x';
+
+ this.element.style.padding = 0;
+ this.height = 11;
+ this.width = 11;
+ return this.element;
+};
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/ComboBox.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/ComboBox.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/ComboBox.js
new file mode 100644
index 0000000..4e74d7b
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/ComboBox.js
@@ -0,0 +1,195 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+goog.provide('org_apache_flex_html_ComboBox');
+
+goog.require('org_apache_flex_core_ListBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_core_ListBase}
+ */
+org_apache_flex_html_ComboBox = function() {
+ org_apache_flex_html_ComboBox.base(this, 'constructor');
+};
+goog.inherits(org_apache_flex_html_ComboBox,
+ org_apache_flex_core_ListBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_ComboBox.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'ComboBox',
+ qName: 'org_apache_flex_html_ComboBox'}] };
+
+
+/**
+ * @override
+ */
+org_apache_flex_html_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_ComboBox.prototype.selectChanged =
+ function(event) {
+ var select;
+
+ select = event.currentTarget;
+
+ this.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_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_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.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.selectedIndex;
+ if (si < 0) {
+ select.value = null;
+ } else {
+ select.value = dp[si];
+ }
+
+ this.popup = popup;
+
+ popup.appendChild(select);
+ document.body.appendChild(popup);
+};
+
+
+Object.defineProperties(org_apache_flex_html_ComboBox.prototype, {
+ /** @expose */
+ text: {
+ /** @this {org_apache_flex_html_ComboBox} */
+ get: function() {
+ return this.element.childNodes.item(0).value;
+ },
+ /** @this {org_apache_flex_html_ComboBox} */
+ set: function(value) {
+ this.element.childNodes.item(0).value = value;
+ }
+ }
+});
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/Container.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/Container.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/Container.js
new file mode 100644
index 0000000..534d409
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/Container.js
@@ -0,0 +1,108 @@
+/**
+ * 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_Container');
+
+goog.require('org_apache_flex_core_ContainerBase');
+goog.require('org_apache_flex_core_IContainer');
+
+
+
+/**
+ * @constructor
+ * @implements {org_apache_flex_core_IContainer}
+ * @extends {org_apache_flex_core_ContainerBase}
+ */
+org_apache_flex_html_Container = function() {
+ org_apache_flex_html_Container.base(this, 'constructor');
+};
+goog.inherits(org_apache_flex_html_Container,
+ org_apache_flex_core_ContainerBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_Container.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'Container',
+ qName: 'org_apache_flex_html_Container' }],
+ interfaces: [org_apache_flex_core_IContainer] };
+
+
+/**
+ * @override
+ */
+org_apache_flex_html_Container.prototype.createElement =
+ function() {
+ var cb;
+
+ this.element = document.createElement('div');
+
+ this.positioner = this.element;
+ // absolute positioned children need a non-null
+ // position value in the parent. It might
+ // get set to 'absolute' if the container is
+ // also absolutely positioned
+ this.positioner.style.position = 'relative';
+ this.element.flexjs_wrapper = this;
+
+ return this.element;
+};
+
+
+/**
+ * @override
+ */
+org_apache_flex_html_Container.prototype.addElement =
+ function(child) {
+ org_apache_flex_html_Container.base(this, 'addElement', child);
+ this.dispatchEvent('elementAdded');
+};
+
+
+/**
+ * @expose
+ */
+org_apache_flex_html_Container.prototype.childrenAdded =
+ function() {
+ this.dispatchEvent('childrenAdded');
+};
+
+
+/**
+ * @expose
+ * @return {Array} the HTML DOM element children.
+ */
+org_apache_flex_html_Container.prototype.internalChildren =
+ function() {
+ return this.element.children;
+};
+
+
+/**
+ * @return {Array} All of the children of the container.
+ */
+org_apache_flex_html_Container.prototype.getChildren = function() {
+ var arr = this.element.children;
+ var comparr = [];
+ var n = arr.length;
+ for (var i = 0; i < n; i++)
+ {
+ comparr.push(arr[i].flexjs_wrapper);
+ }
+ return comparr;
+};
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/ControlBar.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/ControlBar.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/ControlBar.js
new file mode 100644
index 0000000..2ccd9ad
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/ControlBar.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_ControlBar');
+
+goog.require('org_apache_flex_html_Container');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_html_Container}
+ */
+org_apache_flex_html_ControlBar = function() {
+ org_apache_flex_html_ControlBar.base(this, 'constructor');
+
+};
+goog.inherits(org_apache_flex_html_ControlBar,
+ org_apache_flex_html_Container);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_ControlBar.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'ControlBar',
+ qName: 'org_apache_flex_html_ControlBar'}] };
+
+
+/**
+ * @override
+ */
+org_apache_flex_html_ControlBar.prototype.createElement =
+ function() {
+
+ this.element = document.createElement('div');
+ this.element.className = 'ControlBar';
+ this.element.style.display = 'inline';
+ this.typeNames = 'ControlBar';
+
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+
+ return this.element;
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/DropDownList.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/DropDownList.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/DropDownList.js
new file mode 100644
index 0000000..d1f8d11
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/DropDownList.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_DropDownList');
+
+goog.require('org_apache_flex_core_ListBase');
+goog.require('org_apache_flex_html_beads_models_ArraySelectionModel');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_core_ListBase}
+ */
+org_apache_flex_html_DropDownList = function() {
+ org_apache_flex_html_DropDownList.base(this, 'constructor');
+ this.model = new org_apache_flex_html_beads_models_ArraySelectionModel();
+};
+goog.inherits(org_apache_flex_html_DropDownList,
+ org_apache_flex_core_ListBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_DropDownList.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'DropDownList',
+ qName: 'org_apache_flex_html_DropDownList'}] };
+
+
+/**
+ * @override
+ */
+org_apache_flex_html_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;
+
+ this.element.flexjs_wrapper = this;
+
+ return this.element;
+};
+
+
+Object.defineProperties(org_apache_flex_html_DropDownList.prototype, {
+ /** @expose */
+ dataProvider: {
+ /** @this {org_apache_flex_html_DropDownList} */
+ set: function(value) {
+ var dp, i, n, opt;
+
+ this.model.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);
+ }
+ }
+ },
+ /** @expose */
+ selectedIndex: {
+ // TODO: (aharui) copied from ListBase because you
+ // can't just override the setter in a defineProps
+ // structure.
+ /** @this {org_apache_flex_html_DropDownList} */
+ get: function() {
+ return this.model.selectedIndex;
+ },
+ /** @this {org_apache_flex_html_DropDownList} */
+ set: function(value) {
+ this.model.selectedIndex = value;
+ this.element.selectedIndex = value;
+ }
+ },
+ /** @expose */
+ selectedItem: {
+ // TODO: (aharui) copied from ListBase because you
+ // can't just override the setter in a defineProps
+ // structure.
+ /** @this {org_apache_flex_html_DropDownList} */
+ get: function() {
+ return this.model.selectedItem;
+ },
+ /** @this {org_apache_flex_html_DropDownList} */
+ set: function(value) {
+ this.model.selectedItem = value;
+ this.element.selectedIndex = this.selectedIndex;
+ }
+ }
+});
+
+
+/**
+ * @protected
+ */
+org_apache_flex_html_DropDownList.prototype.changeHandler =
+ function() {
+ this.model.selectedIndex = this.element.selectedIndex;
+ this.dispatchEvent('change');
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/HContainer.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/HContainer.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/HContainer.js
new file mode 100644
index 0000000..2e850f2
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/HContainer.js
@@ -0,0 +1,42 @@
+/**
+ * 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_HContainer');
+
+goog.require('org_apache_flex_core_IContainer');
+goog.require('org_apache_flex_html_Container');
+
+
+
+/**
+ * @constructor
+ * @implements {org_apache_flex_core_IContainer}
+ * @extends {org_apache_flex_html_Container}
+ */
+org_apache_flex_html_HContainer = function() {
+ org_apache_flex_html_HContainer.base(this, 'constructor');
+};
+goog.inherits(org_apache_flex_html_HContainer,
+ org_apache_flex_html_Container);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_HContainer.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'HContainer',
+ qName: 'org_apache_flex_html_HContainer' }],
+ interfaces: [org_apache_flex_core_IContainer] };
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/HRule.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/HRule.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/HRule.js
new file mode 100644
index 0000000..d778f61
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/HRule.js
@@ -0,0 +1,44 @@
+/**
+ * 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_HRule');
+
+goog.require('org_apache_flex_core_UIBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_core_UIBase}
+ */
+org_apache_flex_html_HRule = function() {
+ org_apache_flex_html_HRule.base(this, 'constructor');
+
+ this.element = document.createElement('hr');
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+};
+goog.inherits(org_apache_flex_html_HRule,
+ org_apache_flex_core_UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_HRule.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'HRule',
+ qName: 'org_apache_flex_html_HRule' }] };
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/Image.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/Image.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/Image.js
new file mode 100644
index 0000000..e0e1b87
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/Image.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_Image');
+
+goog.require('org_apache_flex_core_UIBase');
+goog.require('org_apache_flex_html_beads_ImageView');
+goog.require('org_apache_flex_html_beads_models_ImageModel');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_core_UIBase}
+ */
+org_apache_flex_html_Image = function() {
+ org_apache_flex_html_Image.base(this, 'constructor');
+};
+goog.inherits(org_apache_flex_html_Image,
+ org_apache_flex_core_UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_Image.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'Image',
+ qName: 'org_apache_flex_html_Image' }] };
+
+
+/**
+ * @override
+ * @protected
+ * @return {Object} The actual element to be parented.
+ */
+org_apache_flex_html_Image.prototype.createElement =
+ function() {
+
+ this.element = document.createElement('img');
+
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+
+ this.model = new
+ org_apache_flex_html_beads_models_ImageModel();
+
+ this.addBead(new
+ org_apache_flex_html_beads_ImageView());
+
+ return this.element;
+};
+
+
+Object.defineProperties(org_apache_flex_html_Image.prototype, {
+ /** @expose */
+ source: {
+ /** @this {org_apache_flex_html_Image} */
+ get: function() {
+ return this.model.source;
+ },
+ /** @this {org_apache_flex_html_Image} */
+ set: function(value) {
+ this.model.source = value;
+ }
+ }
+});
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/ImageAndTextButton.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/ImageAndTextButton.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/ImageAndTextButton.js
new file mode 100644
index 0000000..7413eeb
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/ImageAndTextButton.js
@@ -0,0 +1,102 @@
+/**
+ * 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_ImageAndTextButton');
+
+goog.require('org_apache_flex_html_Button');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_html_Button}
+ */
+org_apache_flex_html_ImageAndTextButton = function() {
+ org_apache_flex_html_ImageAndTextButton.base(this, 'constructor');
+
+ this._text = '';
+ this._src = '';
+};
+goog.inherits(org_apache_flex_html_ImageAndTextButton,
+ org_apache_flex_html_Button);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_ImageAndTextButton.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'ImageAndTextButton',
+ qName: 'org_apache_flex_html_ImageAndTextButton'}] };
+
+
+/**
+ * @override
+ */
+org_apache_flex_html_ImageAndTextButton.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;
+};
+
+
+Object.defineProperties(org_apache_flex_html_ImageAndTextButton.prototype, {
+ /** @expose */
+ text: {
+ /** @this {org_apache_flex_html_ImageAndTextButton} */
+ get: function() {
+ return this._text;
+ },
+ /** @this {org_apache_flex_html_ImageAndTextButton} */
+ set: function(value) {
+ this._text = value;
+ this.setInnerHTML();
+ }
+ },
+ /** @expose */
+ image: {
+ /** @this {org_apache_flex_html_ImageAndTextButton} */
+ get: function() {
+ return this._src;
+ },
+ /** @this {org_apache_flex_html_ImageAndTextButton} */
+ set: function(value) {
+ this._src = value;
+ this.setInnerHTML();
+ }
+ }
+});
+
+
+/**
+ */
+org_apache_flex_html_ImageAndTextButton.prototype.setInnerHTML = function() {
+ var inner = '';
+ if (this._src != null)
+ inner += '<img src=\'' + this._src + '\'/>';
+ inner += ' ';
+ inner += this._text;
+ this.element.innerHTML = inner;
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b677c658/frameworks/projects/HTML/js/src/org/apache/flex/html/Label.js
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/Label.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/Label.js
new file mode 100644
index 0000000..6ddd105
--- /dev/null
+++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/Label.js
@@ -0,0 +1,69 @@
+/**
+ * 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_Label');
+
+goog.require('org_apache_flex_core_UIBase');
+
+
+
+/**
+ * @constructor
+ * @extends {org_apache_flex_core_UIBase}
+ */
+org_apache_flex_html_Label = function() {
+ org_apache_flex_html_Label.base(this, 'constructor');
+
+ this.element = document.createElement('span');
+ this.positioner = this.element;
+ this.element.flexjs_wrapper = this;
+};
+goog.inherits(org_apache_flex_html_Label,
+ org_apache_flex_core_UIBase);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org_apache_flex_html_Label.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'Label',
+ qName: 'org_apache_flex_html_Label' }] };
+
+
+Object.defineProperties(org_apache_flex_html_Label.prototype, {
+ /** @expose */
+ text: {
+ /** @this {org_apache_flex_html_Label} */
+ get: function() {
+ return this.element.innerHTML;
+ },
+ /** @this {org_apache_flex_html_Label} */
+ set: function(value) {
+ this.element.innerHTML = value;
+ }
+ },
+ /** @expose */
+ html: {
+ /** @this {org_apache_flex_html_Label} */
+ get: function() {
+ return this.element.innerHTML;
+ },
+ /** @this {org_apache_flex_html_Label} */
+ set: function(value) {
+ this.element.innerHTML = value;
+ }
+ }
+});