From d255f4d0e332740b3984e21ce3f7a4a4f1968ba3 Mon Sep 17 00:00:00 2001 From: wei <> Date: Tue, 2 May 2006 08:28:17 +0000 Subject: Adding more work on ActiveControls. --- .../ActiveControls/TCallbackClientSideOptions.php | 209 +++++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 framework/Web/UI/ActiveControls/TCallbackClientSideOptions.php (limited to 'framework/Web/UI/ActiveControls/TCallbackClientSideOptions.php') diff --git a/framework/Web/UI/ActiveControls/TCallbackClientSideOptions.php b/framework/Web/UI/ActiveControls/TCallbackClientSideOptions.php new file mode 100644 index 00000000..dea1b4e1 --- /dev/null +++ b/framework/Web/UI/ActiveControls/TCallbackClientSideOptions.php @@ -0,0 +1,209 @@ +_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; + } +} + +/** + * The following client side events are executing in order if the callback + * request and response are send and received successfuly. + * + * - onUninitialized executed when AJAX request is uninitialized. + * - onLoading executed when AJAX request is initiated + * - onLoaded executed when AJAX request begins. + * - onInteractive executed when AJAX request is in progress. + * - onCompleteexecuted when AJAX 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 AJAX request returns and is successful. + * - onFailure executed when AJAX request returns and fails. + * + * - CausesValidation true to perform before callback request. + * - ValidationGroup validation grouping name. + */ +class TCallbackClientSideOptions extends TClientSideOptions +{ + 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); + } + + public function getCausesValidation() + { + return $this->getOption('CausesValidation'); + } + + public function setCausesValidation($value) + { + $this->getOptions()->add('CausesValidation', TPropertyValue::ensureBoolean($value)); + } + + public function getValidationGroup() + { + return $this->getOption('ValidationGroup'); + } + + public function setValidationGroup($value) + { + $this->getOptions()->add('ValidationGroup', $value); + } + + public function getValidationForm() + { + return $this->getOption('Form'); + } + + public function setValidationForm($value) + { + $this->getOptions()->add('Form', $value); + } +} + +?> -- cgit v1.2.3