[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