DataSelection.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. define("dojox/grid/DataSelection", [
  2. "dojo/_base/declare",
  3. "./_SelectionPreserver",
  4. "./Selection"
  5. ], function(declare, _SelectionPreserver, Selection){
  6. return declare("dojox.grid.DataSelection", Selection, {
  7. constructor: function(grid){
  8. if(grid.keepSelection){
  9. this.preserver = new _SelectionPreserver(this);
  10. }
  11. },
  12. destroy: function(){
  13. if(this.preserver){
  14. this.preserver.destroy();
  15. }
  16. },
  17. getFirstSelected: function(){
  18. var idx = Selection.prototype.getFirstSelected.call(this);
  19. if(idx == -1){ return null; }
  20. return this.grid.getItem(idx);
  21. },
  22. getNextSelected: function(inPrev){
  23. var old_idx = this.grid.getItemIndex(inPrev);
  24. var idx = Selection.prototype.getNextSelected.call(this, old_idx);
  25. if(idx == -1){ return null; }
  26. return this.grid.getItem(idx);
  27. },
  28. getSelected: function(){
  29. var result = [];
  30. for(var i=0, l=this.selected.length; i<l; i++){
  31. if(this.selected[i]){
  32. result.push(this.grid.getItem(i));
  33. }
  34. }
  35. return result;
  36. },
  37. addToSelection: function(inItemOrIndex){
  38. if(this.mode == 'none'){ return; }
  39. var idx = null;
  40. if(typeof inItemOrIndex == "number" || typeof inItemOrIndex == "string"){
  41. idx = inItemOrIndex;
  42. }else{
  43. idx = this.grid.getItemIndex(inItemOrIndex);
  44. }
  45. Selection.prototype.addToSelection.call(this, idx);
  46. },
  47. deselect: function(inItemOrIndex){
  48. if(this.mode == 'none'){ return; }
  49. var idx = null;
  50. if(typeof inItemOrIndex == "number" || typeof inItemOrIndex == "string"){
  51. idx = inItemOrIndex;
  52. }else{
  53. idx = this.grid.getItemIndex(inItemOrIndex);
  54. }
  55. Selection.prototype.deselect.call(this, idx);
  56. },
  57. deselectAll: function(inItemOrIndex){
  58. var idx = null;
  59. if(inItemOrIndex || typeof inItemOrIndex == "number"){
  60. if(typeof inItemOrIndex == "number" || typeof inItemOrIndex == "string"){
  61. idx = inItemOrIndex;
  62. }else{
  63. idx = this.grid.getItemIndex(inItemOrIndex);
  64. }
  65. Selection.prototype.deselectAll.call(this, idx);
  66. }else{
  67. this.inherited(arguments);
  68. }
  69. }
  70. });
  71. });