You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xap-commits@incubator.apache.org by jm...@apache.org on 2007/03/07 02:27:01 UTC

svn commit: r515427 - in /incubator/xap/trunk/codebase/src/xap/data: DataFramework.js DataNamespaceHandler.js controller/Binding.js controller/BindingResolver.js datasource/AbstractDataSet.js datasource/AbstractDataSource.js datasource/ArrayDataSet.js

Author: jmargaris
Date: Tue Mar  6 18:27:00 2007
New Revision: 515427

URL: http://svn.apache.org/viewvc?view=rev&rev=515427
Log:
reverting changes that broke data binding examples

Modified:
    incubator/xap/trunk/codebase/src/xap/data/DataFramework.js
    incubator/xap/trunk/codebase/src/xap/data/DataNamespaceHandler.js
    incubator/xap/trunk/codebase/src/xap/data/controller/Binding.js
    incubator/xap/trunk/codebase/src/xap/data/controller/BindingResolver.js
    incubator/xap/trunk/codebase/src/xap/data/datasource/AbstractDataSet.js
    incubator/xap/trunk/codebase/src/xap/data/datasource/AbstractDataSource.js
    incubator/xap/trunk/codebase/src/xap/data/datasource/ArrayDataSet.js

Modified: incubator/xap/trunk/codebase/src/xap/data/DataFramework.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/data/DataFramework.js?view=diff&rev=515427&r1=515426&r2=515427
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/data/DataFramework.js (original)
+++ incubator/xap/trunk/codebase/src/xap/data/DataFramework.js Tue Mar  6 18:27:00 2007
@@ -20,7 +20,6 @@
 Xap.provide("xap.data.DataFramework");
 
 Xap.require("xap.data.controller.Binding") ;
-Xap.require("xap.data.controller.BindingResolver") ;
 Xap.require("xap.session.Container") ;
 Xap.require("xap.data.controller.BindingType") ;
 Xap.require("xap.resolver.ResolutionInfo");
@@ -176,7 +175,6 @@
 	/* Binding */
 	var binding = xap.data.controller.Binding.createIteratorBinding(
 								this._bindingResolver.getContextStack(),
-								this.getDataSourceContainer(),
 								select,
 								bindString,
 								this._session, 
@@ -190,7 +188,7 @@
 
 xap.data.DataFramework.prototype.bind = function( stringOrBinding){
 	if ( typeof stringOrBinding == "string"){
-		var binding =  this._bindingResolver.createBindingFromParameterString(stringOrBinding, this.getDataSourceContainer(), this.getFormatterContainer());
+		var binding =  this._bindingResolver.createBindingFromParameterString(stringOrBinding);
 		return this.bindBinding(binding);	
 	}
 	else{

Modified: incubator/xap/trunk/codebase/src/xap/data/DataNamespaceHandler.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/data/DataNamespaceHandler.js?view=diff&rev=515427&r1=515426&r2=515427
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/data/DataNamespaceHandler.js (original)
+++ incubator/xap/trunk/codebase/src/xap/data/DataNamespaceHandler.js Tue Mar  6 18:27:00 2007
@@ -21,7 +21,6 @@
 Xap.require("xap.xml.ParserFactory");
 Xap.require("xap.taghandling.PluginDocumentHandler");
 Xap.require("xap.data.controller.BindingResolver") ;	
-Xap.require("xap.data.DataFramework");
 
 /** 
  * Creates a new DataNamespaceHandler. DataNamespaceHandler is typically created

Modified: incubator/xap/trunk/codebase/src/xap/data/controller/Binding.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/data/controller/Binding.js?view=diff&rev=515427&r1=515426&r2=515427
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/data/controller/Binding.js (original)
+++ incubator/xap/trunk/codebase/src/xap/data/controller/Binding.js Tue Mar  6 18:27:00 2007
@@ -20,6 +20,7 @@
 Xap.provide("xap.data.controller.Binding");
 
 Xap.require("xap.util.TypeUtils");
+Xap.require("xap.data.DataFramework");
 Xap.require("xap.data.controller.BindingType");
 Xap.require("xap.data.controller.AttributeValueLocation");
 Xap.require("xap.util.ArrayHelper");
@@ -53,18 +54,14 @@
 	return binding;	
 }
 
-
-/**
- *
- **/
 xap.data.controller.Binding.createIteratorBinding = 
-		function(contextStack, dataSourceContainer, select, name, session, bindingType, defaultValue) {
+		function(contextStack, select, name, session, bindingType, defaultValue){
 	var binding = new xap.data.controller.Binding();	
 	binding._select = select;
 	binding._session = session;
 	binding._bindingType = bindingType;
 	if (name && name.length > 0) {
-		binding._source = dataSourceContainer.get(name);
+		binding._source = xap.data.DataFramework.getDataService(session).getDataSourceContainer().get(name);
 		if (!binding._source) {
 			// Find the ancestor iterator context with the
 			// specified name, since there was not data source with

Modified: incubator/xap/trunk/codebase/src/xap/data/controller/BindingResolver.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/data/controller/BindingResolver.js?view=diff&rev=515427&r1=515426&r2=515427
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/data/controller/BindingResolver.js (original)
+++ incubator/xap/trunk/codebase/src/xap/data/controller/BindingResolver.js Tue Mar  6 18:27:00 2007
@@ -18,13 +18,11 @@
  */
 
 Xap.provide("xap.data.controller.BindingResolver");
-
 Xap.require("xap.session.ClientSession");
+Xap.require("xap.data.DataFramework");
 Xap.require("xap.data.bridge.XmlDataTokens");
 Xap.require("xap.util.EscapeSyntaxParser") ;
 Xap.require("xap.data.controller.ContextStack") ;
-Xap.require("xap.data.controller.Binding") ;
-
 /**
  * The binding resolver contains helper methods which allow creation
  * of binding objects from binding declarations. This class also maintains
@@ -93,14 +91,13 @@
  * @return {Binding}
  * @throws EscapeSyntaxException, DataControllerException 
 **/
-xap.data.controller.BindingResolver.prototype.createBindingFromParameterString = function (value, dataSourceContainer, formatterContainer) {
-
+xap.data.controller.BindingResolver.prototype.createBindingFromParameterString = function (value) {
+	/*DataService*/
+	var dataService = xap.data.DataFramework.getDataService(this._session);
 	/*Formatter*/
 	var formatter = null;
-
 	/*BindingType*/
 	var bindType = xap.data.controller.BindingType.ONE_TIME;
-
 	/*String*/
 	var select = null;
 
@@ -157,7 +154,7 @@
 				}
 				if (xap.data.bridge.XmlDataTokens.FORMATTER == parameterName ) {
 					if (parameterValue != null) {
-						formatter = formatterContainer.get(parameterValue);
+						formatter = dataService.getFormatterContainer().get(parameterValue);
 					}
 				} else {
 					if (xap.data.bridge.XmlDataTokens.BINDING_TYPE == parameterName ) {
@@ -205,7 +202,7 @@
 		curToken += curChar ;
 	}
 	/*Binding*/
-	var binding = xap.data.controller.Binding.createIteratorBinding(this.getContextStack(), dataSourceContainer, select, dataSource, this._session, bindType, defaultValue);
+	var binding = xap.data.controller.Binding.createIteratorBinding(this.getContextStack(), select, dataSource, this._session, bindType, defaultValue);
 	if (formatter != null) {
 		binding.setFormatter(formatter);
 	}

Modified: incubator/xap/trunk/codebase/src/xap/data/datasource/AbstractDataSet.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/data/datasource/AbstractDataSet.js?view=diff&rev=515427&r1=515426&r2=515427
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/data/datasource/AbstractDataSet.js (original)
+++ incubator/xap/trunk/codebase/src/xap/data/datasource/AbstractDataSet.js Tue Mar  6 18:27:00 2007
@@ -19,7 +19,6 @@
 
 Xap.provide("xap.data.datasource.AbstractDataSet"); 
 
-Xap.require("xap.data.datasource.ArrayDataSet");
 
 
 /**
@@ -46,15 +45,15 @@
  * 
  */
 xap.data.datasource.AbstractDataSet = function(query, source, data) {
-	xap.data.datasource.ArrayDataSet.call(this, query, source, data);
+	/** @private */
+	this._data = data ;
+	/** @private */
+	this._query = query ;
+	/** @private */
+	this._dataSource = source ;
 };
 
 
-//SETUP SUBCLASS does this but we need this for doc to pick it up correctly
-xap.data.datasource.AbstractDataSet.prototype = new xap.data.datasource.ArrayDataSet();
-Xap.setupClassAsSubclassOf("xap.data.datasource.AbstractDataSet", "xap.data.datasource.ArrayDataSet");
-
-
 /**
  * A factory method that returns an AbstractDataSet subclasses based on the type
  * of data passed in. This will currently only handle array-based data
@@ -84,6 +83,53 @@
 	}
 };
 
+/**
+ * Returns the query string that produced this data set.
+ * @return {String} The query string that produced this data set.
+ * 
+ */
+xap.data.datasource.AbstractDataSet.prototype.getQuery = function () {
+	return this._query;
+};
+
+
+/**
+ * Returns the data source that produced this data set.
+ * @return {xap.data.datasource.AbstractDataSource} The data source that 
+ * produced this data set.
+ * 
+ */
+xap.data.datasource.AbstractDataSet.prototype.getDataSource = function () {
+	return this._dataSource;
+};
+
 
+//METHODS TO IMPLEMENT IN SUBCLASS
+
+
+/**
+ * Returns the size of the data set. Subclasses should override this to 
+ * return the correct size.
+ * 
+ * @return {int} Always returns zero.
+ */
+xap.data.datasource.AbstractDataSet.prototype.size = function () {
+	return 0;
+};
+
+
+/**
+ * Returns the data at the specified index. This base class method returns null;
+ * subclasses should override to return the proper value.
+ * 
+ * @param {int} index The index of that data to return.
+ *  @return {int} Always returns null.
+ */
+xap.data.datasource.AbstractDataSet.prototype.getData = function (index) {
+	return null;
+};
 
+//At the bottom to get around some circular reference issues with factory method needing
+//this class
+Xap.require("xap.data.datasource.ArrayDataSet") ;
 

Modified: incubator/xap/trunk/codebase/src/xap/data/datasource/AbstractDataSource.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/data/datasource/AbstractDataSource.js?view=diff&rev=515427&r1=515426&r2=515427
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/data/datasource/AbstractDataSource.js (original)
+++ incubator/xap/trunk/codebase/src/xap/data/datasource/AbstractDataSource.js Tue Mar  6 18:27:00 2007
@@ -25,8 +25,6 @@
 Xap.require("xap.util.ResourceDictionary");
 Xap.require("xap.util.ArrayHelper");
 Xap.require("xap.data.datasource.QueryRecord") ;
-Xap.require("xap.data.datasource.AbstractDataSet") ;
-
 
 /**
  * @fileoverview 
@@ -64,7 +62,7 @@
 	this._asynchronousDataSourceListeners = [];
 	/** @private */
 	this._dataChangeListeners = [];
-};
+}
 
 
 
@@ -78,7 +76,7 @@
 	this._postponedQueries = [];
 	this._asynchronousDataSourceListeners = [];
 	this._dataChangeListeners = [];
-};
+}
 
 
 /**
@@ -331,9 +329,9 @@
  * @param {xap.data.controller.ContextFrame} An optional context object for nested iteration.
  * @return The result of the query.
  */
-xap.data.datasource.AbstractDataSource.prototype.executeQuery =function(queryString , context) {
-	// empty
-};
+xap.data.datasource.AbstractDataSource.prototype.executeQuery =function(queryString , context){
+
+}
 
 /**
  * Subclasses should override this method to support asynchronous loading of data.
@@ -343,9 +341,7 @@
  * @return The content of the XMLHttpRequest object parsed into an object suitable to the source object
  * of the data source.
  */
-xap.data.datasource.AbstractDataSource.prototype.responseToDataSource = function(response ) {
-	// empty
-};
+xap.data.datasource.AbstractDataSource.prototype.responseToDataSource = function(response){}
 
 
 /**
@@ -439,8 +435,7 @@
 xap.data.datasource.AbstractDataSource.prototype.addPostponedQuery = function (query, context, listener, isDataSetQuery) {
 	var queryRecord = new xap.data.datasource.QueryRecord(query, context, listener, isDataSetQuery);
 	this._postponedQueries.push(queryRecord);
-};
-
+}
 /**
  * @private
  * Runs all the queries in a given array of queries.
@@ -457,8 +452,7 @@
 			this.getLog().error("Error executing databound query:" + rec.getQuery(), e);
 		}
 	}
-};
-
+}
 
 /**
  * Returns the logger used to log DataSource issues.

Modified: incubator/xap/trunk/codebase/src/xap/data/datasource/ArrayDataSet.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/data/datasource/ArrayDataSet.js?view=diff&rev=515427&r1=515426&r2=515427
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/data/datasource/ArrayDataSet.js (original)
+++ incubator/xap/trunk/codebase/src/xap/data/datasource/ArrayDataSet.js Tue Mar  6 18:27:00 2007
@@ -18,7 +18,7 @@
  */
 
 Xap.provide("xap.data.datasource.ArrayDataSet");
-
+Xap.require("xap.data.datasource.AbstractDataSet") ;
 
 /**
  * @fileoverview 
@@ -41,74 +41,37 @@
  * @see xap.data.datasource.AbstractDataSet#getDataSet
  * 
  */
-xap.data.datasource.ArrayDataSet = function (query, dataSource, data) {
-	/** @private */
-	this._query = query ;
-	/** @private */
-	this._dataSource = dataSource ;
-	/** @private */
-	this._data = data ;
+xap.data.datasource.ArrayDataSet = function (query, source, dataArray) {
+	xap.data.datasource.AbstractDataSet.call(this, query, source, dataArray);
 };
 
+//needed for doc even though the below handles this
+xap.data.datasource.ArrayDataSet.prototype = new xap.data.datasource.AbstractDataSet();
 
-/**
- * Returns the query string that produced this data set.
- * @return {String} The query string that produced this data set.
- * 
- */
-xap.data.datasource.ArrayDataSet.prototype.getQuery = function () {
-	return this._query;
-};
-
-
-/**
- * Returns the data source that produced this data set.
- * @return {xap.data.datasource.AbstractDataSource} The data source that 
- * produced this data set.
- * 
- */
-xap.data.datasource.ArrayDataSet.prototype.getDataSource = function () {
-	return this._dataSource;
-};
-
-
-/**
- * Returns the data at the specified index. This base class method returns null;
- * subclasses should override to return the proper value.
- * 
- *  @param {int} index The index of that data to return.
- *  @return Data object
- */
-xap.data.datasource.ArrayDataSet.prototype.getData = function (index) {
-
-	if(this._data instanceof Array) {
-		if(index instanceof Number) {
-			return this._data[index];
-		} else {
-			return this._data[0];
-		}
-	}
-	
-	return  this._data;
-};
 
+/**
+ * Returns the size of the data set.
+ * 
+ * @return {int} The size of the data set.
+ */
+xap.data.datasource.ArrayDataSet.prototype.size = function () {
+	return this._data.length;
+};
 
 
-/**
- * Returns the size of the data set. Subclasses should override this to 
- * return the correct size.
- * 
- * @return {int}.
- */
-xap.data.datasource.ArrayDataSet.prototype.size = function () {
-	
-	if( ! this._data ) { 
-		return 0; 
+/**
+ * Returns the data at the specified index.
+ * 
+ * @param {int} index The index of that data to return.
+ * @return The data at the given index.
+ */
+xap.data.datasource.ArrayDataSet.prototype.getData = function (index) {
+	// Have to be careful here; if you were to use "!index",
+	// that would do damage if the index were 0....
+	if( (typeof index=="undefined") || index==null){
+		return null;
 	}
-	
-	if(this._data instanceof Array) {
-		return this._data.length;
+	else {
+		return this._data[index] ;
 	}
-	
-	return 1;
 };