[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