82 lines
2.0 KiB
JavaScript
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);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
});
|