/* <copyright>
This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
</copyright> */
var Montage = require("montage/core/core").Montage;
var Component = require("montage/ui/component").Component;
var nj = require("js/lib/NJUtils").NJUtils;
var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
user_layers: {
value: null,
serializable: true
},
track_container: {
value: null,
serializable: true
},
timeline_leftpane: {
value: null,
serializable: true
},
layer_tracks: {
value: null,
serializable: true
},
master_track: {
value: null,
serializable: true
},
time_markers: {
value: null,
serializable: true
},
playhead: {
value: null,
serializable: true
},
playheadmarker: {
value: null,
serializable: true
},
timetext: {
value: null,
serializable: true
},
timebar: {
value: null,
serializable: true
},
container_tracks: {
value: null,
serializable: true
},
end_hottext: {
value: null,
serializable: true
},
container_layers: {
value: null,
serializable: true
},
timeline_disabler: {
value: null,
serializable: true
},
checkable_relative: {
value: null,
serializable: true
},
checkable_absolute: {
value: null,
serializable: true
},
checkable_animated: {
value: null,
serializable: true
},
tl_configbutton: {
value: null,
serializable: true
},
/* === BEGIN: Models === */
_currentDocument: {
value : null
},
currentDocument : {
get : function() {
return this._currentDocument;
},
set : function(value) {
// If it's the same document, do nothing.
if (value === this._currentDocument) {
return;
}
if(!this._currentDocument && value.currentView === "design") {
this.enablePanel(true);
}
this._currentDocument = value;
if(!value) {
this._boolCacheArrays = false;
this.clearTimelinePanel();
this._boolCacheArrays = true;
this.enablePanel(false);
} else if(this._currentDocument.currentView === "design") {
this._boolCacheArrays = false;
this.clearTimelinePanel();
this._boolCacheArrays = true;
// Rebind the document events for the new document context
this._bindDocumentEvents();
// Initialize the timeline for the document.
this.initTimelineForDocument();
}
}
},
handleChange: {
value: function() {
if(this.currentDocument && this.currentDocument.model.getProperty("domContainer")) {
this.currentSelectedContainer = this.currentDocument.model.getProperty("domContainer");
}
}
},
_currentSelectedContainer: {
value: null
},
currentSelectedContainer: {
get: function() {
return this._currentSelectedContainer;
},
set: function(newVal) {
if(this._currentSelectedContainer !== newVal) {
this._currentSelectedContainer = newVal;
if (this._ignoreNextContainerChange === true) {
this._ignoreNextContainerChange = false;
return;
}
this.application.ninja.currentDocument.setLevel = true;
if(this._currentDocument.currentView === "design") {
this._boolCacheArrays = false;
this.clearTimelinePanel();
this._boolCacheArrays = true;
// Rebind the document events for the new document context
this._bindDocumentEvents();
// Initialize the timeline for the document.
this.initTimelineForDocument();
}
|