From c4c5a8b49bb26d6344edceba73834754bb9930cf Mon Sep 17 00:00:00 2001 From: Jose Antonio Marquez Date: Tue, 7 Feb 2012 11:14:57 -0800 Subject: Adding ability to copy an entire library for Ninja Added the functionality to copy an entire directory/library from a JSON descriptor file into the app sandbox. Need to add logic to dispatch a 'synchronized' event for Ninja to know everything is up to date. --- node_modules/descriptor.json | 1 + 1 file changed, 1 insertion(+) (limited to 'node_modules') diff --git a/node_modules/descriptor.json b/node_modules/descriptor.json index 27342af7..29273403 100644 --- a/node_modules/descriptor.json +++ b/node_modules/descriptor.json @@ -1,6 +1,7 @@ { "copyright": "This file contains proprietary software owned by Motorola Mobility, Inc. No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder. (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.", "version": "0.0.0.0", + "root": "/ninja-internal/node_modules/montage/", "directories": [{"name": "core", "children": [{"name": "converter"}, {"name": "event"}, {"name": "geometry"}, {"name": "shim"}] }, -- cgit v1.2.3 From e5579374ff39b80b8c0c69faba37f6f581758fe0 Mon Sep 17 00:00:00 2001 From: Valerio Virgillito Date: Tue, 7 Feb 2012 13:28:17 -0800 Subject: updated montage v.0.6 to the latest changes. Signed-off-by: Valerio Virgillito --- node_modules/montage/core/event/binding.js | 4 -- node_modules/montage/core/event/event-manager.js | 4 +- node_modules/montage/core/promise.js | 11 ++++- node_modules/montage/ui/component.js | 48 ++++++++++++++++++---- node_modules/montage/ui/composer/composer.js | 14 +++++++ node_modules/montage/ui/composer/swipe-composer.js | 24 ++++++----- node_modules/montage/ui/slot.reel/slot.js | 5 ++- 7 files changed, 82 insertions(+), 28 deletions(-) (limited to 'node_modules') diff --git a/node_modules/montage/core/event/binding.js b/node_modules/montage/core/event/binding.js index 7a15e5b9..f061e89a 100755 --- a/node_modules/montage/core/event/binding.js +++ b/node_modules/montage/core/event/binding.js @@ -505,8 +505,6 @@ var PropertyChangeBindingListener = exports.PropertyChangeBindingListener = Obje localPrevValue = event.minus, localTarget = event.target, type = event.type, - changeType = event.propertyChange, - localPropertyName = event.propertyName, boundObjectValue, sourceObjectValue, dotIndex, @@ -676,8 +674,6 @@ var PropertyChangeBindingListener = exports.PropertyChangeBindingListener = Obje localPrevValue = null; localTarget = null; type = null; - changeType = null; - localPropertyName = null; dotIndex = null; nextPathComponent = null; atSignIndex = null; diff --git a/node_modules/montage/core/event/event-manager.js b/node_modules/montage/core/event/event-manager.js index 4adc3926..b3e97dbe 100755 --- a/node_modules/montage/core/event/event-manager.js +++ b/node_modules/montage/core/event/event-manager.js @@ -1874,9 +1874,9 @@ var EventManager = exports.EventManager = Montage.create(Montage,/** @lends modu if (target) { associatedComponent = this.eventHandlerForElement(target); if (associatedComponent) { - if (!associatedComponent._preparedForActivationEvents && typeof associatedComponent.prepareForActivationEvents === "function") { + if (!associatedComponent._preparedForActivationEvents) { - associatedComponent.prepareForActivationEvents(); + associatedComponent._prepareForActivationEvents(); associatedComponent._preparedForActivationEvents = true; } else if (associatedComponent._preparedForActivationEvents) { diff --git a/node_modules/montage/core/promise.js b/node_modules/montage/core/promise.js index aabe113d..df063846 100755 --- a/node_modules/montage/core/promise.js +++ b/node_modules/montage/core/promise.js @@ -65,8 +65,17 @@ function toPromise(value) { var Creatable = Object.create(Object.prototype, { create: { value: function (descriptor) { + for (var name in descriptor) { + var property = descriptor[name]; + if (!property.set && !property.get) { + property.writable = true + } + property.configurable = true; + } return Object.create(this, descriptor); - } + }, + writable: true, + configurable: true }, }); diff --git a/node_modules/montage/ui/component.js b/node_modules/montage/ui/component.js index 90612f83..e41a1958 100755 --- a/node_modules/montage/ui/component.js +++ b/node_modules/montage/ui/component.js @@ -7,7 +7,6 @@ @module montage/ui/component @requires montage/core/core @requires montage/core/event/mutable-event - @requires montage/core/bitfield @requires montage/ui/reel @requires montage/core/gate @requires montage/core/logger | component @@ -16,7 +15,6 @@ */ var Montage = require("montage").Montage, MutableEvent = require("core/event/mutable-event").MutableEvent, - BitField = require("core/bitfield").BitField, Template = require("ui/template").Template, Gate = require("core/gate").Gate, logger = require("core/logger").logger("component"), @@ -525,7 +523,11 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon content: { get: function() { - return Array.prototype.slice.call(this._element.childNodes, 0); + if (this._element) { + return Array.prototype.slice.call(this._element.childNodes, 0); + } else { + return null; + } }, set: function(value) { var components = [], @@ -891,11 +893,11 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon Template.templateWithModuleId(info.require, templateModuleId, onTemplateLoad); }}, /** - Callback for the _canDrawBitField.
+ Callback for the _canDrawGate.
Propagates to the parent and adds the component to the draw list. @function @param {Property} gate - @see _canDrawBitField + @see _canDrawGate */ gateDidBecomeTrue: { value: function(gate) { @@ -1047,6 +1049,27 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon enumerable: false, value: null }, + + /** + * Called to add event listeners on demand + * @type function + * @private + */ + _prepareForActivationEvents: { + value: function() { + var i = this.composerList.length, composer; + for (i = 0; i < this.composerList.length; i++) { + composer = this.composerList[i]; + if (composer.lazyLoad) { + composer._load(); + } + } + if (typeof this.prepareForActivationEvents === "function") { + this.prepareForActivationEvents(); + } + } + }, + /** Description TODO @private @@ -1297,7 +1320,11 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon this.composerList.push(composer); if (!this._firstDraw) { // prepareForDraw has already happened so do the loading here - composer._load(); + if (!composer.lazyLoad) { + composer._load(); + } else if (this._preparedForActivationEvents) { // even though it's lazyLoad prepareForActivationEvents has already happened + composer._load(); + } } } }, @@ -1671,7 +1698,7 @@ var rootComponent = Montage.create(Component, /** @lends module:montage/ui/compo */ addToDrawCycle: { value: function(component) { - var needsDrawListIndex = this._readyToDrawListIndex, length; + var needsDrawListIndex = this._readyToDrawListIndex, length, composer; if (needsDrawListIndex.hasOwnProperty(component.uuid)) { // Requesting a draw of a component that has already been drawn in the current cycle @@ -1694,10 +1721,13 @@ var rootComponent = Montage.create(Component, /** @lends module:montage/ui/compo component.prepareForDraw(); } - // Load any composers that have been added + // Load any non lazyLoad composers that have been added length = component.composerList.length; for (i = 0; i < length; i++) { - component.composerList[i]._load(); + composer = component.composerList[i]; + if (!composer.lazyLoad) { + composer._load(); + } } // Will we expose a different property, firstDraw, for components to check diff --git a/node_modules/montage/ui/composer/composer.js b/node_modules/montage/ui/composer/composer.js index 2f91bb22..eee7be67 100644 --- a/node_modules/montage/ui/composer/composer.js +++ b/node_modules/montage/ui/composer/composer.js @@ -40,6 +40,20 @@ exports.Composer = Montage.create(Montage, /** @lends module:montage/ui/composer } }, + + /** + * This property controls when a composer's load method is called. If `false` + * the composer's load method is called immediately as part of the next draw + * cycle after addComposer has been called on its associated component. If + * `true` loading of the composer is delayed until its associated component + * has prepareForActivationEvents called. + * @property + * @default false + */ + lazyLoad: { + value: false + }, + _needsFrame: { value: false }, diff --git a/node_modules/montage/ui/composer/swipe-composer.js b/node_modules/montage/ui/composer/swipe-composer.js index 4eb9ee3b..2d9fe266 100644 --- a/node_modules/montage/ui/composer/swipe-composer.js +++ b/node_modules/montage/ui/composer/swipe-composer.js @@ -208,17 +208,19 @@ exports.SwipeComposer = Montage.create(Composer, /** @lends module:montage/ui/co } } - swipeEvent = document.createEvent("CustomEvent"); - swipeEvent.initCustomEvent("swipemove", true, false, null); - swipeEvent.direction = direction; - swipeEvent.angle = this._startSwipeAngle; - swipeEvent.velocity = this._findVelocity((event.timeStamp - this._startTimestamp)); - swipeEvent.startX = this._startX; - swipeEvent.startY = this._startY; - swipeEvent.dX = this._deltaX; - swipeEvent.dY = this._deltaY; - - this.dispatchEvent(swipeEvent); + if (dX != 0 || dY != 0) { + swipeEvent = document.createEvent("CustomEvent"); + swipeEvent.initCustomEvent("swipemove", true, false, null); + swipeEvent.direction = direction; + swipeEvent.angle = this._startSwipeAngle; + swipeEvent.velocity = this._findVelocity((event.timeStamp - this._startTimestamp)); + swipeEvent.startX = this._startX; + swipeEvent.startY = this._startY; + swipeEvent.dX = this._deltaX; + swipeEvent.dY = this._deltaY; + + this.dispatchEvent(swipeEvent); + } } }, diff --git a/node_modules/montage/ui/slot.reel/slot.js b/node_modules/montage/ui/slot.reel/slot.js index 45c0ac1d..818cc68d 100755 --- a/node_modules/montage/ui/slot.reel/slot.js +++ b/node_modules/montage/ui/slot.reel/slot.js @@ -247,7 +247,10 @@ var Slot = exports.Slot = Montage.create(Component, /** @lends module:"montage/u // Introduce to the componentTree if content appended was a component if (this._contentToAppend && (typeof this._contentToAppend.element !== "undefined")) { - this.childComponents = [this._contentToAppend]; + this._contentToAppend.attachToParentComponent(); + // HACK: gets around the issue of the component never being part of the draw loop again because of the idempotence of the needsDraw = true. + this._contentToAppend.needsDraw = false; + this._contentToAppend.needsDraw = true; } } -- cgit v1.2.3