Controller.js 2.2 KB

12345678
  1. /*
  2. Copyright (c) 2004-2009, 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. 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);}