From ae43fa72cdae13bace16a5b8250170e472bb2b87 Mon Sep 17 00:00:00 2001 From: wei <> Date: Sun, 14 May 2006 00:30:53 +0000 Subject: refactor active controls. --- framework/Web/UI/ActiveControls/TActiveTextBox.php | 111 +-------------------- 1 file changed, 4 insertions(+), 107 deletions(-) (limited to 'framework/Web/UI/ActiveControls/TActiveTextBox.php') diff --git a/framework/Web/UI/ActiveControls/TActiveTextBox.php b/framework/Web/UI/ActiveControls/TActiveTextBox.php index ad28b291..fba36a14 100644 --- a/framework/Web/UI/ActiveControls/TActiveTextBox.php +++ b/framework/Web/UI/ActiveControls/TActiveTextBox.php @@ -3,13 +3,8 @@ * Created on 6/05/2006 */ -class TActiveTextBox extends TTextBox implements ICallbackEventHandler +class TActiveTextBox extends TTextBox { - /** - * @var TCallbackClientSideOptions client-side options. - */ - private $_clientSide; - /** * Creates a new callback control, sets the adapter to * TActiveControlAdapter. If you override this class, be sure to set the @@ -21,79 +16,11 @@ class TActiveTextBox extends TTextBox implements ICallbackEventHandler $this->setAdapter(new TActiveControlAdapter($this)); } - /** - * @param boolean true to allow fine grain callback updates. - */ - public function setAllowCallbackUpdate($value) - { - $this->setViewState('CallbackUpdate', TPropertyValue::ensureBoolean($value), true); - } - - /** - * @return true to allow fine grain callback updates. - */ - public function getAllowCallbackUpdate() - { - return $this->getViewState('CallbackUpdate', true); - } - - /** - * @return true if can update changes on the client-side during callback. - */ - protected function canUpdateClientSide() - { - return $this->getIsInitialized() - && $this->getPage()->getIsCallback() - && $this->getAllowCallbackUpdate(); - } - - /** - * Callback client-side options can be set by setting the properties of - * the ClientSide property. E.g. - * See {@link TCallbackClientSideOptions} for details on the properties of - * ClientSide. - * @return TCallbackClientSideOptions client-side callback options. - */ - public function getClientSide() + public function getActiveControl() { - if(is_null($this->_clientSide)) - $this->_clientSide = $this->createClientSideOptions(); - return $this->_clientSide; + return $this->getAdapter()->getActiveControl(); } - /** - * @return TCallbackClientSideOptions callback client-side options. - */ - protected function createClientSideOptions() - { - return new TCallbackClientSideOptions; - } - - /** - * Raises the callback event. This method is required by {@link - * ICallbackEventHandler} interface. It class raisePostDataChangedEvent - * first then raises {@link onCallback OnCallback} event. This method is - * mainly used by framework and control developers. - * @param TCallbackEventParameter the event parameter - */ - public function raiseCallbackEvent($param) - { - $this->raisePostDataChangedEvent(); - $this->onCallback($param); - } - - /** - * This method is invoked when a callback is requested. The method raises - * 'OnCallback' event to fire up the event handlers. If you override this - * method, be sure to call the parent implementation so that the event - * handler can be invoked. - * @param TCallbackEventParameter event parameter to be passed to the event handlers - */ - public function onCallback($param) - { - $this->raiseEvent('OnCallback', $this, $param); - } - /** * Client-side Text property can only be updated after the OnLoad stage. * @param string text content for the textbox @@ -101,39 +28,9 @@ class TActiveTextBox extends TTextBox implements ICallbackEventHandler public function setText($value) { parent::setText($value); - if($this->canUpdateClientSide() && $this->getHasLoadedPostData()) + if($this->getActiveControl()->canUpdateClientSide() && $this->getHasLoadedPostData()) $this->getPage()->getCallbackClient()->setValue($this, $value); } - - protected function renderClientControlScript($writer) - { - $writer->addAttribute('id',$this->getClientID()); - $cs = $this->getPage()->getClientScript(); - $cs->registerCallbackControl(get_class($this),$this->getCallbackOptions()); - } - - /** - * @return array list of callback options. - */ - protected function getCallbackOptions() - { - return array_merge($this->getPostBackOptions(), - $this->getClientSide()->getOptions()->toArray()); - } - - /** - * Returns the javascript statement to invoke a callback request for this - * control. Additional options for callback can be set via subproperties of - * {@link getClientSide ClientSide} property. E.g. ClientSide.OnSuccess="..." - * @param TControl callback handler control, use current object if null. - * @return string javascript statement to invoke a callback. - */ - public function getCallbackReference($control=null) - { - $client = $this->getPage()->getClientScript(); - $object = is_null($control) ? $this : $control; - return $client->getCallbackReference($object, $this->getPostBackOptions()); - } } ?> \ No newline at end of file -- cgit v1.2.3