diff options
Diffstat (limited to 'js/dojo/dojox/grid/DataSelection.js')
| -rw-r--r-- | js/dojo/dojox/grid/DataSelection.js | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/js/dojo/dojox/grid/DataSelection.js b/js/dojo/dojox/grid/DataSelection.js new file mode 100644 index 0000000..c3c630e --- /dev/null +++ b/js/dojo/dojox/grid/DataSelection.js @@ -0,0 +1,82 @@ +//>>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); + } + } +}); +});
\ No newline at end of file |
