blob: d6fda597336a36c2a77dfa3a74f507ddf4f0c053 [file] [log] [blame]
/*
Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
if(!dojo._hasResource["dojox.widget.rotator.Controller"]){
dojo._hasResource["dojox.widget.rotator.Controller"]=true;
dojo.provide("dojox.widget.rotator.Controller");
(function(d){
var _1="dojoxRotator",_2=_1+"Play",_3=_1+"Pause",_4=_1+"Number",_5=_1+"Tab",_6=_1+"Selected";
d.declare("dojox.widget.rotator.Controller",null,{rotator:null,commands:"prev,play/pause,info,next",constructor:function(_7,_8){
d.mixin(this,_7);
var r=this.rotator;
if(r){
while(_8.firstChild){
_8.removeChild(_8.firstChild);
}
var ul=this._domNode=d.create("ul",null,_8),_9=" "+_1+"Icon",cb=function(_a,_b,_c){
d.create("li",{className:_b,innerHTML:"<a href=\"#\"><span>"+_a+"</span></a>",onclick:function(e){
d.stopEvent(e);
if(r){
r.control.apply(r,_c);
}
}},ul);
};
d.forEach(this.commands.split(","),function(b,i){
switch(b){
case "prev":
cb("Prev",_1+"Prev"+_9,["prev"]);
break;
case "play/pause":
cb("Play",_2+_9,["play"]);
cb("Pause",_3+_9,["pause"]);
break;
case "info":
this._info=d.create("li",{className:_1+"Info",innerHTML:this._buildInfo(r)},ul);
break;
case "next":
cb("Next",_1+"Next"+_9,["next"]);
break;
case "#":
case "titles":
for(var j=0;j<r.panes.length;j++){
cb(b=="#"?j+1:r.panes[j].title||"Tab "+(j+1),(b=="#"?_4:_5)+" "+(j==r.idx?_6:"")+" "+_1+"Pane"+j,["go",j]);
}
break;
}
},this);
d.query("li:first-child",ul).addClass(_1+"First");
d.query("li:last-child",ul).addClass(_1+"Last");
this._togglePlay();
this._con=d.connect(r,"onUpdate",this,"_onUpdate");
}
},destroy:function(){
d.disconnect(this._con);
d.destroy(this._domNode);
},_togglePlay:function(_d){
var p=this.rotator.playing;
d.query("."+_2,this._domNode).style("display",p?"none":"");
d.query("."+_3,this._domNode).style("display",p?"":"none");
},_buildInfo:function(r){
return "<span>"+(r.idx+1)+" / "+r.panes.length+"</span>";
},_onUpdate:function(_e){
var r=this.rotator;
switch(_e){
case "play":
case "pause":
this._togglePlay();
break;
case "onAfterTransition":
if(this._info){
this._info.innerHTML=this._buildInfo(r);
}
var s=function(n){
if(r.idx<n.length){
d.addClass(n[r.idx],_6);
}
};
s(d.query("."+_4,this._domNode).removeClass(_6));
s(d.query("."+_5,this._domNode).removeClass(_6));
break;
}
}});
})(dojo);
}