_options = Prado::createComponent('System.Collections.TMap');
}
protected function setFunction($name, $code)
{
$this->_options->add($name, $this->ensureFunction($code));
}
protected function getOption($name)
{
return $this->_options->itemAt($name);
}
public function getOptions()
{
return $this->_options;
}
protected function ensureFunction($javascript)
{
return $javascript;
}
}
/**
* TCallbackClientSideOptions class.
*
* The following client side events are executing in order if the callback
* request and response are send and received successfuly.
*
* - onUninitialized executed when callback request is uninitialized.
* - onLoading executed when callback request is initiated
* - onLoaded executed when callback request begins.
* - onInteractive executed when callback request is in progress.
* - onCompleteexecuted when callback response returns.
*
* The OnSuccess and OnFailure events are raised when the
* response is returned. A successful request/response will raise
* OnSuccess event otherwise OnFailure will be raised.
*
* - onSuccess executed when callback request returns and is successful.
* - onFailure executed when callback request returns and fails.
* - onException raised when callback request fails due to
* request/response errors.
*
*/
class TCallbackClientSideOptions extends TClientSideOptions
{
/**
* Returns javascript statement enclosed within a javascript function.
* @param string javascript statement, if string begins within
* "javascript:" the whole string is assumed to be a function.
* @return string javascript statement wrapped in a javascript function
*/
protected function ensureFunction($javascript)
{
if(TJavascript::isFunction($javascript))
return $javascript;
else
{
$code = "function(request, result){ {$javascript} }";
return TJavascript::quoteFunction($code);
}
}
/**
* @return string javascript code for client-side onUninitialized event
*/
public function getOnUninitialized()
{
return $this->getOption('onUninitialized');
}
/**
* @param string javascript code for client-side onUninitialized event.
*/
public function setOnUninitialized($javascript)
{
$this->setFunction('onUninitialized', $javascript);
}
/**
* @return string javascript code for client-side onLoading event
*/
public function getOnLoading()
{
return $this->getOption('onLoading');
}
/**
* @param string javascript code for client-side onLoading event.
*/
public function setOnLoading($javascript)
{
$this->setFunction('onLoading', $javascript);
}
/**
* @return string javascript code for client-side onLoaded event
*/
public function getOnLoaded()
{
return $this->getOption('onLoaded');
}
/**
* @param string javascript code for client-side onLoaded event.
*/
public function setOnLoaded($javascript)
{
$this->setFunction('onLoaded', $javascript);
}
/**
* @return string javascript code for client-side onInteractive event
*/
public function getOnInteractive()
{
return $this->getOption('onInteractive');
}
/**
* @param string javascript code for client-side onInteractive event.
*/
public function setonInteractive($javascript)
{
$this->setFunction('onInteractive', $javascript);
}
/**
* @return string javascript code for client-side onComplete event
*/
public function getOnComplete()
{
return $this->getOption('onComplete');
}
/**
* @param string javascript code for client-side onComplete event.
*/
public function setOnComplete($javascript)
{
$this->setFunction('onComplete', $javascript);
}
/**
* @return string javascript code for client-side onSuccess event
*/
public function getOnSuccess()
{
return $this->getOption('onSuccess');
}
/**
* @param string javascript code for client-side onSuccess event.
*/
public function setOnSuccess($javascript)
{
$this->setFunction('onSuccess', $javascript);
}
/**
* @return string javascript code for client-side onFailure event
*/
public function getOnFailure()
{
return $this->getOption('onFailure');
}
/**
* @param string javascript code for client-side onFailure event.
*/
public function setOnFailure($javascript)
{
$this->setFunction('onFailure', $javascript);
}
/**
* @return string javascript code for client-side onException event
*/
public function getOnException()
{
return $this->getOption('onException');
}
/**
* @param string javascript code for client-side onException event.
*/
public function setOnException($javascript)
{
$this->setFunction('onException', $javascript);
}
/**
* @return boolean true to post the state on callback, default is post the
* state on callback.
*/
public function getPostState()
{
return $this->getOption('PostState');
}
/**
* @param boolean true to post the state of the form with callback requests.
* Default is to post the state.
*/
public function setPostState($value)
{
$this->getOptions()->add('PostState', TPropertyValue::ensureBoolean($value));
}
}
?>