jsm

net/sf/jsm/ajax/RemoteCall.js

Summary

No overview generated for 'net/sf/jsm/ajax/RemoteCall.js'


Class Summary
ExampleRenderer  
RemoteCall Calls the specified url with the given parametes.

/** Calls the specified url with the given parametes. After receiving the response will call the renderers render() method
* @class Calls the specified url with the given parametes. After receiving the response will call the renderers render() method; see {@link ExampleRenderer}
* <br><br>
* Example:<br>
* new RemoteCall('/test/test.jsp', {'one':'1'}, new ExampleRenderer());
* @param {String} url The url to call
* @param {Hash} params The request parameters
* @param {Renderer} renderer The renderer which will be called - Has to provide a render(requestParams, response) method where requestParams is the params assoziative array and response is the JSON expression returned from the url
* @param {boolean} async (Optional) Should the request send be asyncronous Default: true;
*/
  function RemoteCall(url, params, renderer, async) { 
  	this.url = url;
  	this.params = params;  	
  	this.renderer = renderer; 
	var params = new Array();
	for (var key in this.params) {
		value = this.params[key];
		params.push(key + "=" + value);			
	} 
  	new JsmAjax(this, this.url, "POST", params, async).sendRequest();  	 	  	
  }
  
  RemoteCall.prototype.toString = function() {
  	return "url: " + this.url + " - params: " + this.params + " renderer: " + this.renderer;
  }
 
/**
* Called on successfull response
* @param request
*/
  RemoteCall.prototype.ajaxUpdate = function(request) {
  	var html=request.responseText; 
  	try { 	
		if (request.responseText.search(/^ *$/) == -1) { //ignore blank response
		  	this.renderer.render(this.params, eval("("+request.responseText+")"));						
		} else {
		  	this.renderer.render(this.params, {});								  	
		}
	} catch (e) {
		this.handleError(request);		
	}
  }   

/**
* Called on failure response; will pop up response text in a new window.
* @param request
*/   
  RemoteCall.prototype.handleError = function(request) {
	jsm.openMessageWindow('<br><div align="center">An error occured during a RemoteCall:<hr><br>' + request.responseText + '</div>', '750', '600', "#FFCFB8");  	
  }  
  

/** A dummy renderer to be used with {@link RemoteCall}
*
*/
  function ExampleRenderer() {}
  
/** Mandatory render method - will be called onUpdate by the RemoteCall object
* @param {Hash} requestParams The request parameters
* @param {JSON} response The response
*/
  ExampleRenderer.prototype.render = function(requestParams, response) {
  	var message = "requestParams:\n";
  	for (var key in requestParams) {
  		var value = requestParams[key];
  		message+=key + " - " + value + "\n";
  	}
  	message+="response: " + response + "\n";
  	for (var key in response) {
  		var value = response[key];
  		message+=key + " - " + value + "\n";
  	}  	
  	alert(message);			
  }       
    
  

jsm

Documentation generated by JSDoc on Tue Sep 26 08:42:57 2006