diff options
Diffstat (limited to 'node_modules/montage/ui')
-rwxr-xr-x | node_modules/montage/ui/component.js | 48 | ||||
-rw-r--r-- | node_modules/montage/ui/composer/composer.js | 14 | ||||
-rw-r--r-- | node_modules/montage/ui/composer/swipe-composer.js | 24 | ||||
-rwxr-xr-x | node_modules/montage/ui/slot.reel/slot.js | 5 |
4 files changed, 70 insertions, 21 deletions
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 @@ | |||
7 | @module montage/ui/component | 7 | @module montage/ui/component |
8 | @requires montage/core/core | 8 | @requires montage/core/core |
9 | @requires montage/core/event/mutable-event | 9 | @requires montage/core/event/mutable-event |
10 | @requires montage/core/bitfield | ||
11 | @requires montage/ui/reel | 10 | @requires montage/ui/reel |
12 | @requires montage/core/gate | 11 | @requires montage/core/gate |
13 | @requires montage/core/logger | component | 12 | @requires montage/core/logger | component |
@@ -16,7 +15,6 @@ | |||
16 | */ | 15 | */ |
17 | var Montage = require("montage").Montage, | 16 | var Montage = require("montage").Montage, |
18 | MutableEvent = require("core/event/mutable-event").MutableEvent, | 17 | MutableEvent = require("core/event/mutable-event").MutableEvent, |
19 | BitField = require("core/bitfield").BitField, | ||
20 | Template = require("ui/template").Template, | 18 | Template = require("ui/template").Template, |
21 | Gate = require("core/gate").Gate, | 19 | Gate = require("core/gate").Gate, |
22 | logger = require("core/logger").logger("component"), | 20 | logger = require("core/logger").logger("component"), |
@@ -525,7 +523,11 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon | |||
525 | 523 | ||
526 | content: { | 524 | content: { |
527 | get: function() { | 525 | get: function() { |
528 | return Array.prototype.slice.call(this._element.childNodes, 0); | 526 | if (this._element) { |
527 | return Array.prototype.slice.call(this._element.childNodes, 0); | ||
528 | } else { | ||
529 | return null; | ||
530 | } | ||
529 | }, | 531 | }, |
530 | set: function(value) { | 532 | set: function(value) { |
531 | var components = [], | 533 | var components = [], |
@@ -891,11 +893,11 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon | |||
891 | Template.templateWithModuleId(info.require, templateModuleId, onTemplateLoad); | 893 | Template.templateWithModuleId(info.require, templateModuleId, onTemplateLoad); |
892 | }}, | 894 | }}, |
893 | /** | 895 | /** |
894 | Callback for the <code>_canDrawBitField</code>.<br> | 896 | Callback for the <code>_canDrawGate</code>.<br> |
895 | Propagates to the parent and adds the component to the draw list. | 897 | Propagates to the parent and adds the component to the draw list. |
896 | @function | 898 | @function |
897 | @param {Property} gate | 899 | @param {Property} gate |
898 | @see _canDrawBitField | 900 | @see _canDrawGate |
899 | */ | 901 | */ |
900 | gateDidBecomeTrue: { | 902 | gateDidBecomeTrue: { |
901 | value: function(gate) { | 903 | value: function(gate) { |
@@ -1047,6 +1049,27 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon | |||
1047 | enumerable: false, | 1049 | enumerable: false, |
1048 | value: null | 1050 | value: null |
1049 | }, | 1051 | }, |
1052 | |||
1053 | /** | ||
1054 | * Called to add event listeners on demand | ||
1055 | * @type function | ||
1056 | * @private | ||
1057 | */ | ||
1058 | _prepareForActivationEvents: { | ||
1059 | value: function() { | ||
1060 | var i = this.composerList.length, composer; | ||
1061 | for (i = 0; i < this.composerList.length; i++) { | ||
1062 | composer = this.composerList[i]; | ||
1063 | if (composer.lazyLoad) { | ||
1064 | composer._load(); | ||
1065 | } | ||
1066 | } | ||
1067 | if (typeof this.prepareForActivationEvents === "function") { | ||
1068 | this.prepareForActivationEvents(); | ||
1069 | } | ||
1070 | } | ||
1071 | }, | ||
1072 | |||
1050 | /** | 1073 | /** |
1051 | Description TODO | 1074 | Description TODO |
1052 | @private | 1075 | @private |
@@ -1297,7 +1320,11 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon | |||
1297 | this.composerList.push(composer); | 1320 | this.composerList.push(composer); |
1298 | 1321 | ||
1299 | if (!this._firstDraw) { // prepareForDraw has already happened so do the loading here | 1322 | if (!this._firstDraw) { // prepareForDraw has already happened so do the loading here |
1300 | composer._load(); | 1323 | if (!composer.lazyLoad) { |
1324 | composer._load(); | ||
1325 | } else if (this._preparedForActivationEvents) { // even though it's lazyLoad prepareForActivationEvents has already happened | ||
1326 | composer._load(); | ||
1327 | } | ||
1301 | } | 1328 | } |
1302 | } | 1329 | } |
1303 | }, | 1330 | }, |
@@ -1671,7 +1698,7 @@ var rootComponent = Montage.create(Component, /** @lends module:montage/ui/compo | |||
1671 | */ | 1698 | */ |
1672 | addToDrawCycle: { | 1699 | addToDrawCycle: { |
1673 | value: function(component) { | 1700 | value: function(component) { |
1674 | var needsDrawListIndex = this._readyToDrawListIndex, length; | 1701 | var needsDrawListIndex = this._readyToDrawListIndex, length, composer; |
1675 | 1702 | ||
1676 | if (needsDrawListIndex.hasOwnProperty(component.uuid)) { | 1703 | if (needsDrawListIndex.hasOwnProperty(component.uuid)) { |
1677 | // Requesting a draw of a component that has already been drawn in the current cycle | 1704 | // 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 | |||
1694 | component.prepareForDraw(); | 1721 | component.prepareForDraw(); |
1695 | } | 1722 | } |
1696 | 1723 | ||
1697 | // Load any composers that have been added | 1724 | // Load any non lazyLoad composers that have been added |
1698 | length = component.composerList.length; | 1725 | length = component.composerList.length; |
1699 | for (i = 0; i < length; i++) { | 1726 | for (i = 0; i < length; i++) { |
1700 | component.composerList[i]._load(); | 1727 | composer = component.composerList[i]; |
1728 | if (!composer.lazyLoad) { | ||
1729 | composer._load(); | ||
1730 | } | ||
1701 | } | 1731 | } |
1702 | 1732 | ||
1703 | // Will we expose a different property, firstDraw, for components to check | 1733 | // 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 | |||
40 | } | 40 | } |
41 | }, | 41 | }, |
42 | 42 | ||
43 | |||
44 | /** | ||
45 | * This property controls when a composer's load method is called. If `false` | ||
46 | * the composer's load method is called immediately as part of the next draw | ||
47 | * cycle after addComposer has been called on its associated component. If | ||
48 | * `true` loading of the composer is delayed until its associated component | ||
49 | * has prepareForActivationEvents called. | ||
50 | * @property | ||
51 | * @default false | ||
52 | */ | ||
53 | lazyLoad: { | ||
54 | value: false | ||
55 | }, | ||
56 | |||
43 | _needsFrame: { | 57 | _needsFrame: { |
44 | value: false | 58 | value: false |
45 | }, | 59 | }, |
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 | |||
208 | } | 208 | } |
209 | } | 209 | } |
210 | 210 | ||
211 | swipeEvent = document.createEvent("CustomEvent"); | 211 | if (dX != 0 || dY != 0) { |
212 | swipeEvent.initCustomEvent("swipemove", true, false, null); | 212 | swipeEvent = document.createEvent("CustomEvent"); |
213 | swipeEvent.direction = direction; | 213 | swipeEvent.initCustomEvent("swipemove", true, false, null); |
214 | swipeEvent.angle = this._startSwipeAngle; | 214 | swipeEvent.direction = direction; |
215 | swipeEvent.velocity = this._findVelocity((event.timeStamp - this._startTimestamp)); | 215 | swipeEvent.angle = this._startSwipeAngle; |
216 | swipeEvent.startX = this._startX; | 216 | swipeEvent.velocity = this._findVelocity((event.timeStamp - this._startTimestamp)); |
217 | swipeEvent.startY = this._startY; | 217 | swipeEvent.startX = this._startX; |
218 | swipeEvent.dX = this._deltaX; | 218 | swipeEvent.startY = this._startY; |
219 | swipeEvent.dY = this._deltaY; | 219 | swipeEvent.dX = this._deltaX; |
220 | 220 | swipeEvent.dY = this._deltaY; | |
221 | this.dispatchEvent(swipeEvent); | 221 | |
222 | this.dispatchEvent(swipeEvent); | ||
223 | } | ||
222 | } | 224 | } |
223 | }, | 225 | }, |
224 | 226 | ||
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 | |||
247 | 247 | ||
248 | // Introduce to the componentTree if content appended was a component | 248 | // Introduce to the componentTree if content appended was a component |
249 | if (this._contentToAppend && (typeof this._contentToAppend.element !== "undefined")) { | 249 | if (this._contentToAppend && (typeof this._contentToAppend.element !== "undefined")) { |
250 | this.childComponents = [this._contentToAppend]; | 250 | this._contentToAppend.attachToParentComponent(); |
251 | // HACK: gets around the issue of the component never being part of the draw loop again because of the idempotence of the needsDraw = true. | ||
252 | this._contentToAppend.needsDraw = false; | ||
253 | this._contentToAppend.needsDraw = true; | ||
251 | } | 254 | } |
252 | } | 255 | } |
253 | 256 | ||