UNPKG

dojox

Version:

Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.

81 lines (71 loc) 1.97 kB
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); } } }); });