summaryrefslogtreecommitdiff
path: root/js/dojo/dojox/grid/DataSelection.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/dojo/dojox/grid/DataSelection.js')
-rw-r--r--js/dojo/dojox/grid/DataSelection.js82
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