144 lines
3.6 KiB
JavaScript
144 lines
3.6 KiB
JavaScript
|
//>>built
|
||
|
define("dojox/form/_SelectStackMixin",["dojo/_base/lang","dojo/_base/array","dijit/_base/manager","dojo/_base/connect","dojo/_base/declare"],function(_1,_2,_3,_4,_5){
|
||
|
return _5("dojox.form._SelectStackMixin",null,{stackId:"",stackPrefix:"",_paneIdFromOption:function(_6){
|
||
|
return (this.stackPrefix||"")+_6;
|
||
|
},_optionValFromPane:function(id){
|
||
|
var sp=this.stackPrefix;
|
||
|
if(sp&&id.indexOf(sp)===0){
|
||
|
return id.substring(sp.length);
|
||
|
}
|
||
|
return id;
|
||
|
},_togglePane:function(_7,_8){
|
||
|
if(_7._shown!=undefined&&_7._shown==_8){
|
||
|
return;
|
||
|
}
|
||
|
var _9=_2.filter(_7.getDescendants(),"return item.name;");
|
||
|
if(!_8){
|
||
|
_a={};
|
||
|
_2.forEach(_9,function(w){
|
||
|
_a[w.id]=w.disabled;
|
||
|
w.set("disabled",true);
|
||
|
});
|
||
|
_7._savedStates=_a;
|
||
|
}else{
|
||
|
var _a=_7._savedStates||{};
|
||
|
_2.forEach(_9,function(w){
|
||
|
var _b=_a[w.id];
|
||
|
if(_b==undefined){
|
||
|
_b=false;
|
||
|
}
|
||
|
w.set("disabled",_b);
|
||
|
});
|
||
|
delete _7._savedStates;
|
||
|
}
|
||
|
_7._shown=_8;
|
||
|
},_connectTitle:function(_c,_d){
|
||
|
var fx=_1.hitch(this,function(_e){
|
||
|
this.updateOption({value:_d,label:_e});
|
||
|
});
|
||
|
if(_c._setTitleAttr){
|
||
|
this.connect(_c,"_setTitleAttr",fx);
|
||
|
}else{
|
||
|
this.connect(_c,"attr",function(_f,val){
|
||
|
if(_f=="title"&&arguments.length>1){
|
||
|
fx(val);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
},onAddChild:function(_10,_11){
|
||
|
if(!this._panes[_10.id]){
|
||
|
this._panes[_10.id]=_10;
|
||
|
var v=this._optionValFromPane(_10.id);
|
||
|
this.addOption({value:v,label:_10.title});
|
||
|
this._connectTitle(_10,v);
|
||
|
}
|
||
|
if(!_10.onShow||!_10.onHide||_10._shown==undefined){
|
||
|
_10.onShow=_1.hitch(this,"_togglePane",_10,true);
|
||
|
_10.onHide=_1.hitch(this,"_togglePane",_10,false);
|
||
|
_10.onHide();
|
||
|
}
|
||
|
},_setValueAttr:function(v){
|
||
|
if("_savedValue" in this){
|
||
|
return;
|
||
|
}
|
||
|
this.inherited(arguments);
|
||
|
},attr:function(_12,_13){
|
||
|
if(_12=="value"&&arguments.length==2&&"_savedValue" in this){
|
||
|
this._savedValue=_13;
|
||
|
}
|
||
|
return this.inherited(arguments);
|
||
|
},onRemoveChild:function(_14){
|
||
|
if(this._panes[_14.id]){
|
||
|
delete this._panes[_14.id];
|
||
|
this.removeOption(this._optionValFromPane(_14.id));
|
||
|
}
|
||
|
},onSelectChild:function(_15){
|
||
|
this._setValueAttr(this._optionValFromPane(_15.id));
|
||
|
},onStartup:function(_16){
|
||
|
var _17=_16.selected;
|
||
|
this.addOption(_2.filter(_2.map(_16.children,function(c){
|
||
|
var v=this._optionValFromPane(c.id);
|
||
|
this._connectTitle(c,v);
|
||
|
var _18=null;
|
||
|
if(!this._panes[c.id]){
|
||
|
this._panes[c.id]=c;
|
||
|
_18={value:v,label:c.title};
|
||
|
}
|
||
|
if(!c.onShow||!c.onHide||c._shown==undefined){
|
||
|
c.onShow=_1.hitch(this,"_togglePane",c,true);
|
||
|
c.onHide=_1.hitch(this,"_togglePane",c,false);
|
||
|
c.onHide();
|
||
|
}
|
||
|
if("_savedValue" in this&&v===this._savedValue){
|
||
|
_17=c;
|
||
|
}
|
||
|
return _18;
|
||
|
},this),function(i){
|
||
|
return i;
|
||
|
}));
|
||
|
var _19=this;
|
||
|
var fx=function(){
|
||
|
delete _19._savedValue;
|
||
|
_19.onSelectChild(_17);
|
||
|
if(!_17._shown){
|
||
|
_19._togglePane(_17,true);
|
||
|
}
|
||
|
};
|
||
|
if(_17!==_16.selected){
|
||
|
var _1a=_3.byId(this.stackId);
|
||
|
var c=this.connect(_1a,"_showChild",function(sel){
|
||
|
this.disconnect(c);
|
||
|
fx();
|
||
|
});
|
||
|
}else{
|
||
|
fx();
|
||
|
}
|
||
|
},postMixInProperties:function(){
|
||
|
this._savedValue=this.value;
|
||
|
this.inherited(arguments);
|
||
|
this.connect(this,"onChange","_handleSelfOnChange");
|
||
|
},postCreate:function(){
|
||
|
this.inherited(arguments);
|
||
|
this._panes={};
|
||
|
this._subscriptions=[_4.subscribe(this.stackId+"-startup",this,"onStartup"),_4.subscribe(this.stackId+"-addChild",this,"onAddChild"),_4.subscribe(this.stackId+"-removeChild",this,"onRemoveChild"),_4.subscribe(this.stackId+"-selectChild",this,"onSelectChild")];
|
||
|
var _1b=_3.byId(this.stackId);
|
||
|
if(_1b&&_1b._started){
|
||
|
this.onStartup({children:_1b.getChildren(),selected:_1b.selectedChildWidget});
|
||
|
}
|
||
|
},destroy:function(){
|
||
|
_2.forEach(this._subscriptions,_4.unsubscribe);
|
||
|
delete this._panes;
|
||
|
this.inherited("destroy",arguments);
|
||
|
},_handleSelfOnChange:function(val){
|
||
|
var _1c=this._panes[this._paneIdFromOption(val)];
|
||
|
if(_1c){
|
||
|
var s=_3.byId(this.stackId);
|
||
|
if(_1c==s.selectedChildWidget){
|
||
|
s._transition(_1c);
|
||
|
}else{
|
||
|
s.selectChild(_1c);
|
||
|
}
|
||
|
}
|
||
|
}});
|
||
|
});
|