summaryrefslogtreecommitdiff
path: root/framework/Web/UI/ActiveControls/TCallbackTimer.php
diff options
context:
space:
mode:
authorwei <>2006-08-12 12:54:27 +0000
committerwei <>2006-08-12 12:54:27 +0000
commit1180e6486139a9c9662984367c4f624394e06f35 (patch)
treef89a379960284595d5a425e22424582eea57422c /framework/Web/UI/ActiveControls/TCallbackTimer.php
parent54d4919e3f1b00b644fa3c107acdf20159a1b154 (diff)
Add Triggered Callbacks
Diffstat (limited to 'framework/Web/UI/ActiveControls/TCallbackTimer.php')
-rw-r--r--framework/Web/UI/ActiveControls/TCallbackTimer.php147
1 files changed, 0 insertions, 147 deletions
diff --git a/framework/Web/UI/ActiveControls/TCallbackTimer.php b/framework/Web/UI/ActiveControls/TCallbackTimer.php
deleted file mode 100644
index bae41e1f..00000000
--- a/framework/Web/UI/ActiveControls/TCallbackTimer.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-/**
- * TCallbackTimer class file.
- *
- * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
- * @link http://www.pradosoft.com/
- * @copyright Copyright &copy; 2006 PradoSoft
- * @license http://www.pradosoft.com/license/
- * @version $Revision: $ : $
- * @package System.Web.UI.ActiveControls
- */
-
-/**
- * Load active callback control.
- */
-Prado::using('System.Web.UI.ActiveControls.TCallback');
-
-/**
- * TCallbackTimer class.
- *
- * TCallbackTimer sends callback request every {@link setInterval Interval} seconds.
- * Upon each callback request, the {@link onCallback OnCallback} event is raised.
- *
- * The intervals between each request can be increased when the browser is inactive
- * by changing the {@link setDecayRate DecayRate} to a positive number. The
- * default decay rate, {@link setDecayType DecayType}, is linear and can be changed to
- * 'Exponential', 'Linear', 'Quadratic' or 'Cubic'.
- *
- * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
- * @version : $ Mon Jun 19 21:29:42 EST 2006 $
- * @package System.Web.UI.ActiveControls
- * @since 3.0
- */
-class TCallbackTimer extends TCallback
-{
- /**
- * @return float seconds between callback requests. Default is 1 second.
- */
- public function getInterval()
- {
- return $this->getViewState('Interval', 1);
- }
-
- /**
- * @param float seconds between callback requests, must be a positive number, default is 1 second.
- */
- public function setInterval($value)
- {
- $interval = TPropertyValue::ensureFloat($value);
- if($interval <= 0)
- throw new TConfigurationException('callback_interval_be_positive', $this->getID());
- $this->setViewState('Interval', $interval, 1);
- }
-
- /**
- * Gets the decay rate between callbacks. Default is 0;
- * @return float decay rate between callbacks.
- */
- public function getDecayRate()
- {
- return $this->getViewState('Decay', 0);
- }
-
- /**
- * Sets the decay rate between callback. Default is 0;
- * @param float decay rate between callbacks.
- */
- public function setDecayRate($value)
- {
- $decay = TPropertyValue::ensureFloat($value);
- if($decay < 0)
- throw new TConfigurationException('callback_decay_be_not_negative', $this->getID());
- $this->setViewState('Decay', $decay);
- }
-
- /**
- * @param string Decay type, allows 'Exponential', 'Linear', 'Quadratic' and 'Cubic'. Default is 'Linear'.
- */
- public function setDecayType($value)
- {
- $this->setViewState('DecayType', TPropertyValue::ensureEnum($value,
- 'Exponential', 'Linear', 'Quadratic', 'Cubic'), 'Linear');
- }
-
- /**
- * @return string decay type, default is 'Linear', valid types are 'Exponential', 'Linear', 'Quadratic' and 'Cubic'.
- */
- public function getDecayType()
- {
- return $this->getViewState('DecayType', 'Linear');
- }
-
- /**
- * Registers the javascript code to start the timer.
- */
- public function startTimer()
- {
- $id = $this->getClientID();
- $code = "Prado.WebUI.TCallbackTimer.start('{$id}');";
- $cs = $this->getPage()->getClientScript();
- $cs->registerEndScript("{$id}:start", $code);
- }
-
- /**
- * Registers the javascript code to stop the timer.
- */
- public function stopTimer()
- {
- $id = $this->getClientID();
- $code = "Prado.WebUI.TCallbackTimer.stop('{$id}');";
- $cs = $this->getPage()->getClientScript();
- $cs->registerEndScript("{$id}:stop", $code);
- }
-
- /**
- * @return array list of timer options for client-side.
- */
- protected function getTimerOptions()
- {
- $options['ID'] = $this->getClientID();
- $options['Interval'] = $this->getInterval();
- $options['DecayRate'] = $this->getDecayRate();
- $options['DecayType'] = $this->getDecayType();
- return $options;
- }
-
- /**
- * Registers the javascript code for initializing the active control.
- * @param THtmlWriter the renderer.
- */
- public function render($writer)
- {
- parent::render($writer);
- $this->getActiveControl()->registerCallbackClientScript(
- $this->getClientClassName(), $this->getTimerOptions());
- }
-
- /**
- * @return string corresponding javascript class name for this TActiveButton.
- */
- protected function getClientClassName()
- {
- return 'Prado.WebUI.TCallbackTimer';
- }
-}
-
-?> \ No newline at end of file