122 lines
2.7 KiB
JavaScript
122 lines
2.7 KiB
JavaScript
//>>built
|
|
define("dojox/widget/Selection",["dojo/_base/declare","dojo/_base/array","dojo/_base/lang","dojo/Stateful"],function(_1,_2,_3,_4){
|
|
return _1("dojox.widget.Selection",_4,{constructor:function(){
|
|
this.selectedItems=[];
|
|
},selectionMode:"single",_setSelectionModeAttr:function(_5){
|
|
if(_5!="none"&&_5!="single"&&_5!="multiple"){
|
|
_5="single";
|
|
}
|
|
if(_5!=this.selectionMode){
|
|
this.selectionMode=_5;
|
|
if(_5=="none"){
|
|
this.set("selectedItems",null);
|
|
}else{
|
|
if(_5=="single"){
|
|
this.set("selectedItem",this.selectedItem);
|
|
}
|
|
}
|
|
}
|
|
},selectedItem:null,_setSelectedItemAttr:function(_6){
|
|
if(this.selectedItem!=_6){
|
|
this._set("selectedItem",_6);
|
|
this.set("selectedItems",_6?[_6]:null);
|
|
}
|
|
},selectedItems:null,_setSelectedItemsAttr:function(_7){
|
|
var _8=this.selectedItems;
|
|
this.selectedItems=_7;
|
|
this.selectedItem=null;
|
|
if(_8!=null&&_8.length>0){
|
|
this.updateRenderers(_8,true);
|
|
}
|
|
if(this.selectedItems&&this.selectedItems.length>0){
|
|
this.selectedItem=this.selectedItems[0];
|
|
this.updateRenderers(this.selectedItems,true);
|
|
}
|
|
},_getSelectedItemsAttr:function(){
|
|
return this.selectedItems==null?[]:this.selectedItems.concat();
|
|
},isItemSelected:function(_9){
|
|
if(this.selectedItems==null||this.selectedItems.length==0){
|
|
return false;
|
|
}
|
|
return _2.some(this.selectedItems,_3.hitch(this,function(_a){
|
|
return this.getIdentity(_a)==this.getIdentity(_9);
|
|
}));
|
|
},getIdentity:function(_b){
|
|
},setItemSelected:function(_c,_d){
|
|
if(this.selectionMode=="none"||_c==null){
|
|
return;
|
|
}
|
|
var _e=this.get("selectedItems");
|
|
var _f=this.get("selectedItems");
|
|
if(this.selectionMode=="single"){
|
|
if(_d){
|
|
this.set("selectedItem",_c);
|
|
}else{
|
|
if(this.isItemSelected(_c)){
|
|
this.set("selectedItems",null);
|
|
}
|
|
}
|
|
}else{
|
|
if(_d){
|
|
if(this.isItemSelected(_c)){
|
|
return;
|
|
}
|
|
if(_e==null){
|
|
_e=[_c];
|
|
}else{
|
|
_e.unshift(_c);
|
|
}
|
|
this.set("selectedItems",_e);
|
|
}else{
|
|
var res=_2.filter(_e,function(_10){
|
|
return _10.id!=_c.id;
|
|
});
|
|
if(res==null||res.length==_e.length){
|
|
return;
|
|
}
|
|
this.set("selectedItems",res);
|
|
}
|
|
}
|
|
},selectFromEvent:function(e,_11,_12,_13){
|
|
if(this.selectionMode=="none"){
|
|
return false;
|
|
}
|
|
var _14;
|
|
var _15=this.get("selectedItem");
|
|
var _16=_11?this.isItemSelected(_11):false;
|
|
if(_11==null){
|
|
if(!e.ctrlKey&&this.selectedItem!=null){
|
|
this.set("selectedItem",null);
|
|
_14=true;
|
|
}
|
|
}else{
|
|
if(this.selectionMode=="multiple"){
|
|
if(e.ctrlKey){
|
|
this.setItemSelected(_11,!_16);
|
|
_14=true;
|
|
}else{
|
|
this.set("selectedItem",_11);
|
|
_14=true;
|
|
}
|
|
}else{
|
|
if(e.ctrlKey){
|
|
this.set("selectedItem",_16?null:_11);
|
|
_14=true;
|
|
}else{
|
|
if(!_16){
|
|
this.set("selectedItem",_11);
|
|
_14=true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(_13&&_14){
|
|
this.dispatchChange(_15,this.get("selectedItem"),_12,e);
|
|
}
|
|
return _14;
|
|
},dispatchChange:function(_17,_18,_19,_1a){
|
|
this.onChange({oldValue:_17,newValue:_18,renderer:_19,triggerEvent:_1a});
|
|
},onChange:function(){
|
|
}});
|
|
});
|