[richfaces-svn-commits] JBoss Rich Faces SVN: r4858 - in trunk/ui/scrollableDataTable/src/main: javascript/ClientUI/common/box and 4 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Fri Dec 14 10:51:09 EST 2007
Author: konstantin.mishin
Date: 2007-12-14 10:51:09 -0500 (Fri, 14 Dec 2007)
New Revision: 4858
Modified:
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/Box.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/InlineBox.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/ScrollableBox.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/SplashBox.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/Substrate.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/CustomEvent.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/StringBuilder.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/ArrayDataModel.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DataCash.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DataModel.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DefaultColumnModel.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/FakeArrayDataModel.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/Grid.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridFooter.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridHeader.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/ScrollableGrid.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/Selection.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/GridLayoutManager.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/LayoutManager.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/VLayoutManager.js
trunk/ui/scrollableDataTable/src/main/javascript/ClientUILib.js
trunk/ui/scrollableDataTable/src/main/templates/org/richfaces/scrollable-data-table.jspx
Log:
RF-1592
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/Box.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/Box.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/Box.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -27,13 +27,7 @@
* })
*/
ClientUI.common.box.Box = Class.create({
- CLASSDEF: {
- name: 'ClientUI.common.box.Box'
- }
-});
-Object.extend(ClientUI.common.box.Box.prototype, {
-
initialize: function(element, parentElement, dontUpdateStyles) {
this.element = $(element);
if(!this.element) {
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/InlineBox.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/InlineBox.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/InlineBox.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -10,16 +10,9 @@
/**
* Base class that wrap work with inline blocks like span
*/
-ClientUI.common.box.InlineBox = Class.create({
- CLASSDEF: {
- name: 'ClientUI.common.box.InlineBox',
- parent: ClientUI.common.box.Box
- }
-});
+ClientUI.common.box.InlineBox = Class.create(ClientUI.common.box.Box, {
-Object.extend(ClientUI.common.box.InlineBox.prototype, {
-
- initialize: function(element, parentElement, dontUpdateStyles) {
+ initialize: function($super, element, parentElement, dontUpdateStyles) {
if(!element) {
element = $(document.createElement("span"));
if($(parentElement)) {
@@ -33,7 +26,7 @@
element.id = "ClientUI_InlineBox" + ClientUI_common_box_InlineBox_idGenerator++;
}
- ClientUI.common.box.InlineBox.parentClass.constructor().call(this, element, parentElement, dontUpdateStyles);
+ $super(element, parentElement, dontUpdateStyles);
// additional styles
if(!dontUpdateStyles) {
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/ScrollableBox.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/ScrollableBox.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/ScrollableBox.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -11,29 +11,11 @@
/**
* This class target to manage scrollable box object.
*/
-ClientUI.common.box.ScrollableBox = Class.create({
- CLASSDEF: {
- name: 'ClientUI.common.box.ScrollableBox',
- parent: ClientUI.common.box.Box
- }
-
-});
+ClientUI.common.box.ScrollableBox = Class.create(ClientUI.common.box.Box, {
-Object.extend(ClientUI.common.box.ScrollableBox.prototype, {
-
- // Custom events
- /**
- * Occured when content scrolled in horizontal
- */
- eventHScroll: {},
- /**
- * Occured when content scrolled in vertical
- */
- eventVScroll: {},
-
//Constructor
- initialize: function(element, parentElement) {
- ClientUI.common.box.ScrollableBox.parentClass.constructor().call(this, element, parentElement);
+ initialize: function($super, element, parentElement) {
+ $super(element, parentElement);
this.element.setStyle({overflow: 'auto'});
// Create custom event producers
@@ -61,9 +43,9 @@
this.eventVScroll.fire(this.getViewportScrollY());
}
},
- updateLayout: function() {
+ updateLayout: function($super) {
// NOTE: not implemented in this class
- ClientUI.common.box.ScrollableBox.parentClass.method("updateLayout").call(this);
+ $super();
},
getViewportScrollX: function() {
var scrollX = 0;
@@ -135,4 +117,16 @@
this.scrollerWidth = (wNoScroll - wScroll);
return this.scrollerWidth || 0;
}
+});
+
+Object.extend(ClientUI.common.box.ScrollableBox.prototype, {
+ // Custom events
+ /**
+ * Occured when content scrolled in horizontal
+ */
+ eventHScroll: {},
+ /**
+ * Occured when content scrolled in vertical
+ */
+ eventVScroll: {}
});
\ No newline at end of file
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/SplashBox.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/SplashBox.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/SplashBox.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -11,17 +11,10 @@
/**
* Base class that wrap work with inline blocks like span
*/
-ClientUI.common.box.SplashBox = Class.create({
- CLASSDEF: {
- name: 'ClientUI.common.box.SplashBox',
- parent: ClientUI.common.box.Box
- }
-});
+ClientUI.common.box.SplashBox = Class.create(ClientUI.common.box.Box, {
-Object.extend(ClientUI.common.box.SplashBox.prototype, {
-
- initialize: function(text, parentElement, zIndex, supressSplash) {
- ClientUI.common.box.SplashBox.parentClass.constructor().call(this, null, parentElement);
+ initialize: function($super, text, parentElement, zIndex, supressSplash) {
+ $super(null, parentElement);
this.moveTo(-1000, -1000);
this.zIndex = zIndex || 500;
this.supressSplash = supressSplash || false;
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/Substrate.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/Substrate.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/Substrate.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -10,17 +10,9 @@
/**
* Base class that wrap work with inline blocks like span
*/
-ClientUI.common.box.Substrate = Class.create({
- CLASSDEF: {
- name: 'ClientUI.common.box.Substrate',
- parent: ClientUI.common.box.Box
- }
-
-});
+ClientUI.common.box.Substrate = Class.create(ClientUI.common.box.Box, {
-Object.extend(ClientUI.common.box.Substrate.prototype, {
-
- initialize: function(element, parentElement, dontUpdateStyles) {
+ initialize: function($super, element, parentElement, dontUpdateStyles) {
if(!element) {
var fakeElement = $(document.createElement("div"));
fakeElement.innerHTML = '<iframe id="'+'ClientUI_Substrate' + (ClientUI_common_box_Substrate_idGenerator++) +'" src="" scrolling="no" frameborder="0" style="filter:Alpha(opacity=0);position:absolute;top:0px;left:0px;display:block"></iframe>';
@@ -28,7 +20,7 @@
fakeElement.removeChild(element);
}
- ClientUI.common.box.Substrate.parentClass.constructor().call(this, element, parentElement, dontUpdateStyles);
+ $super(element, parentElement, dontUpdateStyles);
// additional styles
if(!dontUpdateStyles) {
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/CustomEvent.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/CustomEvent.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/CustomEvent.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -9,16 +9,6 @@
ClientUILib.declarePackage("ClientUI.common.utils.CustomEvent");
ClientUI.common.utils.CustomEvent = Class.create({
- CLASSDEF: {
- name: 'ClientUI.common.utils.CustomEvent'
- }
-
-});
-
-Object.extend(ClientUI.common.utils.CustomEvent.prototype, {
- _eventName: 'undefined',
- _id: -1,
-
// Constructor
initialize: function(event) {
this._eventName = event;
@@ -53,6 +43,11 @@
}
});
+Object.extend(ClientUI.common.utils.CustomEvent, {
+ _eventName: 'undefined',
+ _id: -1
+});
+
Event._observe = Event.observe;
Event.observe = function( element, name, observer, useCapture ) {
if(element && element.getName && element.getId) {
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/StringBuilder.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/StringBuilder.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/StringBuilder.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -16,17 +16,7 @@
* var str = sb.toString();
*/
StringBuilder = Class.create({
- CLASSDEF: {
- name: 'StringBuilder'
- },
- length: 0,
-
- // private
- _current: 0,
- _parts: [],
- _string: null, // used to cache the string
-
initialize: function(str) {
this._string = null;
this._current = 0;
@@ -63,4 +53,11 @@
}
});
-
+Object.extend(StringBuilder.prototype, {
+ length: 0,
+
+ // private
+ _current: 0,
+ _parts: [],
+ _string: null // used to cache the string
+});
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/ArrayDataModel.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/ArrayDataModel.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/ArrayDataModel.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -11,17 +11,9 @@
* by Denis Morozov <dmorozov at exadel.com> distributed under the BSD license.
*
*/
-ClientUI.controls.grid.ArrayDataModel = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.ArrayDataModel',
- parent: ClientUI.controls.grid.DataModel
- }
-
-});
-
-Object.extend(ClientUI.controls.grid.ArrayDataModel.prototype, {
- initialize: function(data) {
- this.parentClass().constructor().call(this);
+ClientUI.controls.grid.ArrayDataModel = Class.create(ClientUI.controls.grid.DataModel, {
+ initialize: function($super, data) {
+ $super();
this.data = $A(data || []);
},
getRow: function(index) {
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DataCash.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DataCash.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DataCash.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -11,14 +11,7 @@
*
*/
ClientUI.controls.grid.DataCash = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.DataCash'
- },
- PKG_SIZE: 20
-});
-
-Object.extend(ClientUI.controls.grid.DataCash.prototype, {
initialize: function(cashSize) {
var count = parseInt(cashSize/this.PKG_SIZE + 1);
this.cash = new Array(count);
@@ -34,4 +27,8 @@
var i = parseInt(index/this.PKG_SIZE), j = index%this.PKG_SIZE;
this.cash[i][j] = row;
}
+});
+
+Object.extend(ClientUI.controls.grid.DataCash.prototype, {
+ PKG_SIZE: 20
});
\ No newline at end of file
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DataModel.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DataModel.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DataModel.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -13,13 +13,6 @@
*
*/
ClientUI.controls.grid.DataModel = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.DataModel'
- }
-});
-
-Object.extend(ClientUI.controls.grid.DataModel.prototype, {
- eventDataReady: {},
initialize: function() {
// constructor
@@ -47,4 +40,7 @@
}
});
+Object.extend(ClientUI.controls.grid.DataModel.prototype, {
+ eventDataReady: {}
+});
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DefaultColumnModel.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DefaultColumnModel.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DefaultColumnModel.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -7,13 +7,6 @@
ClientUI.controls.grid.DefaultColumnModel = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.DefaultColumnModel'
- }
-
-});
-
-Object.extend(ClientUI.controls.grid.DefaultColumnModel.prototype, {
initialize: function(config) {
this.config = config;
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/FakeArrayDataModel.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/FakeArrayDataModel.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/FakeArrayDataModel.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -1,14 +1,7 @@
ClientUILib.declarePackage("ClientUI.controls.grid.FakeArrayDataModel ");
-ClientUI.controls.grid.FakeArrayDataModel = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.FakeArrayDataModel',
- parent: ClientUI.controls.grid.DataModel
- }
- });
-
- Object.extend(ClientUI.controls.grid.FakeArrayDataModel.prototype, {
- initialize: function(rows_count, columns_count, grid_id) {
- ClientUI.controls.grid.FakeArrayDataModel.parentClass.constructor().call(this);
+ClientUI.controls.grid.FakeArrayDataModel = Class.create(ClientUI.controls.grid.DataModel, {
+ initialize: function($super, rows_count, columns_count, grid_id) {
+ $super();
this.data = [];
this.count = rows_count;
this.columns = columns_count;
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/Grid.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/Grid.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/Grid.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -29,36 +29,14 @@
* var grid = new ClientUI.controls.grid.Grid('id_of_trigger_element', 'a nice description')
* </script>
*/
-ClientUI.controls.grid.Grid = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.Grid',
- parent: ClientUI.common.box.Box
- }
-
-});
-
-Object.extend(ClientUI.controls.grid.Grid.prototype, {
- // Custom events
- /**
- * Occured when content header clicked
- */
- eventOnSort: {},
- /**
- * Occured when column width adjusted
- */
- eventOnResizeColumn: {},
+ClientUI.controls.grid.Grid = Class.create(ClientUI.common.box.Box, {
- initialize: function(element, dataModel, templates) {
- ClientUI.controls.grid.Grid.parentClass.constructor().call(this, element);
- if(!this.element || !this.element.id)
- this.element.id = "ClientUI_Grid" + ClientUI_controls_grid_Grid_idGenerator++;
+ initialize: function($super, element, dataModel, templates) {
+ $super(element);
this.dataModel = dataModel;
this.templates = $A(templates);
-
- this.eventOnSort = new ClientUI.common.utils.CustomEvent('OnSort');
- this.eventOnResizeColumn = new ClientUI.common.utils.CustomEvent('OnResizeColumn');
-
+
this.createControl();
},
@@ -97,11 +75,11 @@
setTimeout(function() {grid.updateLayout()}, 50);
}
},
- updateLayout: function() {
+ updateLayout: function($super) {
if(!this.controlCreated || this.getHeight()==0) {
return;
}
- ClientUI.controls.grid.Grid.parentClass.method("updateLayout").call(this);
+ $super();
var header = this.getHeader();
if(header.getHeight() == 0) {
@@ -133,7 +111,7 @@
if(this.getFooter()) this.getFooter().adjustColumnWidth(index, width);
this.updateLayout();
this.getHeader().agjustSeparators();
- this.eventOnResizeColumn.fire(index, width);
+ // this.eventOnResizeColumn.fire(index, width);
},
adjustScrollPosition: function(pos) {
if(pos<0) {pos = 0;}
@@ -220,9 +198,4 @@
this.updateLayout();
}
}
-});
-
-if(!ClientUI_controls_grid_Grid_idGenerator) {
-var ClientUI_controls_grid_Grid_idGenerator = 0;
-};
-
+});
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -12,39 +12,16 @@
* GridHeader.js - Grid control header pane
* TODO: add comments
*/
-ClientUI.controls.grid.GridBody = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.GridBody',
- parent: ClientUI.common.box.Box
- }
-
-});
-
-Object.extend(ClientUI.controls.grid.GridBody.prototype, {
+ClientUI.controls.grid.GridBody = Class.create(ClientUI.common.box.Box, {
/**
- * Count of rows can be viewed in the same time in grid
- */
- dataVisible: 50,
-
- /**
- * Count of rows loaded additianally to dataVisible rows
- */
- dataDelta: 5,
-
- /**
- * Current data position
- */
- currentPos: 0,
-
- /**
* Constructor
* @param {Object} template for Grid body row
* @param {Object} grid parent grid object
*/
- initialize: function(template, grid) {
+ initialize: function($super, template, grid) {
this.grid = grid;
this.gridId = grid.getElement().id;
- ClientUI.controls.grid.GridBody.parentClass.constructor().call(this, template);
+ $super(template);
// declare event listeners
this._eventOnHScroll = this._onContentHScroll.bind(this);
@@ -219,11 +196,11 @@
// this.defaultRowHeight -= this.getBorderWidth("tb") + this.getPadding("tb");
//}
},
- updateLayout: function() {
+ updateLayout: function($super) {
if(!this.controlCreated || !this.grid.controlCreated) {
return;
}
- ClientUI.controls.grid.GridBody.parentClass.method("updateLayout").call(this);
+ $super();
if(!this.scrollBox || !this.contentBox || !this.sizeBox) {
return;
}
@@ -822,3 +799,21 @@
}
}
});
+
+Object.extend(ClientUI.controls.grid.GridBody.prototype, {
+ /**
+ * Count of rows can be viewed in the same time in grid
+ */
+ dataVisible: 50,
+
+ /**
+ * Count of rows loaded additianally to dataVisible rows
+ */
+ dataDelta: 5,
+
+ /**
+ * Current data position
+ */
+ currentPos: 0
+
+});
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridFooter.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridFooter.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridFooter.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -11,18 +11,10 @@
/* GridHeader.js - Grid control header pane
* TODO: add comments
*/
-ClientUI.controls.grid.GridFooter = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.GridFooter',
- parent: ClientUI.common.box.Box
- }
-
-});
-
-Object.extend(ClientUI.controls.grid.GridFooter.prototype, {
- initialize: function(template, grid) {
+ClientUI.controls.grid.GridFooter = Class.create(ClientUI.common.box.Box, {
+ initialize: function($super, template, grid) {
this.grid = grid;
- ClientUI.controls.grid.GridFooter.parentClass.constructor().call(this, template);
+ $super(template);
this.createControl(template);
},
createControl: function(template) {
@@ -133,11 +125,11 @@
this.setHeight(this.defaultHeight);
this.setWidth(this.defaultWidth);
},
- updateLayout: function() {
+ updateLayout: function($super) {
if(!this.controlCreated || !this.grid.controlCreated) {
return;
}
- ClientUI.controls.grid.GridFooter.parentClass.method("updateLayout").call(this);
+ $super();
var height = this.getHeight();
var totalWidth = this.grid.getColumnsTotalWidth();
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridHeader.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridHeader.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridHeader.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -12,24 +12,12 @@
* GridHeader.js - Grid control header pane
* TODO: add comments
*/
-ClientUI.controls.grid.GridHeader = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.GridHeader',
- parent: ClientUI.common.box.Box,
- sepStyleClass: "dr-sdt-hsep"
- }
-
-});
-
-Object.extend(ClientUI.controls.grid.GridHeader.prototype, {
- // internal variables
- _columns: [],
-
+ClientUI.controls.grid.GridHeader = Class.create(ClientUI.common.box.Box, {
// constructor
- initialize: function(template, grid) {
+ initialize: function($super, template, grid) {
this.grid = grid;
this.gridId = this.grid.getElement().id;
- ClientUI.controls.grid.GridHeader.parentClass.constructor().call(this, template);
+ $super(template);
// register event handlers
this.eventSepDblClick = this.OnSepDblClick.bindAsEventListener(this);
@@ -303,11 +291,11 @@
this.agjustSeparators();
this.updateHeaders();
},
- updateLayout: function() {
+ updateLayout: function($super) {
if(!this.controlCreated || !this.grid.controlCreated) {
return;
}
- ClientUI.controls.grid.GridHeader.parentClass.method("updateLayout").call(this);
+ $super();
var height = this.getHeight();
var totalWidth = this.grid.getColumnsTotalWidth();
var frozenContentWidth = this.grid.getColumnsFrozenWidth();
@@ -434,9 +422,7 @@
*/
var rows = this.grid.getBody().templFrozen.getElement().rows;
var startRow = rows && rows.length>0 ? this.grid.getBody()._getRowIndex(rows[0].id) : 0;
- this.grid.eventOnSort.fire({
- column: index,
- /*order: dir,*/
+ this.grid.element.fire("grid:onsort",{ column: index,
startRow: startRow,
index: this.grid.getBody().currRange.start
});
@@ -497,3 +483,9 @@
}
}
});
+
+Object.extend(ClientUI.controls.grid.GridHeader.prototype, {
+ sepStyleClass: "dr-sdt-hsep",
+ // internal variables
+ _columns: []
+});
\ No newline at end of file
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/ScrollableGrid.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/ScrollableGrid.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/ScrollableGrid.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -1,24 +1,7 @@
ClientUILib.declarePackage("ClientUI.controls.grid.ScrollableGrid");
-ClientUI.controls.grid.ScrollableGrid = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.ScrollableGrid',
- parent: ClientUI.controls.grid.Grid
- }
-});
-
-Object.extend(ClientUI.controls.grid.ScrollableGrid.prototype, {
- /**
- * Occured when scroll position adjusted
- */
- eventOnPostScroll: {},
-
- /**
- * Occured when sorting adjusted
- */
- eventOnPostSort: {},
-
- initialize: function(options) {
+ClientUI.controls.grid.ScrollableGrid = Class.create(ClientUI.controls.grid.Grid, {
+ initialize: function($super, options) {
this.startInitTime = (new Date()).getTime();
this.options = options;
@@ -34,9 +17,10 @@
{pane: GridLayout_Enum.FOOTER, ref: this.client_id +"_" + "GridFooterTemplate"}
];
var grid = this;
+ var s = $super;
Utils.execOnLoad(
function(){
- grid.init();
+ grid.init(s);
},
Utils.Condition.ElementPresent(grid.client_id), 100);
@@ -46,33 +30,22 @@
// initialize parent Grid
- init: function(){
+ init: function(superCtor){
// mark that grid control initialized
if(!this.isInitialized) {
this.isInitialized = true;
this.startCreateTime = (new Date()).getTime();
- ClientUI.controls.grid.ScrollableGrid.parentClass.constructor().call(this, this.client_id, this.dataModel, this.templates);
+ superCtor(this.client_id, this.dataModel, this.templates);
this.endCreateTime = (new Date()).getTime();
-
- // suspend some processing
- setTimeout(function() {
- this.startPostProcessTime = (new Date()).getTime();
-
- this.eventOnPostSort = new ClientUI.common.utils.CustomEvent('OnSort');
- this.eventOnPostScroll = new ClientUI.common.utils.CustomEvent('OnScroll');
-
- //var progress = new ClientUI.common.box.SplashBox(this.splash_id, null, 300, true);
- //this.setProgressCtrl(progress);
- Event.observe(this.eventOnSort, "on sort", this.onSorted.bindAsEventListener(this));
- if (this.options.selectionInput) {
- this.selectionManager = new ClientUI.controls.grid.SelectionManager(this);
- }
- this.element.fire("grid:initialized");
- this.endPostProcessTime = (new Date()).getTime();
- }.bind(this), 500);
- this.getBody().restoreScrollState();
+
+ Event.observe(this.element, "grid:onsort", this.onSorted.bindAsEventListener(this));
+ if (this.options.selectionInput) {
+ this.selectionManager = new ClientUI.controls.grid.SelectionManager(this);
+ }
+ this.element.fire("grid:initialized");
+ this.getBody().restoreScrollState();
}
},
@@ -84,7 +57,7 @@
[this.updateSelectionCallBack],
[function(){
this.selectionManager.restoreState();
- this.eventOnPostSort.fire(options.column, options.order);
+ this.element.fire("grid:onpostsort",{column: options.column, order:options.order});
}]);
this.updateLayout();
this.getBody().restoreScrollState();
@@ -98,7 +71,7 @@
[this.updateSelectionCallBack],
[function(){
this.selectionManager.restoreState();
- this.eventOnPostScroll.fire(this.getBody().currRange.start);
+ this.element.fire("grid:onpostsort",{start:this.getBody().currRange.start});
}]);
this.updateLayout();
@@ -113,8 +86,8 @@
ClientUILib.log(ClientUILogger.WARNING, "...Selection mng time: " + (window.loadingEndTime - window.loadingInvalidateTime));
},
- onSorted: function(sortEvent) {
- this.options.onSortAjaxUpdate(sortEvent);
+ onSorted: function(event) {
+ this.options.onSortAjaxUpdate(event.memo);
},
updateSelectionCallBack: function(argMap) {
@@ -150,12 +123,4 @@
if(this.getFooter()) {this.getFooter().hideColumn(index, frozen);}
this.updateLayout();
}
-});
-
-
-
-
-
-
-
-
+});
\ No newline at end of file
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/Selection.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/Selection.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/Selection.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -1,11 +1,4 @@
ClientUI.controls.grid.Selection = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.Selection'
- }
-
-});
-
-Object.extend(ClientUI.controls.grid.Selection.prototype, {
initialize: function() {
this.ranges = [];
},
@@ -173,13 +166,6 @@
});
ClientUI.controls.grid.Range = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.Range'
- }
-
-});
-
-Object.extend(ClientUI.controls.grid.Range.prototype, {
initialize: function(startIndex, endIndex) {
this.indexes = [startIndex, endIndex];
},
@@ -210,13 +196,6 @@
});
ClientUI.controls.grid.SelectionManager = Class.create({
- CLASSDEF: {
- name: 'ClientUI.controls.grid.SelectionManager'
- }
-
-});
-
-Object.extend(ClientUI.controls.grid.SelectionManager.prototype, {
initialize: function(grid) {
this.grid = grid;
this.selectionFlag;
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/GridLayoutManager.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/GridLayoutManager.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/GridLayoutManager.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -21,20 +21,12 @@
*
* TODO: description of control
*/
-ClientUI.layouts.GridLayoutManager = Class.create({
- CLASSDEF: {
- name: 'ClientUI.layouts.GridLayoutManager',
- parent: ClientUI.layouts.VLayoutManager
- }
-
-});
-
-Object.extend(ClientUI.layouts.GridLayoutManager.prototype, {
- initialize: function(element, parentElement, config) {
- ClientUI.layouts.GridLayoutManager.parentClass.constructor().call(this, element, parentElement);
+ClientUI.layouts.GridLayoutManager = Class.create(ClientUI.layouts.VLayoutManager, {
+ initialize: function($super, element, parentElement, config) {
+ $super(element, parentElement);
},
updateLayout: function() {
- ClientUI.layouts.LayoutManager.method("updateLayout").call(this);
+ ClientUI.layouts.LayoutManager.prototype.updateLayout.call(this);
var parentBox = this.getContainer();
if(parentBox==null) parentBox = this;
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/LayoutManager.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/LayoutManager.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/LayoutManager.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -11,27 +11,9 @@
*
* TODO: description of control
*/
-ClientUI.layouts.LayoutManager = Class.create({
- CLASSDEF: {
- name: 'ClientUI.layouts.LayoutManager',
- parent: ClientUI.common.box.Box
- },
-
- // Custom events
- /**
- * Occured before resizing
- */
- eventOnBeforeResize: {},
- /**
- * Occured after resizing
- */
- eventOnAfterResize: {}
-
-});
-
-Object.extend(ClientUI.layouts.LayoutManager.prototype, {
- initialize: function(element, parentElement) {
- ClientUI.layouts.LayoutManager.parentClass.constructor().call(this, element, parentElement);
+ClientUI.layouts.LayoutManager = Class.create(ClientUI.common.box.Box, {
+ initialize: function($super, element, parentElement) {
+ $super(element, parentElement);
// store container element to look after
this.container = parentElement;
@@ -59,7 +41,7 @@
this.updateLayout();
this.eventOnAfterResize.fire();
},
- updateLayout: function() {
+ updateLayout: function($super) {
if(this.container) {
var w = this.container.getWidth();
var h = this.container.getHeight();
@@ -70,9 +52,23 @@
this.setWidth(w);
this.setHeight(h);
}
- ClientUI.layouts.LayoutManager.parentClass.method("updateLayout").call(this);
+ $super();
},
getContainer: function() {
return this.container;
}
});
+
+Object.extend(ClientUI.layouts.LayoutManager.prototype, {
+
+ // Custom events
+ /**
+ * Occured before resizing
+ */
+ eventOnBeforeResize: {},
+ /**
+ * Occured after resizing
+ */
+ eventOnAfterResize: {}
+
+});
\ No newline at end of file
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/VLayoutManager.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/VLayoutManager.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/VLayoutManager.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -20,28 +20,20 @@
*
* TODO: description of control
*/
-ClientUI.layouts.VLayoutManager = Class.create({
- CLASSDEF: {
- name: 'ClientUI.layouts.VLayoutManager',
- parent: ClientUI.layouts.LayoutManager
- }
-
-});
-
-Object.extend(ClientUI.layouts.VLayoutManager.prototype, {
- initialize: function(element, parentElement, config) {
- ClientUI.layouts.VLayoutManager.parentClass.constructor().call(this, element, parentElement);
+ClientUI.layouts.VLayoutManager = Class.create(ClientUI.layouts.LayoutManager, {
+ initialize: function($super, element, parentElement, config) {
+ $super(element, parentElement);
if(!element || !element.id) {
this.element.id = "ClientUI_VLayoutManager" + ClientUI_layouts_VLayoutManager_idGenerator++;
}
this.registerEvents();
},
- registerEvents: function() {
- ClientUI.layouts.VLayoutManager.parentClass.method("registerEvents").call(this);
+ registerEvents: function($super) {
+ $super();
},
- destroy: function() {
- ClientUI.layouts.VLayoutManager.parentClass.method("destroy").call(this);
+ destroy: function($super) {
+ $super();
},
/*containerResize: function(event) {
ClientUI.layouts.VLayoutManager.parentClass.method("containerResize").call(this, event);
@@ -57,8 +49,8 @@
getPane: function(align) {
return this.panels[align];
},
- updateLayout: function() {
- ClientUI.layouts.VLayoutManager.parentClass.method("updateLayout").call(this);
+ updateLayout: function($super) {
+ $super();
var parentBox = this.getContainer();
if(!parentBox) parentBox = this;
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUILib.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUILib.js 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUILib.js 2007-12-14 15:51:09 UTC (rev 4858)
@@ -21,9 +21,9 @@
throw("ClientUILib requires the Prototype JavaScript framework >= 1.5.0");
// Check for Extend JavaScript library
- if((typeof Extend=='undefined') ||
- Extend.VERSION < 1.1)
- throw("ClientUILib requires the Extend JavaScript library >= 1.1");
+// if((typeof Extend=='undefined') ||
+// Extend.VERSION < 1.1)
+// throw("ClientUILib requires the Extend JavaScript library >= 1.1");
$A(document.getElementsByTagName("script")).findAll( function(s) {
return (s.src && s.src.match(/ClientUILib\.js(\?.*)?$/))
Modified: trunk/ui/scrollableDataTable/src/main/templates/org/richfaces/scrollable-data-table.jspx
===================================================================
--- trunk/ui/scrollableDataTable/src/main/templates/org/richfaces/scrollable-data-table.jspx 2007-12-14 15:21:34 UTC (rev 4857)
+++ trunk/ui/scrollableDataTable/src/main/templates/org/richfaces/scrollable-data-table.jspx 2007-12-14 15:51:09 UTC (rev 4858)
@@ -19,7 +19,6 @@
<h:scripts>
new org.ajax4jsf.javascript.PrototypeScript(),
new org.ajax4jsf.javascript.AjaxScript(),
- /org/richfaces/renderkit/html/scripts/extend/extend.js,
/org/richfaces/renderkit/html/scripts/scrollable-data-table.js
</h:scripts>
More information about the richfaces-svn-commits
mailing list