diff options
Diffstat (limited to 'js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js')
-rw-r--r-- | js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js | 1114 |
1 files changed, 902 insertions, 212 deletions
diff --git a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js index 9bf51e60..a5cde00f 100644 --- a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js +++ b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js | |||
@@ -1,295 +1,985 @@ | |||
1 | /* <copyright> | 1 | /* <copyright> |
2 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | 2 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> |
3 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> | 3 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> |
4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | 4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. |
5 | </copyright> */ | 5 | </copyright> */ |
6 | 6 | ||
7 | var Montage = require("montage/core/core").Montage; | 7 | var Montage = require("montage/core/core").Montage; |
8 | var Component = require("montage/ui/component").Component; | 8 | var Component = require("montage/ui/component").Component; |
9 | var TimelineController = require("js/panels/Timeline/TimelineController").TimelineController; | 9 | var Layer = require("js/panels/Timeline/Layer.reel").Layer; |
10 | var TimelineTrack = require("js/panels/Timeline/TimelineTrack.reel").TimelineTrack; | ||
11 | var nj = require("js/lib/NJUtils").NJUtils; | ||
12 | var ElementMediator = require("js/mediators/element-mediator").ElementMediator; | ||
10 | 13 | ||
11 | var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | 14 | var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { |
12 | 15 | ||
13 | tmpImg: { value: null}, | 16 | hasTemplate:{ |
17 | value:true | ||
18 | }, | ||
19 | |||
20 | /* === BEGIN: Models === */ | ||
21 | _arrLayers:{ | ||
22 | value:[] | ||
23 | }, | ||
14 | 24 | ||
15 | templateDidLoad: { | 25 | arrLayers:{ |
16 | value: function() { | 26 | get:function () { |
17 | /* | 27 | return this._arrLayers; |
18 | this.tmpImg = document.createElement("img"); | 28 | }, |
19 | this.tmpImg.width = 1879; | 29 | set:function (newVal) { |
20 | this.tmpImg.height = 440; | 30 | this._arrLayers = newVal; |
21 | this.tmpImg.src = "images/timeline/timeline.png"; | ||
22 | */ | ||
23 | } | 31 | } |
24 | }, | 32 | }, |
25 | 33 | ||
26 | prepareForDraw: { | 34 | _layerRepetition:{ |
27 | value: function() { | 35 | value:null |
28 | this.element.style.background = "url('images/timeline/timeline.png')"; | 36 | }, |
29 | this.element.style.width = "100%"; | 37 | |
30 | this.element.style.height = "400px"; | 38 | layerRepetition:{ |
31 | this.element.style.backgroundPosition = "-5px -40px"; | 39 | get:function () { |
40 | return this._layerRepetition; | ||
41 | }, | ||
42 | set:function (newVal) { | ||
43 | this._layerRepetition = newVal; | ||
32 | } | 44 | } |
33 | }, | 45 | }, |
34 | 46 | ||
35 | init : { | 47 | _currentLayerNumber:{ |
36 | value : function() | 48 | value:0 |
37 | { | 49 | }, |
38 | this.buildTimelineView(); | ||
39 | 50 | ||
51 | currentLayerNumber:{ | ||
52 | get:function () { | ||
53 | return this._currentLayerNumber; | ||
54 | }, | ||
55 | set:function (newVal) { | ||
56 | if (newVal !== this._currentLayerNumber) { | ||
57 | this._currentLayerNumber = newVal; | ||
58 | } | ||
40 | } | 59 | } |
41 | }, | 60 | }, |
42 | 61 | ||
43 | breadCrumbContainer:{ | 62 | currentLayerSelected:{ |
44 | value:null, | 63 | value: null |
45 | writable:true, | ||
46 | enumerable:true | ||
47 | }, | 64 | }, |
48 | 65 | ||
49 | controlsContainer:{ | 66 | currentTrackSelected:{ |
50 | value:null, | 67 | value: null |
51 | writable:true, | ||
52 | enumerable:true | ||
53 | }, | 68 | }, |
54 | 69 | ||
55 | timelineGutter:{ | 70 | millisecondsOffset:{ |
56 | value:null, | 71 | value:1000 |
57 | writable:true, | ||
58 | enumerable:true | ||
59 | }, | 72 | }, |
60 | 73 | ||
61 | userLayerContainer:{ | 74 | _masterDuration:{ |
62 | value:null, | 75 | serializable: true, |
63 | writable:true, | 76 | value:0 |
64 | enumerable:true | ||
65 | }, | 77 | }, |
66 | 78 | ||
67 | currentLayerNumber:{ | 79 | masterDuration:{ |
68 | value:1, | 80 | serializable:true, |
69 | writable:true, | 81 | get:function(){ |
70 | enumerable:true | 82 | return this._masterDuration; |
83 | }, | ||
84 | set:function(val){ | ||
85 | this._masterDuration = val; | ||
86 | this.timebar.style.width = (this._masterDuration / 12) + "px"; | ||
87 | } | ||
71 | }, | 88 | }, |
72 | 89 | ||
73 | newLayerButton:{ | 90 | _arrTracks:{ |
74 | value:null, | 91 | serializable:true, |
75 | writable:true, | 92 | value:[] |
76 | enumerable:true | ||
77 | }, | 93 | }, |
78 | 94 | ||
79 | deleteLayerButton:{ | 95 | arrTracks:{ |
80 | value:null, | 96 | serializable:true, |
81 | writable:true, | 97 | get:function () { |
82 | enumerable:true | 98 | return this._arrTracks; |
99 | }, | ||
100 | set:function (newVal) { | ||
101 | this._arrTracks = newVal; | ||
102 | } | ||
83 | }, | 103 | }, |
84 | 104 | ||
85 | newFolderButton:{ | 105 | _trackRepetition:{ |
86 | value:null, | 106 | serializable:true, |
87 | writable:true, | 107 | value:null |
88 | enumerable:true | ||
89 | }, | 108 | }, |
90 | 109 | ||
91 | buildTimelineView : { | 110 | trackRepetition:{ |
92 | value:function(){ | 111 | serializable:true, |
93 | var timeline = document.getElementById("timelinePanel"); | 112 | get:function () { |
94 | 113 | return this._trackRepetition; | |
95 | var mainTimelineContainer = document.createElement("div"); | 114 | }, |
96 | mainTimelineContainer.style.backgroundColor = "#000000"; | 115 | set:function (newVal) { |
97 | mainTimelineContainer.style.width = "100%"; | 116 | this._trackRepetition = newVal; |
98 | mainTimelineContainer.style.height = "100%"; | 117 | } |
99 | mainTimelineContainer.style.overflow = "visible"; | 118 | }, |
100 | 119 | ||
101 | timeline.appendChild(mainTimelineContainer); | 120 | _selectedKeyframes:{ |
102 | 121 | value:[] | |
103 | this.breadCrumbContainer = document.createElement("div"); | 122 | }, |
104 | this.breadCrumbContainer.style.width = "100%"; | 123 | |
105 | this.breadCrumbContainer.style.height = "20px"; | 124 | selectedKeyframes:{ |
106 | this.breadCrumbContainer.style.backgroundColor = "#111111"; | 125 | serializable:true, |
107 | 126 | get:function () { | |
108 | var timeControllerContainer = document.createElement("div"); | 127 | return this._selectedKeyframes; |
109 | timeControllerContainer.style.width = "auto"; | 128 | }, |
110 | timeControllerContainer.style.height = "20px"; | 129 | set:function (newVal) { |
111 | timeControllerContainer.style.backgroundColor = "#000000"; | 130 | this._selectedKeyframes = newVal; |
112 | |||
113 | this.controlsContainer = document.createElement("div"); | ||
114 | this.controlsContainer.style.width = "200px"; | ||
115 | this.controlsContainer.style.height = "20px"; | ||
116 | this.controlsContainer.style.backgroundColor = "#440000"; | ||
117 | this.controlsContainer.style.float = "left"; | ||
118 | this.controlsContainer.innerText = "Timeline Controller"; | ||
119 | |||
120 | var timeContainer = document.createElement("div"); | ||
121 | timeContainer.style.width = "inherit"; | ||
122 | timeContainer.style.height = "20px"; | ||
123 | timeContainer.style.backgroundColor = "#880000"; | ||
124 | timeContainer.style.float = "left"; | ||
125 | timeContainer.innerText = "Time markers"; | ||
126 | |||
127 | timeControllerContainer.appendChild(this.controlsContainer); | ||
128 | timeControllerContainer.appendChild(timeContainer); | ||
129 | |||
130 | var masterLayerContainer = document.createElement("div"); | ||