Return-Path: X-Original-To: apmail-incubator-flex-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-flex-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4F0F6E63D for ; Thu, 6 Dec 2012 00:04:08 +0000 (UTC) Received: (qmail 94089 invoked by uid 500); 6 Dec 2012 00:04:08 -0000 Delivered-To: apmail-incubator-flex-commits-archive@incubator.apache.org Received: (qmail 94062 invoked by uid 500); 6 Dec 2012 00:04:08 -0000 Mailing-List: contact flex-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: flex-dev@incubator.apache.org Delivered-To: mailing list flex-commits@incubator.apache.org Received: (qmail 94052 invoked by uid 99); 6 Dec 2012 00:04:08 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Dec 2012 00:04:08 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Dec 2012 00:04:04 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id E6E3D238897F; Thu, 6 Dec 2012 00:03:43 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1417700 [2/2] - in /incubator/flex/whiteboard/erikdebruin/asjs: examples/ examples/FlexJSTest/ examples/FlexJSTest/controllers/ examples/FlexJSTest/models/ frameworks/ frameworks/as/ frameworks/as/src/ frameworks/as/src/org/ frameworks/as/... Date: Thu, 06 Dec 2012 00:03:40 -0000 To: flex-commits@incubator.apache.org From: erikdebruin@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121206000343.E6E3D238897F@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/FlexGlobal.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/FlexGlobal.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/FlexGlobal.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/FlexGlobal.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,66 @@ +/** + * 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.FlexGlobal'); + +goog.require('flash.events.Event'); + +/** + * @constructor + */ +org.apache.flex.FlexGlobal = function() {}; + +/** + * @param {Object} context The context. + * @param {?} method The method. + * @return {function (?): void} Return new proxy. + */ +org.apache.flex.FlexGlobal.createProxy = function(context, method) { + return function(value) { + method.apply(context, [value]); + }; +}; + +/** + * @param {?} ctor The creator. + * @param {Array} ctorArgs The creator arguments. + * @return {Object} Return the new object. + */ +org.apache.flex.FlexGlobal.newObject = function(ctor, ctorArgs) { + var evt; + + if (ctor === flash.events.Event && ctorArgs.length === 1) { + evt = document.createEvent('Event'); + evt.initEvent(ctorArgs[0], false, false); + + return evt; + } + + if (ctorArgs.length === 1) { + return new ctor(ctorArgs[0]); + } + + if (ctorArgs.length === 0) { + return new ctor(); + } + + return {}; +}; + +/** + * @enum {string} + */ +org.apache.flex.FlexGlobal.EventMap = { + CLICK: 'onClick' +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/FlexGlobal.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/FlexObject.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/FlexObject.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/FlexObject.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/FlexObject.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,26 @@ +/** + * 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.FlexObject'); + +/** + * @constructor + */ +org.apache.flex.FlexObject = function() {}; + +/** + * @protected + * @type {Object} + */ +org.apache.flex.FlexObject.prototype.element = null; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/FlexObject.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/flash/events/Event.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/flash/events/Event.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/flash/events/Event.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/flash/events/Event.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,34 @@ +/** + * 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('flash.events.Event'); + +/** + * @constructor + */ +flash.events.Event = function() { + /** + * @private + * @type {string} + */ + this.type_; +}; + +/** + * @this {flash.events.Event} + * @param {string} type The event type. + */ +flash.events.Event.prototype.init = function(type) { + this.type_ = type; +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/flash/events/Event.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/flash/events/EventDispatcher.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/flash/events/EventDispatcher.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/flash/events/EventDispatcher.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/flash/events/EventDispatcher.js Thu Dec 6 00:03:35 2012 @@ -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('flash.events.EventDispatcher'); + +goog.require('org.apache.flex.FlexGlobal'); + +/** + * @constructor + * @extends {org.apache.flex.FlexGlobal} + */ +flash.events.EventDispatcher = function() { + org.apache.flex.FlexGlobal.call(this); + + /** + * @private + * @type {Object} + */ + this.listeners_ = {}; +}; +goog.inherits(flash.events.EventDispatcher, org.apache.flex.FlexGlobal); + +/** + * @this {flash.events.EventDispatcher} + * @param {string} type The event type. + * @param {function(?): ?} fn The event handler. + */ +flash.events.EventDispatcher.prototype.addEventListener = function(type, fn) { + if (!this.listeners_.type) { + this.listeners_[type] = []; + } + + this.listeners_[type].push(fn); +}; + +/** + * @this {flash.events.EventDispatcher} + * @param {Object} event The event to dispatch. + */ +flash.events.EventDispatcher.prototype.dispatchEvent = function(event) { + var arr, i, n, type; + + type = event.type; + + if (this.listeners_[type]) { + arr = this.listeners_[type]; + n = arr.length; + for (i = 0; i < n; i++) { + arr[i](event); + } + } +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/flash/events/EventDispatcher.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/binding/SimpleBinding.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/binding/SimpleBinding.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/binding/SimpleBinding.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/binding/SimpleBinding.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,81 @@ +/** + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +goog.provide('org.apache.flex.binding.SimpleBinding'); + +goog.require('org.apache.flex.FlexGlobal'); +goog.require('org.apache.flex.FlexObject'); + +/** + * @constructor + * @extends {org.apache.flex.FlexObject} + */ +org.apache.flex.binding.SimpleBinding = function() { + org.apache.flex.FlexObject.call(this); +}; +goog.inherits( + org.apache.flex.binding.SimpleBinding, org.apache.flex.FlexObject +); + +/** + * @expose + * @type {Object} + */ +org.apache.flex.binding.SimpleBinding.prototype.destination = null; + +/** + * @expose + * @type {string} + */ +org.apache.flex.binding.SimpleBinding.prototype.destinationPropertyName = ""; + +/** + * @expose + * @type {string} + */ +org.apache.flex.binding.SimpleBinding.prototype.eventName = ""; + +/** + * @expose + * @type {Object} + */ +org.apache.flex.binding.SimpleBinding.prototype.source = null; + +/** + * @expose + * @type {string} + */ +org.apache.flex.binding.SimpleBinding.prototype.sourcePropertyName = ""; + +/** + * @this {org.apache.flex.binding.SimpleBinding} + */ +org.apache.flex.binding.SimpleBinding.prototype.changeHandler = function() { + this.destination['set_' + this.destinationPropertyName]( + this.source['get_' + this.sourcePropertyName]() + ); +}; + +/** + * @this {org.apache.flex.binding.SimpleBinding} + */ +org.apache.flex.binding.SimpleBinding.prototype.initialize = function() { + this.source.addEventListener( + this.eventName, org.apache.flex.FlexGlobal.createProxy( + this, this.changeHandler + ) + ); + + this.changeHandler(); +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/binding/SimpleBinding.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/Application.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/Application.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/Application.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/Application.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,112 @@ +/** + * 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.core.Application'); + +goog.require('org.apache.flex.FlexGlobal'); +goog.require('org.apache.flex.FlexObject'); + +goog.require('org.apache.flex.core.SimpleValuesImpl'); +goog.require('org.apache.flex.core.ValuesManager'); +goog.require('org.apache.flex.core.ViewBase'); + +/** + * @constructor + * @extends {org.apache.flex.FlexObject} + */ +org.apache.flex.core.Application = function() { + org.apache.flex.FlexObject.call(this); + + /** + * @private + * @type {Array.} + */ + this.queuedListeners_; +}; +goog.inherits(org.apache.flex.core.Application, org.apache.flex.FlexObject); + +/** + * @expose + * @type {Object} + */ +org.apache.flex.core.Application.prototype.controller = null; + +/** + * @expose + * @type {org.apache.flex.core.ViewBase} + */ +org.apache.flex.core.Application.prototype.initialView = null; + +/** + * @expose + * @type {flash.events.EventDispatcher} + */ +org.apache.flex.core.Application.prototype.model = null; + +/** + * @expose + * @type {org.apache.flex.core.SimpleValuesImpl} + */ +org.apache.flex.core.Application.prototype.valuesImpl = null; + +/** + * @this {org.apache.flex.core.Application} + * @param {string} t The event type. + * @param {function(?): ?} fn The event handler. + */ +org.apache.flex.core.Application.prototype.addEventListener = function(t, fn) { + if (!this.element) { + if (!this.queuedListeners_) { + this.queuedListeners_ = []; + } + + this.queuedListeners_.push({ type: t, handler: fn }); + + return; + } + + if (typeof this.element.attachEvent == 'function') { + this.element.attachEvent(org.apache.flex.FlexGlobal.EventMap[t], fn); + } else if (typeof this.element.addEventListener == 'function') { + this.element.addEventListener(t, fn); + } +}; + +/** + * @expose + * @this {org.apache.flex.core.Application} + */ +org.apache.flex.core.Application.prototype.start = function() { + var evt, i, n, q; + + this.element = document.getElementsByTagName('body')[0]; + + if (this.queuedListeners_) { + n = this.queuedListeners_.length; + for (i = 0; i < n; i++) { + q = this.queuedListeners_[i]; + + this.addEventListener(q.type, q.handler); + } + } + + org.apache.flex.core.ValuesManager.valuesImpl = this.valuesImpl; + + this.initialView.addToParent(this.element); + this.initialView.initUI(this); + + evt = document.createEvent('Event'); + evt.initEvent('viewChanged', true, true); + this.element.dispatchEvent(evt); +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/Application.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/SimpleValuesImpl.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/SimpleValuesImpl.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/SimpleValuesImpl.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/SimpleValuesImpl.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,28 @@ +/** + * 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.core.SimpleValuesImpl'); + +goog.require('org.apache.flex.FlexObject'); + +/** + * @constructor + * @extends {org.apache.flex.FlexObject} + */ +org.apache.flex.core.SimpleValuesImpl = function() { + org.apache.flex.FlexObject.call(this); +}; +goog.inherits( + org.apache.flex.core.SimpleValuesImpl, org.apache.flex.FlexObject +); Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/SimpleValuesImpl.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/UIBase.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/UIBase.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/UIBase.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/UIBase.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,84 @@ +/** + * 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.core.UIBase'); + +goog.require('org.apache.flex.FlexGlobal'); +goog.require('org.apache.flex.FlexObject'); + +/** + * @constructor + * @extends {org.apache.flex.FlexObject} + */ +org.apache.flex.core.UIBase = function() { + org.apache.flex.FlexObject.call(this); + + /** + * @protected + * @type {Object} + */ + this.positioner; +}; +goog.inherits(org.apache.flex.core.UIBase, org.apache.flex.FlexObject); + +/** + * @this {org.apache.flex.core.UIBase} + * @param {string} type The event type. + * @param {function(?): ?} fn The event handler. + */ +org.apache.flex.core.UIBase.prototype.addEventListener = function(type, fn) { + if (typeof this.element.attachEvent == 'function') { + this.element.attachEvent(org.apache.flex.FlexGlobal.EventMap[type], fn); + } else if (typeof this.element.addEventListener == 'function') { + this.element.addEventListener(type, fn); + } +}; + +/** + * @this {org.apache.flex.core.UIBase} + * @param {Object} p The parent element. + */ +org.apache.flex.core.UIBase.prototype.addToParent = function(p) { + this.element = document.createElement('div'); + + p.appendChild(this.element); +}; + +/** + * @this {org.apache.flex.core.UIBase} + * @param {flash.events.Event} evt The event. + */ +org.apache.flex.core.UIBase.prototype.dispatchEvent = function(evt) { + this.element.dispatchEvent(evt); +}; + +/** + * @expose + * @this {org.apache.flex.core.UIBase} + * @param {number} pixels The pixel count from the left edge. + */ +org.apache.flex.core.UIBase.prototype.set_x = function(pixels) { + this.positioner.style.position = 'absolute'; + this.positioner.style.left = pixels.toString() + 'px'; +}; + +/** + * @expose + * @this {org.apache.flex.core.UIBase} + * @param {number} pixels The pixel count from the top edge. + */ +org.apache.flex.core.UIBase.prototype.set_y = function(pixels) { + this.positioner.style.position = 'absolute'; + this.positioner.style.top = pixels.toString() + 'px'; +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/UIBase.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/ValuesManager.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/ValuesManager.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/ValuesManager.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/ValuesManager.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,32 @@ +/** + * 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.core.ValuesManager'); + +goog.require('org.apache.flex.FlexObject'); + +/** + * @constructor + * @extends {org.apache.flex.FlexObject} + */ +org.apache.flex.core.ValuesManager = function() { + org.apache.flex.FlexObject.call(this); +}; +goog.inherits(org.apache.flex.core.ValuesManager, org.apache.flex.FlexObject); + +/** + * @expose + * @type {org.apache.flex.core.SimpleValuesImpl} + */ +org.apache.flex.core.ValuesManager.prototype.valuesImpl; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/ValuesManager.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/ViewBase.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/ViewBase.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/ViewBase.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/ViewBase.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,134 @@ +/** + * 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.core.ViewBase'); + +goog.require('org.apache.flex.FlexGlobal'); + +goog.require('org.apache.flex.binding.SimpleBinding'); + +goog.require('org.apache.flex.core.UIBase'); + +/** + * @constructor + * @extends {org.apache.flex.core.UIBase} + */ +org.apache.flex.core.ViewBase = function() { + org.apache.flex.core.UIBase.call(this); + + /** + * @private + * @type {org.apache.flex.core.ViewBase} + */ + this.currentObject_; +}; +goog.inherits(org.apache.flex.core.ViewBase, org.apache.flex.core.UIBase); + +/** + * @protected + * @return {Array} The array of UI element descriptors. + */ +org.apache.flex.core.ViewBase.prototype.get_uiDescriptors = function() { + return []; +}; + +/** + * @this {org.apache.flex.core.ViewBase} + * @param {org.apache.flex.core.Application} app The main application. + */ +org.apache.flex.core.ViewBase.prototype.initUI = function(app) { + var count, descriptor, descriptors, i, j, n, sb, value; + + descriptors = this.get_uiDescriptors(); + + if (descriptors && descriptors.length) { + n = descriptors.length; + i = 0; + while (i < n) + { + // class (index 0) + descriptor = descriptors[i++]; + this.currentObject_ = + /* : org.apache.flex.core.ViewBase */ new descriptor(); + this.currentObject_.addToParent(this.element); + + // model (index 1) + descriptor = descriptors[i++]; + if (descriptor) { + value = new descriptor(); + this.currentObject_.addBead(value); + } + if (typeof this.currentObject_.initModel == 'function') { + this.currentObject_.initModel(); + } + + // id (index 2) + descriptor = descriptors[i++]; + if (descriptor) { + this[descriptor] = this.currentObject_; + } + + // num props + count = descriptors[i++]; + for (j = 0; j < count; j++) { + descriptor = descriptors[i++]; + value = descriptors[i++]; + this.currentObject_['set_' + descriptor](value); + } + + // num beads + count = descriptors[i++]; + for (j = 0; j < count; j++) { + descriptor = descriptors[i++]; + value = new descriptor(); + this.currentObject_.addBead(value); + } + if (typeof this.currentObject_.initSkin == 'function') { + this.currentObject_.initSkin(); + } + + // num events + count = descriptors[i++]; + for (j = 0; j < count; j++) { + descriptor = descriptors[i++]; + value = descriptors[i++]; + this.currentObject_.addEventListener( + descriptor, org.apache.flex.FlexGlobal.createProxy( + this, value + ) + ); + } + + // num bindings + count = descriptors[i++]; + for (j = 0; j < count; j++) { + descriptor = descriptors[i++]; + value = descriptors[i++]; + switch (value) { + case 0 : { + sb = new org.apache.flex.binding.SimpleBinding(); + sb.destination = this.currentObject_; + sb.destinationPropertyName = descriptor; + sb.source = app[descriptors[i++]]; + sb.sourcePropertyName = descriptors[i++]; + sb.eventName = descriptors[i++]; + sb.initialize(); + + break; + } + } + } + } + } +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/core/ViewBase.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/html/staticControls/Label.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/html/staticControls/Label.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/html/staticControls/Label.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/html/staticControls/Label.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,57 @@ +/** + * 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.Label'); + +goog.require('org.apache.flex.core.UIBase'); + +/** + * @constructor + * @extends {org.apache.flex.core.UIBase} + */ +org.apache.flex.html.staticControls.Label = function() { + org.apache.flex.core.UIBase.call(this); +}; +goog.inherits( + org.apache.flex.html.staticControls.Label, org.apache.flex.core.UIBase +); + +/** + * @override + * @this {org.apache.flex.html.staticControls.Label} + * @param {Object} p The parent element. + */ +org.apache.flex.html.staticControls.Label.prototype.addToParent = function(p) { + goog.base(this, 'addToParent', p); + + this.positioner = this.element; +}; + +/** + * @expose + * @this {org.apache.flex.html.staticControls.Label} + * @return {string} The text getter. + */ +org.apache.flex.html.staticControls.Label.prototype.get_text = function() { + return this.element.innerHTML; +}; + +/** + * @expose + * @this {org.apache.flex.html.staticControls.Label} + * @param {string} value The text setter. + */ +org.apache.flex.html.staticControls.Label.prototype.set_text = function(value) { + this.element.innerHTML = value; +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/html/staticControls/Label.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/html/staticControls/TextButton.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/html/staticControls/TextButton.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/html/staticControls/TextButton.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/html/staticControls/TextButton.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,62 @@ +/** + * 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.core.UIBase'); + +/** + * @constructor + * @extends {org.apache.flex.core.UIBase} + */ +org.apache.flex.html.staticControls.TextButton = function() { + org.apache.flex.core.UIBase.call(this); +}; +goog.inherits( + org.apache.flex.html.staticControls.TextButton, org.apache.flex.core.UIBase +); + +/** + * @override + * @this {org.apache.flex.html.staticControls.TextButton} + * @param {Object} p The parent element. + */ +org.apache.flex.html.staticControls.TextButton.prototype.addToParent = + function(p) { + this.element = document.createElement('input'); + this.element.setAttribute('type', 'button'); + + p.appendChild(this.element); + + this.positioner = this.element; +}; + +/** + * @expose + * @this {org.apache.flex.html.staticControls.TextButton} + * @return {string} The text getter. + */ +org.apache.flex.html.staticControls.TextButton.prototype.get_text = function() { + return this.element.value; +}; + +/** + * @expose + * @this {org.apache.flex.html.staticControls.TextButton} + * @param {string} value The text setter. + */ +org.apache.flex.html.staticControls.TextButton.prototype.set_text = + function(value) { + this.element.value = value; +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/src/org/apache/flex/html/staticControls/TextButton.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/FlexJSTest.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/FlexJSTest.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/FlexJSTest.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/FlexJSTest.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,59 @@ +/** + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +goog.provide('FlexJSTest'); + +goog.require('MyController'); +goog.require('MyInitialView'); +goog.require('MyModel'); +goog.require('MySimpleValuesImpl'); + +goog.require('org.apache.flex.FlexGlobal'); + +goog.require('org.apache.flex.core.Application'); + +/** + * @constructor + * @extends {org.apache.flex.core.Application} + */ +FlexJSTest = function() { + org.apache.flex.core.Application.call(this); + + this.controller = org.apache.flex.FlexGlobal.newObject( + MyController, [this] + ); + + this.initialView = + /** @type {org.apache.flex.core.ViewBase} */ ( + org.apache.flex.FlexGlobal.newObject(MyInitialView, [this]) + ); + + this.model = + /** @type {flash.events.EventDispatcher} */ ( + org.apache.flex.FlexGlobal.newObject(MyModel, []) + ); + this.model.set_labelText('Say hi!'); + + this.valuesImpl = + /** @type {org.apache.flex.core.SimpleValuesImpl} */ ( + org.apache.flex.FlexGlobal.newObject(MySimpleValuesImpl, [this]) + ); + + // this method of logging survives the Closure Compiler + //window['console']['log'](app); +}; +goog.inherits(FlexJSTest, org.apache.flex.core.Application); + +// Ensures the symbol will be visible after compiler renaming. +goog.exportSymbol('FlexJSTest', FlexJSTest); Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/FlexJSTest.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyController.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyController.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyController.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyController.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,56 @@ +/** + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +goog.provide('MyController'); + +goog.require('flash.events.EventDispatcher'); + +goog.require('org.apache.flex.FlexGlobal'); + +/** + * @constructor + * @param {org.apache.flex.core.Application} app The main application. + */ +MyController = function(app) { + /** + * @type {org.apache.flex.core.Application} + */ + this.app = app || null; + + this.app.addEventListener( + 'viewChanged', org.apache.flex.FlexGlobal.createProxy( + this, this.viewChangeHandler + ) + ); +}; + +/** + * @this {MyController} + * @param {flash.events.Event} event The event. + */ +MyController.prototype.viewChangeHandler = function(event) { + this.app.initialView.addEventListener( + 'buttonClicked', org.apache.flex.FlexGlobal.createProxy( + this, this.buttonClickHandler + ) + ); +}; + +/** + * @this {MyController} + * @param {flash.events.Event} event The event. + */ +MyController.prototype.buttonClickHandler = function(event) { + this.app.model.set_labelText('Hello Universe'); +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyController.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyInitialView.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyInitialView.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyInitialView.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyInitialView.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,67 @@ +/** + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +goog.provide('MyInitialView'); + +goog.require('org.apache.flex.FlexGlobal'); + +goog.require('org.apache.flex.core.ViewBase'); +goog.require('org.apache.flex.html.staticControls.Label'); +goog.require('org.apache.flex.html.staticControls.TextButton'); + +/** + * @constructor + * @extends {org.apache.flex.core.ViewBase} + */ +MyInitialView = function() { + org.apache.flex.core.ViewBase.call(this); +}; +goog.inherits(MyInitialView, org.apache.flex.core.ViewBase); + +/** + * @override + * @this {org.apache.flex.core.ViewBase} + * @return {Array} The array of UI element descriptors. + */ +MyInitialView.prototype.get_uiDescriptors = function() { + return [ + org.apache.flex.html.staticControls.Label, + null, + 'lbl', + 2, 'x', 100, 'y', 25, + 0, + 0, + 1, 'text', 0, 'model', 'labelText', 'labelTextChanged', + org.apache.flex.html.staticControls.TextButton, + null, + null, + 3, 'text', 'OK', 'x', 100, 'y', 75, + 0, + 1, 'click', this.clickHandler, 0 + ]; +}; + +/** + * @this {MyInitialView} + * @param {flash.events.Event} event The event. + */ +MyInitialView.prototype.clickHandler = function(event) { + this.dispatchEvent( + /** @type {flash.events.Event} */ ( + org.apache.flex.FlexGlobal.newObject( + flash.events.Event, ['buttonClicked'] + ) + ) + ); +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyInitialView.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyModel.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyModel.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyModel.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyModel.js Thu Dec 6 00:03:35 2012 @@ -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('MyModel'); + +goog.require('flash.events.EventDispatcher'); + +goog.require('org.apache.flex.FlexGlobal'); + +/** + * @constructor + * @extends {flash.events.EventDispatcher} + */ +MyModel = function() { + flash.events.EventDispatcher.call(this); + + /** + * @private + * @type {string} + */ + this.labelText_; +}; +goog.inherits(MyModel, flash.events.EventDispatcher); + +/** + * @expose + * @this {MyModel} + * @return {string} The labelText getter. + */ +MyModel.prototype.get_labelText = function() { + return this.labelText_; +}; + +/** + * @expose + * @this {MyModel} + * @param {string} value The labelText setter. + */ +MyModel.prototype.set_labelText = function(value) { + if (value != this.labelText_) { + this.labelText_ = value; + + this.dispatchEvent( + org.apache.flex.FlexGlobal.newObject( + flash.events.Event, ['labelTextChanged'] + ) + ); + } +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MyModel.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MySimpleValuesImpl.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MySimpleValuesImpl.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MySimpleValuesImpl.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MySimpleValuesImpl.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,41 @@ +/** + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +goog.provide('MySimpleValuesImpl'); + +goog.require('org.apache.flex.core.SimpleValuesImpl'); + +/** + * @constructor + * @extends {org.apache.flex.core.SimpleValuesImpl} + */ +MySimpleValuesImpl = function() { + org.apache.flex.core.SimpleValuesImpl.call(this); + + /** + * @private + * @type {Object} + */ + this.values_ = { + /* + ITextButtonBead : + org.apache.flex.html.staticControls.beads.TextButtonBead, + ITextBead : + org.apache.flex.html.staticControls.beads.TextFieldBead, + ITextModel : + org.apache.flex.html.staticControls.beads.models.TextModel + */ + }; +}; +goog.inherits(MySimpleValuesImpl, org.apache.flex.core.SimpleValuesImpl); Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/MySimpleValuesImpl.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/test.html URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/test.html?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/test.html (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/test.html Thu Dec 6 00:03:35 2012 @@ -0,0 +1,43 @@ + + + + + + + + + + + + + \ No newline at end of file Propchange: incubator/flex/whiteboard/erikdebruin/asjs/frameworks/js/tests/test.html ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/publisher/README URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/publisher/README?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/publisher/README (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/publisher/README Thu Dec 6 00:03:35 2012 @@ -0,0 +1,20 @@ +1. create a directory 'closure' somewhere +2. get Closure Library and install it in 'closure/library' + - svn checkout http://closure-library.googlecode.com/svn/trunk/ library +3. download Closure Compiler and unzip in 'closure/compiler' + - http://closure-compiler.googlecode.com/files/compiler-latest.zip +4. install Closure Linter into 'closure/linter' + - https://developers.google.com/closure/utilities/docs/linter_howto +5. get Closure Builder and install it in 'closure/builder' + - svn checkout http://closure-library.googlecode.com/svn/trunk/closure/bin/build/ builder +6. edit 'build.properties' to reflect the location of the 'closure' directory +7. build FalconJS (see README) +8. run the publish script with the 'ant -Dapp.name=[your.app.name.here] -Dapp.location=[your.app.location.here]' + +ATTENTION! +As of 2012-12-06, the FalconJS compiler doesn't output JS that can be parsed +by the new tool set. While this is being corrected, you'll have to create your +own 'intermediate' JS project, or modify one of the examples (I've included +'FlexJSTest_dummy' in the repo). Make sure to not include the 'falconJS' +dependency (?) in the build.xml and if you don't want to loose your work, +make sure to set CLEAN_INTERMEDIATE_JS to 'false' in build.properties. Propchange: incubator/flex/whiteboard/erikdebruin/asjs/publisher/README ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/publisher/build.properties URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/publisher/build.properties?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/publisher/build.properties (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/publisher/build.properties Thu Dec 6 00:03:35 2012 @@ -0,0 +1,46 @@ + + +# Clean out the previous run's intermediate files? Set false if working with a dummy set of JS intermediairies. +CLEAN_INTERMEDIATE_JS=false + +# Location of the Google Closure tool set (EDIT THIS). +DIR_CLOSURE=/Users/erik/Documents/ApacheFlex/dependencies/GoogleClosure +# With a default install there should be no need to edit these: +DIR_CLOSURE_LIBRARY=${DIR_CLOSURE}/library +FILE_CLOSURE_BUILDER=${DIR_CLOSURE}/builder/closurebuilder.py +FILE_CLOSURE_DEPENDENCIES=${DIR_CLOSURE_LIBRARY}/closure/goog/deps.js +FILE_CLOSURE_JAR=${DIR_CLOSURE}/compiler/compiler.jar + +# Location of the FlexJS framework (from SVN, with default working copy structure there is no need to edit this) +DIR_FRAMEWORK=${basedir}/../frameworks/js/src + +# Location of intermediate and release project files +DIR_INTERMEDIATE=${basedir}/intermediate +DIR_RELEASE=${basedir}/release +# Location of the current project's files, with the 'app' property passed in using the '-Dapp.name=[value]' argument. +DIR_INTERMEDIATE_APPLICATION=${DIR_INTERMEDIATE}/${app.name} +DIR_RELEASE_APPLICATION=${DIR_RELEASE}/${app.name} + +# Location of the FalconJS mxmlc script (EDIT THIS). +FILE_FALCONJS_COMPILE_SCRIPT=/Users/erik/Documents/ApacheFlex/repo/falcon/compiler.js/bin/mxmlc + +# No need to edit these. +FILE_HTML_TEMPLATE=${basedir}/index.html.template +FILE_RELEASE=${DIR_RELEASE_APPLICATION}/FlexJS.js Propchange: incubator/flex/whiteboard/erikdebruin/asjs/publisher/build.properties ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/publisher/build.xml URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/publisher/build.xml?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/publisher/build.xml (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/publisher/build.xml Thu Dec 6 00:03:35 2012 @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Delete 'intermediate' and 'release' directories + + + + + + + + + + + + + + + + + + Create 'intermediate' and 'release' directory structure + + + + + + + Compiling the AS project into intermediate JS + + + + + + + + + + + + + + Creating combined and compiled output JS + + + + + Creating playback HTML file from template + + + + Propchange: incubator/flex/whiteboard/erikdebruin/asjs/publisher/build.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/publisher/index.html.template URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/publisher/index.html.template?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/publisher/index.html.template (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/publisher/index.html.template Thu Dec 6 00:03:35 2012 @@ -0,0 +1,11 @@ + + + + + + + + + + + Added: incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/FlexJSTest_dummy.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/FlexJSTest_dummy.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/FlexJSTest_dummy.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/FlexJSTest_dummy.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,59 @@ +/** + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +goog.provide('FlexJSTest_dummy'); + +goog.require('MyController'); +goog.require('MyInitialView'); +goog.require('MyModel'); +goog.require('MySimpleValuesImpl'); + +goog.require('org.apache.flex.FlexGlobal'); + +goog.require('org.apache.flex.core.Application'); + +/** + * @constructor + * @extends {org.apache.flex.core.Application} + */ +FlexJSTest_dummy = function() { + org.apache.flex.core.Application.call(this); + + this.controller = org.apache.flex.FlexGlobal.newObject( + MyController, [this] + ); + + this.initialView = + /** @type {org.apache.flex.core.ViewBase} */ ( + org.apache.flex.FlexGlobal.newObject(MyInitialView, [this]) + ); + + this.model = + /** @type {flash.events.EventDispatcher} */ ( + org.apache.flex.FlexGlobal.newObject(MyModel, []) + ); + this.model.set_labelText('Say hi!'); + + this.valuesImpl = + /** @type {org.apache.flex.core.SimpleValuesImpl} */ ( + org.apache.flex.FlexGlobal.newObject(MySimpleValuesImpl, [this]) + ); + + // this method of logging survives the Closure Compiler + //window['console']['log'](app); +}; +goog.inherits(FlexJSTest_dummy, org.apache.flex.core.Application); + +// Ensures the symbol will be visible after compiler renaming. +goog.exportSymbol('FlexJSTest_dummy', FlexJSTest_dummy); Propchange: incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/FlexJSTest_dummy.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyController.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyController.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyController.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyController.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,56 @@ +/** + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +goog.provide('MyController'); + +goog.require('flash.events.EventDispatcher'); + +goog.require('org.apache.flex.FlexGlobal'); + +/** + * @constructor + * @param {org.apache.flex.core.Application} app The main application. + */ +MyController = function(app) { + /** + * @type {org.apache.flex.core.Application} + */ + this.app = app || null; + + this.app.addEventListener( + 'viewChanged', org.apache.flex.FlexGlobal.createProxy( + this, this.viewChangeHandler + ) + ); +}; + +/** + * @this {MyController} + * @param {flash.events.Event} event The event. + */ +MyController.prototype.viewChangeHandler = function(event) { + this.app.initialView.addEventListener( + 'buttonClicked', org.apache.flex.FlexGlobal.createProxy( + this, this.buttonClickHandler + ) + ); +}; + +/** + * @this {MyController} + * @param {flash.events.Event} event The event. + */ +MyController.prototype.buttonClickHandler = function(event) { + this.app.model.set_labelText('Hello Universe'); +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyController.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyInitialView.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyInitialView.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyInitialView.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyInitialView.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,67 @@ +/** + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +goog.provide('MyInitialView'); + +goog.require('org.apache.flex.FlexGlobal'); + +goog.require('org.apache.flex.core.ViewBase'); +goog.require('org.apache.flex.html.staticControls.Label'); +goog.require('org.apache.flex.html.staticControls.TextButton'); + +/** + * @constructor + * @extends {org.apache.flex.core.ViewBase} + */ +MyInitialView = function() { + org.apache.flex.core.ViewBase.call(this); +}; +goog.inherits(MyInitialView, org.apache.flex.core.ViewBase); + +/** + * @override + * @this {org.apache.flex.core.ViewBase} + * @return {Array} The array of UI element descriptors. + */ +MyInitialView.prototype.get_uiDescriptors = function() { + return [ + org.apache.flex.html.staticControls.Label, + null, + 'lbl', + 2, 'x', 100, 'y', 25, + 0, + 0, + 1, 'text', 0, 'model', 'labelText', 'labelTextChanged', + org.apache.flex.html.staticControls.TextButton, + null, + null, + 3, 'text', 'OK', 'x', 100, 'y', 75, + 0, + 1, 'click', this.clickHandler, 0 + ]; +}; + +/** + * @this {MyInitialView} + * @param {flash.events.Event} event The event. + */ +MyInitialView.prototype.clickHandler = function(event) { + this.dispatchEvent( + /** @type {flash.events.Event} */ ( + org.apache.flex.FlexGlobal.newObject( + flash.events.Event, ['buttonClicked'] + ) + ) + ); +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyInitialView.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyModel.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyModel.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyModel.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyModel.js Thu Dec 6 00:03:35 2012 @@ -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('MyModel'); + +goog.require('flash.events.EventDispatcher'); + +goog.require('org.apache.flex.FlexGlobal'); + +/** + * @constructor + * @extends {flash.events.EventDispatcher} + */ +MyModel = function() { + flash.events.EventDispatcher.call(this); + + /** + * @private + * @type {string} + */ + this.labelText_; +}; +goog.inherits(MyModel, flash.events.EventDispatcher); + +/** + * @expose + * @this {MyModel} + * @return {string} The labelText getter. + */ +MyModel.prototype.get_labelText = function() { + return this.labelText_; +}; + +/** + * @expose + * @this {MyModel} + * @param {string} value The labelText setter. + */ +MyModel.prototype.set_labelText = function(value) { + if (value != this.labelText_) { + this.labelText_ = value; + + this.dispatchEvent( + org.apache.flex.FlexGlobal.newObject( + flash.events.Event, ['labelTextChanged'] + ) + ); + } +}; Propchange: incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MyModel.js ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MySimpleValuesImpl.js URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MySimpleValuesImpl.js?rev=1417700&view=auto ============================================================================== --- incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MySimpleValuesImpl.js (added) +++ incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MySimpleValuesImpl.js Thu Dec 6 00:03:35 2012 @@ -0,0 +1,41 @@ +/** + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +goog.provide('MySimpleValuesImpl'); + +goog.require('org.apache.flex.core.SimpleValuesImpl'); + +/** + * @constructor + * @extends {org.apache.flex.core.SimpleValuesImpl} + */ +MySimpleValuesImpl = function() { + org.apache.flex.core.SimpleValuesImpl.call(this); + + /** + * @private + * @type {Object} + */ + this.values_ = { + /* + ITextButtonBead : + org.apache.flex.html.staticControls.beads.TextButtonBead, + ITextBead : + org.apache.flex.html.staticControls.beads.TextFieldBead, + ITextModel : + org.apache.flex.html.staticControls.beads.models.TextModel + */ + }; +}; +goog.inherits(MySimpleValuesImpl, org.apache.flex.core.SimpleValuesImpl); Propchange: incubator/flex/whiteboard/erikdebruin/asjs/publisher/intermediate/FlexJSTest_dummy/MySimpleValuesImpl.js ------------------------------------------------------------------------------ svn:eol-style = native