[richfaces-svn-commits] JBoss Rich Faces SVN: r4862 - in trunk/ui/scrollableDataTable: src/main/javascript/ClientUI/common/box and 3 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Dec 14 12:13:08 EST 2007


Author: konstantin.mishin
Date: 2007-12-14 12:13:08 -0500 (Fri, 14 Dec 2007)
New Revision: 4862

Removed:
   trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/CustomEvent.js
Modified:
   trunk/ui/scrollableDataTable/generatescript.xml
   trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/ScrollableBox.js
   trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/Utils.js
   trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DataModel.js
   trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js
   trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/ScrollableGrid.js
   trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/LayoutManager.js
Log:
RF-1592

Modified: trunk/ui/scrollableDataTable/generatescript.xml
===================================================================
--- trunk/ui/scrollableDataTable/generatescript.xml	2007-12-14 17:01:43 UTC (rev 4861)
+++ trunk/ui/scrollableDataTable/generatescript.xml	2007-12-14 17:13:08 UTC (rev 4862)
@@ -27,7 +27,6 @@
 						<file name="${resources-dir}/ClientUI/common/utils/Validators.js"/>
 						<file name="${resources-dir}/ClientUI/common/box/Box.js"/>
 						<file name="${resources-dir}/ClientUI/common/box/InlineBox.js"/>
-						<file name="${resources-dir}/ClientUI/common/utils/CustomEvent.js"/>
 						<file name="${resources-dir}/ClientUI/common/box/ScrollableBox.js"/>
 						<file name="${resources-dir}/ClientUI/controls/grid/DataModel.js"/>
 						<file name="${resources-dir}/ClientUI/controls/grid/ArrayDataModel.js"/>
@@ -61,7 +60,6 @@
 					<file name="/ClientUI/common/utils/Validators.js"/>
 					<file name="/ClientUI/common/box/Box.js"/>
 					<file name="/ClientUI/common/box/InlineBox.js"/>
-					<file name="/ClientUI/common/utils/CustomEvent.js"/>
 					<file name="/ClientUI/common/box/ScrollableBox.js"/>
 					<file name="/ClientUI/controls/grid/DataModel.js"/>
 					<file name="/ClientUI/controls/grid/ArrayDataModel.js"/>

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 17:01:43 UTC (rev 4861)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/box/ScrollableBox.js	2007-12-14 17:13:08 UTC (rev 4862)
@@ -6,7 +6,6 @@
 ClientUILib.declarePackage("ClientUI.common.box.ScrollableBox");
 
 ClientUILib.requireClass("ClientUI.common.box.Box");
-ClientUILib.requireClass("ClientUI.common.utils.CustomEvent");
 
 /**
  * This class target to manage scrollable box object.
@@ -18,10 +17,6 @@
 		$super(element, parentElement);
 		this.element.setStyle({overflow: 'auto'});
 		
-		// Create custom event producers
-		this.eventHScroll = new ClientUI.common.utils.CustomEvent('OnHScroll');
-		this.eventVScroll = new ClientUI.common.utils.CustomEvent('OnVScroll');
-
 		this.eventOnScroll = this.scrollContent.bindAsEventListener(this);
 		Event.observe(this.element, 'scroll', this.eventOnScroll);
 	},
@@ -34,13 +29,13 @@
 		// process horizontal scrolling
 		if(this.scrollLeft!==this.getViewportScrollX()) {
 			this.scrollLeft = this.getViewportScrollX();
-			this.eventHScroll.fire(this.getViewportScrollX());
+			this.element.fire("grid:onhcroll", {pos:this.getViewportScrollX()});
 		}
 		
 		// process vertical scrolling		
 		if(this.scrollTop!==this.getViewportScrollY()) {
 			this.scrollTop = this.getViewportScrollY();
-			this.eventVScroll.fire(this.getViewportScrollY());
+			this.element.fire("grid:onvcroll", {pos:this.getViewportScrollY()});
 		}
 	},
 	updateLayout: function($super) {
@@ -117,16 +112,4 @@
 	    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

Deleted: 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 17:01:43 UTC (rev 4861)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/CustomEvent.js	2007-12-14 17:13:08 UTC (rev 4862)
@@ -1,102 +0,0 @@
-/**
- * CustomEvent.js		Date created: 6.04.2007
- * Copyright (c) 2007 Exadel Inc.
- * @author Denis Morozov <dmorozov at exadel.com>
- */
-ClientUILib.declarePackage("ClientUI.common.utils");
-
-if(!ClientUI.common.utils.CustomEvent) {
-ClientUILib.declarePackage("ClientUI.common.utils.CustomEvent");
-
-ClientUI.common.utils.CustomEvent = Class.create({
-	// Constructor
-	initialize: function(event) {
-		this._eventName = event;
-		// WARNING: If too many events will be in system with dynamic 
-		// observation/stop observation than integer idGenerator can be overflowed
-		this._id = ClientUI_common_utils_CustomEvent_idGenerator++;
-	},
-	getName: function() {
-		return this._eventName;
-	},
-	getId: function() {
-		return this._id;
-	},
-	
-	// Fire this event and notifies the subscribers.
-	fire: function() {
-        if (!Event.subscribers || !Event.subscribers.length) {
-            return true;
-        }
-
-		var id = this.getId();
-		var subscribers = Event.subscribers;
-		var subscribersToNotify = Event.subscribers.findAll( 
-			function(subscriber) {
-				return subscriber.event.getId()===id; 
-			});
-
-		var args = $A(arguments);
-		subscribersToNotify.unbreakableEach(function(subscriber) {
-			subscriber.callback.apply(subscriber.callback, args);
-		});
-	}
-});
-
-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) {
-		var customEvent = element;
-		if (!this.subscribers) {
-			this.subscribers = [];	
-		}
-		
-		this.subscribers.push({
-			event: customEvent,
-			desc: name,
-			callback: observer
-		});
-	}
-	else {
-		Event._observe(element, name, observer, useCapture);	
-	}
-};
-
-Event._stopObserving = Event.stopObserving;
-Event.stopObserving  = function( element, name, observer, useCapture ) {
-	if(element && element.getName && element.getId) {
-		var customEvent = element;
-		if (this.subscribers && this.subscribers.length && this.subscribers.length!==0) {
-			var id = customEvent.getId();
-			this.subscribers = this.subscribers.select(
-				function(subscriber) {
-					return subscriber.event.getId()!==id; 
-				});
-		}
-	}
-	else {
-		Event._stopObserving(element, name, observer, useCapture);	
-	}
-};
-
-Event._unloadCache = Event.unloadCache; 
-Event.unloadCache = function() {
-    if (Event.subscribers) {
-	    for (var i = 0, length = Event.subscribers.length; i < length; i++) {
-	      Event.stopObserving.apply(this, Event.subscribers[i]);
-	      Event.subscribers[i][0] = null;
-	    }
-	    Event.subscribers = false;
-	}
-	Event._unloadCache();
-};
-  
-var ClientUI_common_utils_CustomEvent_idGenerator = 0;
-
-};
- 
\ No newline at end of file

Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/Utils.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/Utils.js	2007-12-14 17:01:43 UTC (rev 4861)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/common/utils/Utils.js	2007-12-14 17:13:08 UTC (rev 4862)
@@ -255,7 +255,7 @@
 				}, 100);
 			}
 	
-			dataModel.eventDataReady.fire(localOptions);
+			grid.getBody()._onDataReady(localOptions);
 		}	
 	}
 };

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 17:01:43 UTC (rev 4861)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/DataModel.js	2007-12-14 17:13:08 UTC (rev 4862)
@@ -5,8 +5,6 @@
  */
 ClientUILib.declarePackage("ClientUI.controls.grid.DataModel");
 
-ClientUILib.requireClass("ClientUI.common.utils.CustomEvent");
-
 /*
  * DataModel.js - Base datamodel class for grid control 
  * by Denis Morozov <dmorozov at exadel.com> distributed under the BSD license. 
@@ -16,7 +14,6 @@
 	
 	initialize: function() {
 		// constructor
-		this.eventDataReady = new ClientUI.common.utils.CustomEvent('DataModel::OnDataReady');
 	},	
 	
 	// interface method
@@ -38,9 +35,4 @@
 	getRequestDelay: function() {
 		return 1000;
 	}
-});
-
-Object.extend(ClientUI.controls.grid.DataModel.prototype, {
-	eventDataReady: {}
-});
-			
+});		

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 17:01:43 UTC (rev 4861)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js	2007-12-14 17:13:08 UTC (rev 4862)
@@ -24,26 +24,23 @@
 		$super(template);
 
 		// declare event listeners
-		this._eventOnHScroll = this._onContentHScroll.bind(this);
-		this._eventOnVScroll = this._onContentVScroll.bind(this);
-		this._eventOnDataReady = this._onDataReady.bind(this);
+		this._eventOnHScroll = this._onContentHScroll.bindAsEventListener(this);
+		this._eventOnVScroll = this._onContentVScroll.bindAsEventListener(this);
 		
 		this.createControl(template);
 		this.registerEvents();
 	},
 	registerEvents: function() {
-		Event.observe(this.scrollBox.eventHScroll, "grid body hscroll", this._eventOnHScroll);
-		Event.observe(this.scrollBox.eventVScroll, "grid body vscroll", this._eventOnVScroll);
-		Event.observe(this.grid.dataModel.eventDataReady, "grid data is loaded", this._eventOnDataReady);
+		Event.observe(this.scrollBox.element, "grid:onhcroll", this._eventOnHScroll);
+		Event.observe(this.scrollBox.element, "grid:onvcroll", this._eventOnVScroll);
 	},
 	destroy: function() {
-		Event.stopObserving(this.scrollBox.eventHScroll, "grid body hscroll", this._eventOnHScroll);
-		Event.stopObserving(this.scrollBox.eventVScroll, "grid body vscroll", this._eventOnVScroll);
-		Event.stopObserving(this.grid.dataModel.eventDataReady, "grid data is loaded", this._eventOnDataReady);
+		Event.stopObserving(this.scrollBox.element, "grid:onhcroll", this._eventOnHScroll);
+		Event.stopObserving(this.scrollBox.element, "grid:onvcroll", this._eventOnVScroll);
 	},
 	// event listeners
-	_onContentHScroll: function(xpos) {
-		this.grid.adjustScrollPosition(xpos);
+	_onContentHScroll: function(event) {
+		this.grid.adjustScrollPosition(event.memo.pos);
 	},
 	_onDataReady: function(options) {
 		// load rows data		
@@ -53,11 +50,11 @@
 		
 		window.loadingInvalidateTime = (new Date()).getTime();
 	},
-	_onContentVScroll: function(ypos) {
+	_onContentVScroll: function(event) {
 		this.helpObject1.moveToY(this.sizeBox.getHeight()+ this.defaultRowHeight + 5);
 		this.helpObject2.moveToY(this.sizeBox.getHeight()+ this.defaultRowHeight + 5);
-		this.setScrollPos(ypos);
-		this.adjustDataPosition(ypos);
+		this.setScrollPos(event.memo.pos);
+		this.adjustDataPosition(event.memo.pos);
 	},
 	createControl: function(template) {
 		this.scrollInput = $(this.gridId + ":si");

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 17:01:43 UTC (rev 4861)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/ScrollableGrid.js	2007-12-14 17:13:08 UTC (rev 4862)
@@ -71,7 +71,7 @@
 								[this.updateSelectionCallBack],
 								[function(){
 									this.selectionManager.restoreState();
-									this.element.fire("grid:onpostsort",{start:this.getBody().currRange.start});
+									this.element.fire("grid:onpostscroll",{start:this.getBody().currRange.start});
 								}]);								
 								
 		this.updateLayout();

Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/LayoutManager.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/LayoutManager.js	2007-12-14 17:01:43 UTC (rev 4861)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/layouts/LayoutManager.js	2007-12-14 17:13:08 UTC (rev 4862)
@@ -23,10 +23,6 @@
 		// declare event listeners
 		this.eventContainerResize = this.containerResize.bindAsEventListener(this);
 		
-		// Create custom event producers
-		this.eventOnBeforeResize = new ClientUI.common.utils.CustomEvent('OnBeforeResize');
-		this.eventOnAfterResize = new ClientUI.common.utils.CustomEvent('OnAfterResize');
-		
 		this.registerEvents();
 	},
 	registerEvents: function() {
@@ -36,10 +32,7 @@
 			Event.stopObserving(window, "resize", this.eventContainerResize);
 	},
    	containerResize: function(event) {
-	  	//Event.stop(event);
-	  	this.eventOnBeforeResize.fire();
 	  	this.updateLayout();
-	  	this.eventOnAfterResize.fire();
 	},
 	updateLayout: function($super) {
 		if(this.container) {
@@ -57,18 +50,4 @@
 	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




More information about the richfaces-svn-commits mailing list