[Mapbender-commits] r5073 - trunk/mapbender/lib

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Fri Dec 4 10:20:31 EST 2009


Author: kmq
Date: 2009-12-04 10:20:30 -0500 (Fri, 04 Dec 2009)
New Revision: 5073

Modified:
   trunk/mapbender/lib/resultGeometryListController.js
Log:


Modified: trunk/mapbender/lib/resultGeometryListController.js
===================================================================
--- trunk/mapbender/lib/resultGeometryListController.js	2009-12-03 20:44:20 UTC (rev 5072)
+++ trunk/mapbender/lib/resultGeometryListController.js	2009-12-04 15:20:30 UTC (rev 5073)
@@ -1,8 +1,7 @@
-
 var ResultGeometryListController = function(table){
 
 	// The WFSConfId this List is currently configured with
-	var WFSConfId = null;
+	var WFSConf = null;
 
 	// our model
 	var model = null;
@@ -11,12 +10,14 @@
 	var datatable = null;
 	
 	// a jquery object referencing the underlying html table we're using
-	var table = table;
+	var table = table;//table;$("#"+opid).append("<table></table>");;
 
 	// the columns that should be displayed
 	var columns = [];
 
+	me = this;
 
+
 	/*
 	 * Method: addFeature
 	 * Description: adds a Feature to the Model
@@ -28,7 +29,7 @@
 			// or throw an exception?
 			return false;
 		}
-		var result = this.model.addFeature(feature);
+		var result = me.model.addFeature(feature);
 	};
 
 	/*
@@ -38,7 +39,7 @@
 	 * geoJSON - a geoJSON featureCollection
 	*/
 	this.addFeatureCollection = function(geoJSON){
-		var result = model.addFeatureCollection(geoJSON);
+		var result = me.model.addFeatureCollection(geoJSON);
 	};
 
 	/*
@@ -51,16 +52,24 @@
 	// featureEntryCollection is an array of {index: <index>, feature: <feature>}
 	// where <index> is the index in the model, and feature a featuireCollection
 		// only add feature.properties enabled by wfsConf
-		for (featureEntry in featureEntryCollection){
+		for (featureIndex in featureEntryCollection.featureCollection){
 			//create array from featureEntries.feature here, using  wfsconf
-			var rowData = ["test"]//featureEntry.getValue("firstname");
+		
+			modelIndex = featureEntryCollection.featureCollection[featureIndex].index;
+			var rowData = [];
+			for (ci in columns){
+				rowData.push(me.model.getFeatureProperty(modelIndex,columns[ci]));
+			}
 
 			// fnAddData returns an array of indices
 			var index = datatable.fnAddData(rowData);
 
 			// this is ok because we only added a single row
 			var rowNode = datatable.fnGetNodes(index[0]);
-			$.data(rowNode,"modelindex",featureEntry.index);
+			$(rowNode).data("modelindex",modelIndex);
+			$(rowNode).click((function(){
+				var i = $(this).data("modelindex");
+			}));
 		}
 	};
 	
@@ -68,7 +77,7 @@
 	// from where is this called ?
 	this.deleteFeature = function(DOMTableRow){
 		var modelIndex = $.data(DOMTableRow,"modelIndex");
-		this.model.deleteFeature(modelIndex);
+		me.model.deleteFeature(modelIndex);
 	 };
 
 	//called to config deletion was successfull
@@ -77,50 +86,59 @@
 
 	//updating
 
-
 	// clear = reinitialize + setting WFSConf to same value again ?
-
 	//misc
-	this.setWFSconf = function(WFSConfId) {
-		if(WFSConfId != this.WFSConfId){
-			_reinitialize();
-			this.WFSConfId = WFSConfId;
+	this.setWFSconf = function(WFSConf) {
+		if(WFSConf != this.WFSConf){
+			this.WFSConf = WFSConf;
+			this.reinitialize();
 			
 		}
 	};
 
-	var getColumns  = function(WfsConfId){
-		return ["TESTLABEL"];
-		var currentWfsConf = global_wfsConfObj[currentWfsConfId];
+	var getColumns  = function(WfsConf){
+		if (!WfsConf) { return []; }
+		var currentWfsConf = WfsConf;
 		var labelArray = [];
 		for (var j = 0 ; j < currentWfsConf.element.length ; j++) {
 			if(currentWfsConf.element[j].f_show == 1 && currentWfsConf.element[j].f_label!==''){
 				var labelPos = currentWfsConf.element[j].f_respos;
-				labelArray[labelPos] = currentWfsConf.element[j].f_label;
+				labelArray[labelPos] = currentWfsConf.element[j].element_name;
 			}
 		}
-		return labelArray;
+		resultArray = [];
+		for (index in labelArray){
+			if (labelArray[index]  !== undefined){
+				resultArray.push(labelArray[index]);
+			}
+		}
+		return resultArray;
 	};
-
-	var reinitialize = function(){
 	
-		// remove all the tables children
-		//$("*",this.table).remove();
-		if( this.datatable){ this.datatable.dnClearTablea();}
-		
+	this.clear = function () {
+		if (datatable) {
+			me.model.deleteFeatureCollection();	
+		}
+	};
 
-		// initialize new
-		model = new ResultGeometryListModel();
+	var clear_callback = function(){
+		datatable.fnClearTable();
+	};
 
-		model.events.added.register(addFeatureCollection_callback);
-		model.events.deleted.register();
-		model.events.updated.register();
-		model.events.cleared.register(reinitialize);
-
-
+	this.reinitialize = function(){
+	
 		
 		//create theads, and variable "labels" according to wfsConf
-		this.columns = getColumns(this.WFSConfId);
+		columns = getColumns(this.WFSConf);
+		//apply columns to table
+		$("thead tr th",table).remove();
+		theads = "";
+		for(i in columns){
+			theads += "<th>"+ columns[i] +"</th>";
+			
+		}
+		$("thead tr",table).append(theads);
+
 		//
 		// This block should optionally add the required elements in a table
 		//var heads = $("<thead></thead>");
@@ -134,8 +152,14 @@
 
 
 	};
-	reinitialize();
 	
+
+	// initialize new
+	me.model = new ResultGeometryListModel();
+	me.model.events.added.register(addFeatureCollection_callback);
+	me.model.events.deleted.register();
+	me.model.events.updated.register();
+	me.model.events.cleared.register(clear_callback);
+
+	
 };
-
-//Mapbender.modules[options.id] = $.extend(new resultGemoetryListController(options), Mapbender.modules[options.id])



More information about the Mapbender_commits mailing list