| OLD | NEW |
| 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 | 5 |
| 6 /** | 6 /** |
| 7 * @constructor | 7 * @constructor |
| 8 * @extends {WebInspector.SDKModel} | 8 * @extends {WebInspector.SDKModel} |
| 9 * @param {!WebInspector.Target} target | 9 * @param {!WebInspector.Target} target |
| 10 */ | 10 */ |
| 11 WebInspector.AnimationModel = function(target) | 11 WebInspector.AnimationModel = function(target) |
| 12 { | 12 { |
| 13 WebInspector.SDKModel.call(this, WebInspector.AnimationModel, target); | 13 WebInspector.SDKModel.call(this, WebInspector.AnimationModel, target); |
| 14 this._agent = target.animationAgent(); | 14 this._agent = target.animationAgent(); |
| 15 target.registerAnimationDispatcher(new WebInspector.AnimationDispatcher(this
)); | 15 target.registerAnimationDispatcher(new WebInspector.AnimationDispatcher(this
)); |
| 16 /** @type {!Map.<string, !WebInspector.AnimationModel.Animation>} */ | 16 /** @type {!Map.<string, !WebInspector.AnimationModel.Animation>} */ |
| 17 this._animationsById = new Map(); | 17 this._animationsById = new Map(); |
| 18 /** @type {!Map.<string, !WebInspector.AnimationModel.AnimationGroup>} */ | 18 /** @type {!Map.<string, !WebInspector.AnimationModel.AnimationGroup>} */ |
| 19 this._animationGroups = new Map(); | 19 this._animationGroups = new Map(); |
| 20 /** @type {!Array.<string>} */ | 20 /** @type {!Array.<string>} */ |
| 21 this._pendingAnimations = []; | 21 this._pendingAnimations = []; |
| 22 } | 22 } |
| 23 | 23 |
| 24 WebInspector.AnimationModel.Events = { | 24 WebInspector.AnimationModel.Events = { |
| 25 AnimationCreated: "AnimationCreated", | 25 AnimationGroupStarted: "AnimationGroupStarted", |
| 26 AnimationCanceled: "AnimationCanceled" | 26 AnimationCanceled: "AnimationCanceled" |
| 27 } | 27 } |
| 28 | 28 |
| 29 WebInspector.AnimationModel.prototype = { | 29 WebInspector.AnimationModel.prototype = { |
| 30 /** | 30 /** |
| 31 * @param {string} id | 31 * @param {string} id |
| 32 */ | 32 */ |
| 33 animationCreated: function(id) | 33 animationCreated: function(id) |
| 34 { | 34 { |
| 35 this._pendingAnimations.push(id); | 35 this._pendingAnimations.push(id); |
| 36 }, | 36 }, |
| 37 | 37 |
| 38 /** | 38 /** |
| 39 * @param {!AnimationAgent.Animation} payload | 39 * @param {!AnimationAgent.Animation} payload |
| 40 */ | 40 */ |
| 41 animationStarted: function(payload) | 41 animationStarted: function(payload) |
| 42 { | 42 { |
| 43 var animation = WebInspector.AnimationModel.Animation.parsePayload(this.
target(), payload); | 43 var animation = WebInspector.AnimationModel.Animation.parsePayload(this.
target(), payload); |
| 44 this._animationsById.set(animation.id(), animation); | 44 this._animationsById.set(animation.id(), animation); |
| 45 | 45 |
| 46 for (var id of this._pendingAnimations) { | 46 for (var id of this._pendingAnimations) { |
| 47 if (!this._animationsById.get(id)) | 47 if (!this._animationsById.get(id)) |
| 48 return; | 48 return; |
| 49 } | 49 } |
| 50 | 50 |
| 51 while (this._pendingAnimations.length) { | 51 while (this._pendingAnimations.length) { |
| 52 var group = this._createGroupFromPendingAnimations(); | 52 var group = this._createGroupFromPendingAnimations(); |
| 53 this._animationGroups.set(group.id(), group); | 53 this._animationGroups.set(group.id(), group); |
| 54 // TODO(samli): Dispatch single group event. | 54 this.dispatchEventToListeners(WebInspector.AnimationModel.Events.Ani
mationGroupStarted, group); |
| 55 for (var anim of group.animations()) | |
| 56 this.dispatchEventToListeners(WebInspector.AnimationModel.Events
.AnimationCreated, { "player": anim, "resetTimeline": anim.id() === group.id() }
); | |
| 57 } | 55 } |
| 58 }, | 56 }, |
| 59 | 57 |
| 60 /** | 58 /** |
| 61 * @return {!WebInspector.AnimationModel.AnimationGroup} | 59 * @return {!WebInspector.AnimationModel.AnimationGroup} |
| 62 */ | 60 */ |
| 63 _createGroupFromPendingAnimations: function() | 61 _createGroupFromPendingAnimations: function() |
| 64 { | 62 { |
| 65 console.assert(this._pendingAnimations.length); | 63 console.assert(this._pendingAnimations.length); |
| 66 var groupedAnimations = [this._animationsById.get(this._pendingAnimation
s.shift())]; | 64 var groupedAnimations = [this._animationsById.get(this._pendingAnimation
s.shift())]; |
| (...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 }, | 510 }, |
| 513 | 511 |
| 514 /** | 512 /** |
| 515 * @return {!Array.<!WebInspector.AnimationModel.Animation>} | 513 * @return {!Array.<!WebInspector.AnimationModel.Animation>} |
| 516 */ | 514 */ |
| 517 animations: function() | 515 animations: function() |
| 518 { | 516 { |
| 519 return this._animations; | 517 return this._animations; |
| 520 }, | 518 }, |
| 521 | 519 |
| 520 /** |
| 521 * @return {number} |
| 522 */ |
| 523 startTime: function() |
| 524 { |
| 525 return this._animations[0].startTime(); |
| 526 }, |
| 527 |
| 522 __proto__: WebInspector.SDKObject.prototype | 528 __proto__: WebInspector.SDKObject.prototype |
| 523 } | 529 } |
| 524 | 530 |
| 525 | 531 |
| 526 /** | 532 /** |
| 527 * @constructor | 533 * @constructor |
| 528 * @implements {AnimationAgent.Dispatcher} | 534 * @implements {AnimationAgent.Dispatcher} |
| 529 */ | 535 */ |
| 530 WebInspector.AnimationDispatcher = function(animationModel) | 536 WebInspector.AnimationDispatcher = function(animationModel) |
| 531 { | 537 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 553 | 559 |
| 554 /** | 560 /** |
| 555 * @override | 561 * @override |
| 556 * @param {string} id | 562 * @param {string} id |
| 557 */ | 563 */ |
| 558 animationCanceled: function(id) | 564 animationCanceled: function(id) |
| 559 { | 565 { |
| 560 this._animationModel.animationCanceled(id); | 566 this._animationModel.animationCanceled(id); |
| 561 } | 567 } |
| 562 } | 568 } |
| OLD | NEW |