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