WebServiceForm.js
Summary
No overview generated for 'WebServiceForm.js'
mapbuilder.loadScript(baseDir+"/widget/WidgetBaseXSL.js");
function WebServiceForm(widgetNode, model) {
WidgetBaseXSL.apply(this,new Array(widgetNode, model));
this.formElements = new Object();
var requestStylesheet = widgetNode.selectSingleNode("mb:requestStylesheet");
if (requestStylesheet) {
this.requestStylesheet = new XslProcessor(requestStylesheet.firstChild.nodeValue,model.namespace);
}
var webServiceUrl = widgetNode.selectSingleNode("mb:webServiceUrl");
if (webServiceUrl) {
this.webServiceUrl = webServiceUrl.firstChild.nodeValue;
}
this.submitForm = function() {
this.webServiceForm = document.getElementById(this.formName);
if( this.webServiceForm == null ) {
this.webServiceForm = document.getElementById("webServiceForm_form");
}
if( this.webServiceForm == null ) {
return;
}
var httpPayload = new Object();
httpPayload.method = this.targetModel.method;
httpPayload.url = this.webServiceUrl;
if (httpPayload.method.toLowerCase() == "get") {
httpPayload.url = this.webServiceForm.action + "?";
for (var i=0; i<this.webServiceForm.elements.length; ++i) {
var element = this.webServiceForm.elements[i];
webServiceUrl += element.name + "=" + element.value + "&";
this.formElements[element.name] = element.value;
}
mbDebugMessage(this, httpPayload.url);
this.targetModel.newRequest(this.targetModel,httpPayload);
} else {
for (var i=0; i<this.webServiceForm.elements.length; ++i) {
var element = this.webServiceForm.elements[i];
this.formElements[element.name] = element.value;
}
this.requestStylesheet.setParameter("resourceName", this.formElements["feature"])
this.requestStylesheet.setParameter("fromDateField", this.formElements["fromDateField"])
this.requestStylesheet.setParameter("toDateField", this.formElements["toDateField"])
var layer = this.requestStylesheet.transformNodeToObject(this.model.doc);
if (this.debug) mbDebugMessage(this, "Transformed: "+ (new XMLSerializer()).serializeToString(layer));
this.namespace = "xmlns:wmc='http://www.opengis.net/context' xmlns:ows='http://www.opengis.net/ows' xmlns:ogc='http://www.opengis.net/ogc' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:gml='http://www.opengis.net/gml' xmlns:wfs='http://www.opengis.net/wfs'";
Sarissa.setXpathNamespaces(layer, this.namespace);
var getFeature = layer.selectSingleNode("//wfs:GetFeature")
httpPayload.postData = (new XMLSerializer()).serializeToString( getFeature);
mbDebugMessage(this, "httpPayload.postData:"+ httpPayload.postData);
this.targetModel.wfsFeature = layer.childNodes[0];
if (this.debug) mbDebugMessage(this, "wfsFeature = "+ (new XMLSerializer()).serializeToString(this.targetModel.wfsFeature));
this.targetModel.newRequest(this.targetModel,httpPayload);
}
}
this.handleKeyPress = function(event) {
var keycode;
var target;
if (event){
keycode=event.which;
target=event.currentTarget;
}else{
keycode=window.event.keyCode;
target=window.event.srcElement.form;
}
if (keycode == 13) { //enter key
target.parentWidget.submitForm();
return false;
}
}
this.postPaint = function(objRef) {
objRef.webServiceForm = document.getElementById(objRef.formName);
if( this.webServiceForm == null ) {
this.webServiceForm = document.getElementById("webServiceForm_form");
}
objRef.webServiceForm.parentWidget = objRef;
objRef.webServiceForm.onkeypress = objRef.handleKeyPress;
}
this.formName = "WebServiceForm_" + mbIds.getId();
this.stylesheet.setParameter("formName", this.formName);
this.prePaint = function(objRef) {
for (var elementName in objRef.formElements) {
objRef.stylesheet.setParameter(elementName, objRef.formElements[elementName]);
}
}
this.setAoiParameters = function(objRef,bbox) {
if (objRef.model) {
var featureSRS = null;
var containerSRS = objRef.model.getSRS();
objRef.requestStylesheet.setParameter("bBoxMinX", bbox[0][0] );
objRef.requestStylesheet.setParameter("bBoxMinY", bbox[1][1] );
objRef.requestStylesheet.setParameter("bBoxMaxX", bbox[1][0] );
objRef.requestStylesheet.setParameter("bBoxMaxY", bbox[0][1] );
objRef.requestStylesheet.setParameter("srs", containerSRS );
objRef.requestStylesheet.setParameter("width", objRef.model.getWindowWidth() );
objRef.requestStylesheet.setParameter("height", objRef.model.getWindowHeight() );
}
}
this.init = function(objRef) {
if (objRef.model) {
objRef.model.addListener("aoi", objRef.setAoiParameters, objRef);
}
}
this.model.addListener("init", this.init, this);
}
Documentation generated by
JSDoc on Tue Aug 21 08:12:28 2007