root / trunk / web / dojo / dojox / widget / rotator / Controller.js
History | View | Annotate | Download (2.33 KB)
1 |
/*
|
---|---|
2 |
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
3 |
Available via Academic Free License >= 2.1 OR the modified BSD license.
|
4 |
see: http://dojotoolkit.org/license for details
|
5 |
*/
|
6 |
|
7 |
|
8 |
if(!dojo._hasResource["dojox.widget.rotator.Controller"]){ |
9 |
dojo._hasResource["dojox.widget.rotator.Controller"]=true; |
10 |
dojo.provide("dojox.widget.rotator.Controller");
|
11 |
(function(d){
|
12 |
var _1="dojoxRotator",_2=_1+"Play",_3=_1+"Pause",_4=_1+"Number",_5=_1+"Tab",_6=_1+"Selected"; |
13 |
d.declare("dojox.widget.rotator.Controller",null,{rotator:null,commands:"prev,play/pause,info,next",constructor:function(_7,_8){ |
14 |
d.mixin(this,_7);
|
15 |
var r=this.rotator; |
16 |
if(r){
|
17 |
while(_8.firstChild){
|
18 |
_8.removeChild(_8.firstChild); |
19 |
} |
20 |
var ul=this._domNode=d.create("ul",null,_8),_9=" "+_1+"Icon",cb=function(_a,_b,_c){ |
21 |
d.create("li",{className:_b,innerHTML:"<a href=\"#\"><span>"+_a+"</span></a>",onclick:function(e){ |
22 |
d.stopEvent(e); |
23 |
if(r){
|
24 |
r.control.apply(r,_c); |
25 |
} |
26 |
}},ul); |
27 |
}; |
28 |
d.forEach(this.commands.split(","),function(b,i){ |
29 |
switch(b){
|
30 |
case "prev": |
31 |
cb("Prev",_1+"Prev"+_9,["prev"]); |
32 |
break;
|
33 |
case "play/pause": |
34 |
cb("Play",_2+_9,["play"]); |
35 |
cb("Pause",_3+_9,["pause"]); |
36 |
break;
|
37 |
case "info": |
38 |
this._info=d.create("li",{className:_1+"Info",innerHTML:this._buildInfo(r)},ul); |
39 |
break;
|
40 |
case "next": |
41 |
cb("Next",_1+"Next"+_9,["next"]); |
42 |
break;
|
43 |
case "#": |
44 |
case "titles": |
45 |
for(var j=0;j<r.panes.length;j++){ |
46 |
cb(b=="#"?j+1:r.panes[j].title||"Tab "+(j+1),(b=="#"?_4:_5)+" "+(j==r.idx?_6:"")+" "+_1+"Pane"+j,["go",j]); |
47 |
} |
48 |
break;
|
49 |
} |
50 |
},this);
|
51 |
d.query("li:first-child",ul).addClass(_1+"First"); |
52 |
d.query("li:last-child",ul).addClass(_1+"Last"); |
53 |
this._togglePlay();
|
54 |
this._con=d.connect(r,"onUpdate",this,"_onUpdate"); |
55 |
} |
56 |
},destroy:function(){ |
57 |
d.disconnect(this._con);
|
58 |
d.destroy(this._domNode);
|
59 |
},_togglePlay:function(_d){ |
60 |
var p=this.rotator.playing; |
61 |
d.query("."+_2,this._domNode).style("display",p?"none":""); |
62 |
d.query("."+_3,this._domNode).style("display",p?"":"none"); |
63 |
},_buildInfo:function(r){ |
64 |
return "<span>"+(r.idx+1)+" / "+r.panes.length+"</span>"; |
65 |
},_onUpdate:function(_e){ |
66 |
var r=this.rotator; |
67 |
switch(_e){
|
68 |
case "play": |
69 |
case "pause": |
70 |
this._togglePlay();
|
71 |
break;
|
72 |
case "onAfterTransition": |
73 |
if(this._info){ |
74 |
this._info.innerHTML=this._buildInfo(r); |
75 |
} |
76 |
var s=function(n){ |
77 |
if(r.idx<n.length){
|
78 |
d.addClass(n[r.idx],_6); |
79 |
} |
80 |
}; |
81 |
s(d.query("."+_4,this._domNode).removeClass(_6)); |
82 |
s(d.query("."+_5,this._domNode).removeClass(_6)); |
83 |
break;
|
84 |
} |
85 |
}}); |
86 |
})(dojo); |
87 |
} |