webui-aria2/js/libs/dojox/grid/DataSelection.js.uncompressed.js
2012-05-01 19:52:07 +08:00

82 lines
2.0 KiB
JavaScript

//>>built
define("dojox/grid/DataSelection", [
"dojo/_base/declare",
"./_SelectionPreserver",
"./Selection"
], function(declare, _SelectionPreserver, Selection){
return declare("dojox.grid.DataSelection", Selection, {
constructor: function(grid){
if(grid.keepSelection){
this.preserver = new _SelectionPreserver(this);
}
},
destroy: function(){
if(this.preserver){
this.preserver.destroy();
}
},
getFirstSelected: function(){
var idx = Selection.prototype.getFirstSelected.call(this);
if(idx == -1){ return null; }
return this.grid.getItem(idx);
},
getNextSelected: function(inPrev){
var old_idx = this.grid.getItemIndex(inPrev);
var idx = Selection.prototype.getNextSelected.call(this, old_idx);
if(idx == -1){ return null; }
return this.grid.getItem(idx);
},
getSelected: function(){
var result = [];
for(var i=0, l=this.selected.length; i<l; i++){
if(this.selected[i]){
result.push(this.grid.getItem(i));
}
}
return result;
},
addToSelection: function(inItemOrIndex){
if(this.mode == 'none'){ return; }
var idx = null;
if(typeof inItemOrIndex == "number" || typeof inItemOrIndex == "string"){
idx = inItemOrIndex;
}else{
idx = this.grid.getItemIndex(inItemOrIndex);
}
Selection.prototype.addToSelection.call(this, idx);
},
deselect: function(inItemOrIndex){
if(this.mode == 'none'){ return; }
var idx = null;
if(typeof inItemOrIndex == "number" || typeof inItemOrIndex == "string"){
idx = inItemOrIndex;
}else{
idx = this.grid.getItemIndex(inItemOrIndex);
}
Selection.prototype.deselect.call(this, idx);
},
deselectAll: function(inItemOrIndex){
var idx = null;
if(inItemOrIndex || typeof inItemOrIndex == "number"){
if(typeof inItemOrIndex == "number" || typeof inItemOrIndex == "string"){
idx = inItemOrIndex;
}else{
idx = this.grid.getItemIndex(inItemOrIndex);
}
Selection.prototype.deselectAll.call(this, idx);
}else{
this.inherited(arguments);
}
}
});
});