From 1180e6486139a9c9662984367c4f624394e06f35 Mon Sep 17 00:00:00 2001 From: wei <> Date: Sat, 12 Aug 2006 12:54:27 +0000 Subject: Add Triggered Callbacks --- .../UI/ActiveControls/TEventTriggeredCallback.php | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 framework/Web/UI/ActiveControls/TEventTriggeredCallback.php (limited to 'framework/Web/UI/ActiveControls/TEventTriggeredCallback.php') diff --git a/framework/Web/UI/ActiveControls/TEventTriggeredCallback.php b/framework/Web/UI/ActiveControls/TEventTriggeredCallback.php new file mode 100644 index 00000000..42f49976 --- /dev/null +++ b/framework/Web/UI/ActiveControls/TEventTriggeredCallback.php @@ -0,0 +1,70 @@ +getViewState('EventName', ''); + } + + /** + * Sets the client-side event name that fires the callback request. + * @param string The client-side event name the trigger listens to. + */ + public function setEventName($value) + { + $this->setViewState('EventName', $value, ''); + } + + /** + * @param boolean true to prevent/stop default event action. + */ + public function setPreventDefaultAction($value) + { + $this->setViewState('StopEvent', TPropertyValue::ensureBoolean($value), false); + } + + /** + * @return boolean true to prevent/stop default event action. + */ + public function getPreventDefaultAction() + { + return $this->getViewState('StopEvent', false); + } + + /** + * @return array list of timer options for client-side. + */ + protected function getTriggerOptions() + { + $options = parent::getTriggerOptions(); + $name = preg_replace('/^on/', '', $this->getEventName()); + $options['EventName'] = strtolower($name); + $options['StopEvent'] = $this->getPreventDefaultAction(); + 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->getTriggerOptions()); + } + + /** + * @return string corresponding javascript class name for TEventTriggeredCallback. + */ + protected function getClientClassName() + { + return 'Prado.WebUI.TEventTriggeredCallback'; + } +} + +?> \ No newline at end of file -- cgit v1.2.3