1 | define([ |
---|
2 | "dojo/_base/declare", |
---|
3 | "dojo/_base/Deferred", |
---|
4 | "dojo/_base/lang", |
---|
5 | "dojo/on", |
---|
6 | "./transition" |
---|
7 | ], function(declare, Deferred, lang, on, transitDeferred){ |
---|
8 | |
---|
9 | return declare("dojox.mobile.TransitionEvent", null, { |
---|
10 | constructor: function(target, transitionOptions, triggerEvent){ |
---|
11 | this.transitionOptions=transitionOptions; |
---|
12 | this.target = target; |
---|
13 | this.triggerEvent=triggerEvent||null; |
---|
14 | }, |
---|
15 | |
---|
16 | dispatch: function(){ |
---|
17 | var opts = {bubbles:true, cancelable:true, detail: this.transitionOptions, triggerEvent: this.triggerEvent}; |
---|
18 | //console.log("Target: ", this.target, " opts: ", opts); |
---|
19 | |
---|
20 | var evt = on.emit(this.target,"startTransition", opts); |
---|
21 | //console.log('evt: ', evt); |
---|
22 | if(evt){ |
---|
23 | Deferred.when(transitDeferred, lang.hitch(this, function(transition){ |
---|
24 | Deferred.when(transition.call(this, evt), lang.hitch(this, function(results){ |
---|
25 | this.endTransition(results); |
---|
26 | })); |
---|
27 | })); |
---|
28 | } |
---|
29 | }, |
---|
30 | |
---|
31 | endTransition: function(results){ |
---|
32 | on.emit(this.target, "endTransition" , {detail: results.transitionOptions}); |
---|
33 | } |
---|
34 | }); |
---|
35 | }); |
---|