[richfaces-svn-commits] JBoss Rich Faces SVN: r23243 - in branches/enterprise/3.3.1.SP3_test_patch/ui: scrollableDataTable/src/main/javascript/ClientUI/common/box and 2 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Fri Jun 28 13:52:42 EDT 2013
Author: ivassile
Date: 2013-06-28 13:52:42 -0400 (Fri, 28 Jun 2013)
New Revision: 23243
Modified:
branches/enterprise/3.3.1.SP3_test_patch/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableSelection.js
branches/enterprise/3.3.1.SP3_test_patch/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/Box.js
branches/enterprise/3.3.1.SP3_test_patch/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/Utils.js
branches/enterprise/3.3.1.SP3_test_patch/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js
Log:
Submitting fixes for RF-7173, RF-10793, RF-1107 and RF-7169.
Modified: branches/enterprise/3.3.1.SP3_test_patch/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableSelection.js
===================================================================
--- branches/enterprise/3.3.1.SP3_test_patch/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableSelection.js 2013-06-28 16:54:14 UTC (rev 23242)
+++ branches/enterprise/3.3.1.SP3_test_patch/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableSelection.js 2013-06-28 17:52:42 UTC (rev 23243)
@@ -555,6 +555,7 @@
range = [this.startRow, this.endRow];
this.setSelection(range);
} else if (!event.shiftKey && event.ctrlKey && !event.altKey) {
+ this.selectionFlag = "x"; //RF-10793
if (this.selection.isSelectedId(rowIndex)) {
this.removeRowFromSelection(rowIndex);
} else {
Modified: branches/enterprise/3.3.1.SP3_test_patch/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/Box.js
===================================================================
--- branches/enterprise/3.3.1.SP3_test_patch/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/Box.js 2013-06-28 16:54:14 UTC (rev 23242)
+++ branches/enterprise/3.3.1.SP3_test_patch/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/Box.js 2013-06-28 17:52:42 UTC (rev 23243)
@@ -72,7 +72,7 @@
getHeight: function() {
var el = this.getElement();
if(el.tagName.toLowerCase() != "body") {
- var h = el.offsetHeight;
+ var h = el.getHeight(); // offsetHeight; RF-7173
return h>0 ? h : (this.element.boxHeight ? parseInt(this.element.boxHeight) : 0);
}
Modified: branches/enterprise/3.3.1.SP3_test_patch/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/Utils.js
===================================================================
--- branches/enterprise/3.3.1.SP3_test_patch/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/Utils.js 2013-06-28 16:54:14 UTC (rev 23242)
+++ branches/enterprise/3.3.1.SP3_test_patch/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/Utils.js 2013-06-28 17:52:42 UTC (rev 23243)
@@ -231,6 +231,7 @@
scrollElement.scrollTop--;
}
scrollElement.scrollTop = scrollTop;
+ grid.getBody().setScrollPos(scrollTop);//RF-7169
}, 50);
}
Modified: branches/enterprise/3.3.1.SP3_test_patch/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js
===================================================================
--- branches/enterprise/3.3.1.SP3_test_patch/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js 2013-06-28 16:54:14 UTC (rev 23242)
+++ branches/enterprise/3.3.1.SP3_test_patch/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js 2013-06-28 17:52:42 UTC (rev 23243)
@@ -39,6 +39,7 @@
},
// event listeners
_onContentHScroll: function(event) {
+ this.syncScrollActive = false;
this.grid.adjustScrollPosition(event.memo.pos);
},
_onDataReady: function(options) {
@@ -50,6 +51,7 @@
window.loadingInvalidateTime = (new Date()).getTime();
},
_onContentVScroll: function(event) {
+ this.syncScrollActive = false;
this.helpObject1.moveToY(this.sizeBox.element.offsetHeight+ this.defaultRowHeight + 5);
this.helpObject2.moveToY(this.sizeBox.element.offsetHeight+ this.defaultRowHeight + 5);
this.setScrollPos(event.memo.pos);
@@ -67,7 +69,8 @@
break;
}
}
- Event.observe(this.container.getElement(), 'keypress', this.synchronizeScroll.bindAsEventListener(this));
+ this.syncScrollActive = false;
+ Event.observe(this.container.getElement(), 'scroll', this.synchronizeScroll.bindAsEventListener(this));
// create scroll box
this.scrollBox = new ClientUI.common.box.ScrollableBox(this.gridId + ":scb", this.getElement());
@@ -91,9 +94,15 @@
}
this.contentBox = new ClientUI.common.box.Box(normal);
- Event.observe(this.contentBox.getElement(), 'keypress', this.synchronizeScroll.bindAsEventListener(this));
+ Event.observe(this.contentBox.getElement(), "keyup", this.synchronizeKeyUp.bindAsEventListener(this));
+ Event.observe(this.contentBox.getElement(), "keydown", this.synchronizeKeyDown.bindAsEventListener(this));
+ Event.observe(this.contentBox.getElement(), 'scroll', this.synchronizeScroll.bindAsEventListener(this));
this.frozenContentBox = new ClientUI.common.box.Box(frozen);
+ Event.observe(this.frozenContentBox.getElement(), "keyup", this.synchronizeKeyUp.bindAsEventListener(this));
+ Event.observe(this.frozenContentBox.getElement(), "keydown", this.synchronizeKeyDown.bindAsEventListener(this));
+ Event.observe(this.frozenContentBox.getElement(), "scroll", this.synchronizeScroll.bindAsEventListener(this));
+
this.helpObject1 = new ClientUI.common.box.Box(this.gridId + ":nho", this.contentBox.getElement());
this.helpObject2 = new ClientUI.common.box.Box(this.gridId + ":fho", this.frozenContentBox.getElement());
@@ -645,9 +654,52 @@
},
synchronizeScroll: function(event) {
- if(Event.KEY_TAB == event.keyCode || Event.KEY_TAB == event.charCode) {
- Event.stop(event);
+ if (this.syncScrollActive) {
+ if (this.contentBox.element.parentElement.scrollLeft > 0) {
+ var t = this.contentBox.element.parentElement.scrollLeft;
+ this.contentBox.element.parentElement.scrollLeft = 0;
+ this.scrollBox.element.scrollLeft += t;
+
+ } else if (this.contentBox.element.scrollLeft > 0) {
+ var t = this.contentBox.element.scrollLeft;
+ this.contentBox.element.scrollLeft = 0;
+ this.scrollBox.element.scrollLeft += t;
+ }
+ if (this.frozenContentBox.element.scrollTop != this.scrollBox.element.scrollTop) {
+ this.scrollBox.element.scrollTop = this.frozenContentBox.element.scrollTop;
+
+ } else if (this.contentBox.element.scrollTop != this.scrollBox.element.scrollTop) {
+ this.scrollBox.element.scrollTop = this.contentBox.element.scrollTop;
+ }
}
+ },
+
+ synchronizeKeyDown: function (event) {
+ if (Event.KEY_TAB == event.keyCode || Event.KEY_TAB == event.charCode) {
+ this.syncScrollActive = true;
+ }
+ },
+
+ synchronizeKeyUp: function (event) {
+ if (Event.KEY_TAB == event.keyCode || Event.KEY_TAB == event.charCode) {
+ var k = 0;
+ var el = document.activeElement;
+ if (el) {
+ k += el.offsetLeft;
+ while (el != this.templNormal.element) {
+ el = el.parentElement;
+ k += el.offsetLeft;
+ if (el == this.templFrozen.element) {
+ k = 0;
+ this.scrollBox.element.scrollLeft = 0;
+ return;
+ }
+ }
+ if (k < 0) {
+ this.scrollBox.element.scrollLeft += k;
+ }
+ }
+ }
}
});
More information about the richfaces-svn-commits
mailing list