Author: piotr.buda
Date: 2008-07-25 05:49:09 -0400 (Fri, 25 Jul 2008)
New Revision: 9779
Modified:
trunk/sandbox/ui/extendedDataTable/
trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableSelection.js
Log:
Fixed selection
Property changes on: trunk/sandbox/ui/extendedDataTable
___________________________________________________________________
Name: svn:ignore
- bin
target
.project
+ bin
target
.project
.settings
Modified:
trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableSelection.js
===================================================================
---
trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableSelection.js 2008-07-25
08:36:53 UTC (rev 9778)
+++
trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableSelection.js 2008-07-25
09:49:09 UTC (rev 9779)
@@ -222,8 +222,10 @@
refreshEvents: function() {
this.setListeners();
- this.eventKeyPress = this.processKeyDown.bindAsEventListener(this);
- Event.observe(document, "keydown", this.eventKeyPress);
+ if(this.options.selectionMode != "none") {
+ this.eventKeyPress = this.processKeyDown.bindAsEventListener(this);
+ Event.observe(document, "keydown", this.eventKeyPress);
+ }
A4J.AJAX.AddListener({
onafterajax: function(req, event, data) {
if(!$(this.prefix + ":n")) {
@@ -275,9 +277,11 @@
var rowIndex;
var groupingExists = $(this.prefix + ":group-row:0") != null;
if(!groupingExists) { //simple listener binding
- for(var i = 0; i < this.rowCount; i++) {
- rowIndex = Number(nrows[i].id.split(this.prefix)[1].split(":")[2]);
- this.addListener(nrows[i], rowIndex);
+ if(this.options.selectionMode != "none") {
+ for(var i = 0; i < this.rowCount; i++) {
+ rowIndex = Number(nrows[i].id.split(this.prefix)[1].split(":")[2]);
+ this.addListener(nrows[i], rowIndex);
+ }
}
} else { //extended listener binding with grouping
var groupRow;
@@ -313,8 +317,10 @@
groupItems = [];
lastGroupId = groupId;
} else {
- rowIndex = Number(nrows[i].id.split(this.prefix)[1].split(":")[2]);
- this.addListener(nrows[i], rowIndex);
+ if(this.options.selectionMode != "none") {
+ rowIndex = Number(nrows[i].id.split(this.prefix)[1].split(":")[2]);
+ this.addListener(nrows[i], rowIndex);
+ }
groupItems[groupItem++] = nrows[i];
if (!bGroupExpanded) {
nrows[i].style.display = 'none';
@@ -539,16 +545,24 @@
},
setSelection: function(range) {
+ //TODO test for extreemes - first rows, last rows, all rows
+ for(var i = this.selection.ranges.length - 1;i >= 0;i--) {
+ var selection = this.selection.ranges[i].indexes;
+ if(selection == range) {
+ continue;
+ }
+ var j = selection[0];
+ for(j;j <= selection[1];j++) {
+ this.removeRowFromSelection(j);
+ //ClientUILib.log(ClientUILogger.INFO, "Removing: " + j);
+ }
+ }
var i = range[0];
- range[1] = (range[1] + 1) % this.rowCount;
+ range[1] = (range[1] + 1) % this.rowCount;
while (i != range[1]) {
this.addRowToSelection(i);
- i = (i + 1) % this.rowCount;
+ i = (i + 1) % this.rowCount;
}
- while (i != range[0]) {
- this.removeRowFromSelection(i);
- i = (i + 1) % this.rowCount;
- }
},
resetSelection: function(e) {
@@ -557,10 +571,6 @@
}
},
- /*
- Row selection modified because we don't support frozen columns
- */
-
addRowToSelection: function(rowIndex) {
this.selection.addId(rowIndex);
var nElement = $(this.prefix + ":n:" + rowIndex);
Show replies by date