diff options
Diffstat (limited to 'js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js')
-rw-r--r-- | js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js | 560 |
1 files changed, 263 insertions, 297 deletions
diff --git a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js index 59306705..087bf3cd 100644 --- a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js +++ b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js | |||
@@ -44,14 +44,12 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
44 | this._layerRepetition = newVal; | 44 | this._layerRepetition = newVal; |
45 | } | 45 | } |
46 | }, | 46 | }, |
47 | |||
47 | _cacheArrays : { | 48 | _cacheArrays : { |
48 | value: function() { | 49 | value: function() { |
49 | // Cache this.arrLayers and this.arrTracks. | ||
50 | this.log('cacheArrays ' + this._boolCacheArrays) | ||
51 | if (this._boolCacheArrays) { | 50 | if (this._boolCacheArrays) { |
52 | this.log('caching arrays for ', this.application.ninja.currentDocument.name); | ||
53 | this.application.ninja.currentDocument.tlArrLayers = this.arrLayers; | 51 | this.application.ninja.currentDocument.tlArrLayers = this.arrLayers; |
54 | this.application.ninja.currentDocument.tlArrTracks = this.arrTracks; | 52 | |
55 | } | 53 | } |
56 | } | 54 | } |
57 | }, | 55 | }, |
@@ -72,15 +70,44 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
72 | set:function (newVal) { | 70 | set:function (newVal) { |
73 | if (newVal !== this._currentLayerNumber) { | 71 | if (newVal !== this._currentLayerNumber) { |
74 | this._currentLayerNumber = newVal; | 72 | this._currentLayerNumber = newVal; |
73 | this._setCurrentLayerNumber(); | ||
75 | } | 74 | } |
76 | } | 75 | } |
77 | }, | 76 | }, |
78 | 77 | ||
79 | currentLayerSelected:{ | 78 | _setCurrentLayerNumber:{ |
80 | value: null | 79 | value:function(){ |
80 | if (this._boolCacheArrays) { | ||
81 | this.application.ninja.currentDocument.tllayerNumber = this.currentLayerNumber; | ||
82 | } | ||
83 | } | ||
84 | }, | ||
85 | |||
86 | _hashKey:{ | ||
87 | value:0 | ||
88 | }, | ||
89 | |||
90 | hashKey:{ | ||
91 | get:function () { | ||
92 | return this._hashKey; | ||
93 | }, | ||
94 | set:function (newVal) { | ||
95 | if (newVal !== this._hashKey) { | ||
96 | this._hashKey = newVal; | ||
97 | this._setHashKey(); | ||
98 | } | ||
99 | } | ||
81 | }, | 100 | }, |
82 | 101 | ||
83 | currentTrackSelected:{ | 102 | _setHashKey:{ |
103 | value:function(){ | ||
104 | if (this._boolCacheArrays) { | ||
105 | this.application.ninja.currentDocument.hashKey = this.hashKey; | ||
106 | } | ||
107 | } | ||
108 | }, | ||
109 | |||
110 | currentLayerSelected:{ | ||
84 | value: null | 111 | value: null |
85 | }, | 112 | }, |
86 | 113 | ||
@@ -104,22 +131,6 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
104 | } | 131 | } |
105 | }, | 132 | }, |
106 | 133 | ||
107 | _arrTracks:{ | ||
108 | serializable:true, | ||
109 | value:[] | ||
110 | }, | ||
111 | |||
112 | arrTracks:{ | ||
113 | serializable:true, | ||
114 | get:function () { | ||
115 | return this._arrTracks; | ||
116 | }, | ||
117 | set:function (newVal) { | ||
118 | this._arrTracks = newVal; | ||
119 | this._cacheArrays(); | ||
120 | } | ||
121 | }, | ||
122 | |||
123 | _trackRepetition:{ | 134 | _trackRepetition:{ |
124 | serializable:true, | 135 | serializable:true, |
125 | value:null | 136 | value:null |
@@ -163,6 +174,22 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
163 | } | 174 | } |
164 | }, | 175 | }, |
165 | 176 | ||
177 | _breadCrumbContainer:{ | ||
178 | value:null | ||
179 | }, | ||
180 | |||
181 | breadCrumbContainer: { | ||
182 | set: function(value) { | ||
183 | if(this._breadCrumbContainer !== value) { | ||
184 | this._breadCrumbContainer = value; | ||
185 | this.LayerBinding(this.application.ninja.currentSelectedContainer); | ||
186 | } | ||
187 | }, | ||
188 | get: function() { | ||
189 | return this._breadCrumbContainer; | ||
190 | } | ||
191 | }, | ||
192 | |||
166 | _isLayer:{ | 193 | _isLayer:{ |
167 | value:false | 194 | value:false |
168 | }, | 195 | }, |
@@ -181,22 +208,21 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
181 | value:false, | 208 | value:false, |
182 | writable:true | 209 | writable:true |
183 | }, | 210 | }, |
211 | |||
184 | timeMarkerHolder:{ | 212 | timeMarkerHolder:{ |
185 | value: null | 213 | value: null |
186 | }, | 214 | }, |
187 | /* === END: Models === */ | 215 | /* === END: Models === */ |
188 | |||
189 | /* === BEGIN: Draw cycle === */ | 216 | /* === BEGIN: Draw cycle === */ |
190 | prepareForDraw:{ | 217 | prepareForDraw:{ |
191 | value:function () { | 218 | value:function () { |
192 | this.initTimeline(); | 219 | this.initTimeline(); |
193 | this.eventManager.addEventListener("onOpenDocument", this, false); | 220 | this.eventManager.addEventListener("onOpenDocument", this, false); |
194 | this.eventManager.addEventListener("closeDocument", this, false); | 221 | this.eventManager.addEventListener("closeDocument", this, false); |
195 | this.eventManager.addEventListener("switchDocument", this, false); | 222 | this.eventManager.addEventListener("switchDocument", this, false); |
196 | } | 223 | } |
197 | }, | 224 | }, |
198 | 225 | ||
199 | |||
200 | willDraw:{ | 226 | willDraw:{ |
201 | value:function () { | 227 | value:function () { |
202 | if (this._isLayer) { | 228 | if (this._isLayer) { |
@@ -206,19 +232,15 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
206 | } | 232 | } |
207 | }, | 233 | }, |
208 | /* === END: Draw cycle === */ | 234 | /* === END: Draw cycle === */ |
209 | |||
210 | /* === BEGIN: Controllers === */ | 235 | /* === BEGIN: Controllers === */ |
211 | |||
212 | // Bind all document-specific events (pass in true to unbind) | 236 | // Bind all document-specific events (pass in true to unbind) |
213 | _bindDocumentEvents : { | 237 | _bindDocumentEvents : { |
214 | value: function(boolUnbind) { | 238 | value: function(boolUnbind) { |
215 | var arrEvents = ["deleteLayerClick", | 239 | var arrEvents = ["deleteLayerClick", |
216 | "newLayer", | 240 | "newLayer", |
217 | "deleteLayer", | 241 | "deleteLayer", |
218 | "layerBinding", | ||
219 | "elementAdded", | 242 | "elementAdded", |
220 | "elementDeleted", | 243 | "elementDeleted", |
221 | "deleteSelection", | ||
222 | "selectionChange"], | 244 | "selectionChange"], |
223 | i, | 245 | i, |
224 | arrEventsLength = arrEvents.length; | 246 | arrEventsLength = arrEvents.length; |
@@ -231,6 +253,11 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
231 | for (i = 0; i < arrEventsLength; i++) { | 253 | for (i = 0; i < arrEventsLength; i++) { |
232 | this.eventManager.addEventListener(arrEvents[i], this, false); | 254 | this.eventManager.addEventListener(arrEvents[i], this, false); |
233 | } | 255 | } |
256 | Object.defineBinding(this, "breadCrumbContainer", { | ||
257 | boundObject: this.application.ninja, | ||
258 | boundObjectPropertyPath:"currentSelectedContainer", | ||
259 | oneway: true | ||
260 | }); | ||
234 | } | 261 | } |
235 | } | 262 | } |
236 | }, | 263 | }, |
@@ -257,9 +284,7 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
257 | value:function () { | 284 | value:function () { |
258 | var myIndex; | 285 | var myIndex; |
259 | this.drawTimeMarkers(); | 286 | this.drawTimeMarkers(); |
260 | this._hashKey = "123"; | 287 | |
261 | |||
262 | |||
263 | // Document switching | 288 | // Document switching |
264 | // Check to see if we have saved timeline information in the currentDocument. | 289 | // Check to see if we have saved timeline information in the currentDocument. |
265 | if (typeof(this.application.ninja.currentDocument.isTimelineInitialized) === "undefined") { |