You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.9 KiB
81 lines
1.9 KiB
define([ |
|
"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); |
|
} |
|
} |
|
}); |
|
}); |