diff options
Diffstat (limited to 'framework/Web/UI/ActiveControls')
28 files changed, 650 insertions, 362 deletions
diff --git a/framework/Web/UI/ActiveControls/TActiveButton.php b/framework/Web/UI/ActiveControls/TActiveButton.php index 232e639c..a96c1580 100644 --- a/framework/Web/UI/ActiveControls/TActiveButton.php +++ b/framework/Web/UI/ActiveControls/TActiveButton.php @@ -15,23 +15,23 @@   */
  Prado::using('System.Web.UI.ActiveControls.TActiveControlAdapter');
 -/** 
 +/**
   * TActiveButton is the active control counter part to TButton.
 - * 
 + *
   * When a TActiveButton is clicked, rather than a normal post back request a
 - * callback request is initiated. 
 - * 
 - * The {@link onCallback OnCallback} event is raised during a callback request 
 + * callback request is initiated.
 + *
 + * The {@link onCallback OnCallback} event is raised during a callback request
   * and it is raise <b>after</b> the {@link onClick OnClick} event.
 - * 
 + *
   * When the {@link TBaseActiveCallbackControl::setEnableUpdate ActiveControl.EnableUpdate}
   * property is true, changing the {@link setText Text} property during callback request
   * will update the button's caption upon callback response completion.
 - * 
 + *
   * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
   * @version $Revision: $  $Date: $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TActiveButton extends TButton implements ICallbackEventHandler, IActiveControl
  {
 @@ -59,7 +59,7 @@ class TActiveButton extends TButton implements ICallbackEventHandler, IActiveCon  	 * ICallbackEventHandler} interface. If {@link getCausesValidation
  	 * CausesValidation} is true, it will invoke the page's {@link TPage::
  	 * validate validate} method first. It will raise {@link onClick
 -	 * OnClick} event first and then the {@link onCallback OnCallback} event. 
 +	 * OnClick} event first and then the {@link onCallback OnCallback} event.
  	 * This method is mainly used by framework and control developers.
  	 * @param TCallbackEventParameter the event parameter
  	 */
 @@ -81,8 +81,8 @@ class TActiveButton extends TButton implements ICallbackEventHandler, IActiveCon  		$this->raiseEvent('OnCallback', $this, $param);
  	}
 -	/** 
 -	 * Updates the button text on the client-side if the 
 +	/**
 +	 * Updates the button text on the client-side if the
  	 * {@link setEnableUpdate EnableUpdate} property is set to true.
  	 * @param string caption of the button
  	 */
 @@ -94,7 +94,7 @@ class TActiveButton extends TButton implements ICallbackEventHandler, IActiveCon  	}
  	/**
 -	 * Override parent implementation, no javascript is rendered here instead 
 +	 * Override parent implementation, no javascript is rendered here instead
  	 * the javascript required for active control is registered in {@link addAttributesToRender}.
  	 */
  	protected function renderClientControlScript($writer)
 @@ -110,7 +110,7 @@ class TActiveButton extends TButton implements ICallbackEventHandler, IActiveCon  		parent::addAttributesToRender($writer);
  		$writer->addAttribute('id',$this->getClientID());
  		$this->getActiveControl()->registerCallbackClientScript(
 -			$this->getClientClassName(), $this->getPostBackOptions());		
 +			$this->getClientClassName(), $this->getPostBackOptions());
  	}
  	/**
 diff --git a/framework/Web/UI/ActiveControls/TActiveCheckBox.php b/framework/Web/UI/ActiveControls/TActiveCheckBox.php index a7f3ac2a..3752c820 100644 --- a/framework/Web/UI/ActiveControls/TActiveCheckBox.php +++ b/framework/Web/UI/ActiveControls/TActiveCheckBox.php @@ -17,18 +17,18 @@ Prado::using('System.Web.UI.ActiveControls.TActiveControlAdapter');  /**   * TActiveCheckBox class. - *  + *   * The active control counter part to checkbox. The {@link setAutoPostBack AutoPostBack} - * property is set to true by default. Thus, when the checkbox is clicked a  + * property is set to true by default. Thus, when the checkbox is clicked a   * {@link onCallback OnCallback} event is raise after {@link OnCheckedChanged} event. - *  - * The {@link setText Text} and {@link setChecked Checked} properties can be  + * + * The {@link setText Text} and {@link setChecked Checked} properties can be   * changed during a callback.   *   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version : $  Tue Jun 20 01:29:35 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TActiveCheckBox extends TCheckBox implements ICallbackEventHandler, IActiveControl  { @@ -54,7 +54,7 @@ class TActiveCheckBox extends TCheckBox implements ICallbackEventHandler, IActiv  	/**  	 * Raises the callback event. This method is required by {@link -	 * ICallbackEventHandler} interface.  +	 * ICallbackEventHandler} interface.  	 * This method is mainly used by framework and control developers.  	 * @param TCallbackEventParameter the event parameter  	 */ @@ -75,8 +75,8 @@ class TActiveCheckBox extends TCheckBox implements ICallbackEventHandler, IActiv  		$this->raiseEvent('OnCallback', $this, $param);  	} -	/**  -	 * Updates the button text on the client-side if the  +	/** +	 * Updates the button text on the client-side if the  	 * {@link setEnableUpdate EnableUpdate} property is set to true.  	 * @param string caption of the button  	 */ @@ -87,10 +87,10 @@ class TActiveCheckBox extends TCheckBox implements ICallbackEventHandler, IActiv  			$this->getPage()->getCallbackClient()->update(  				$this->getDefaultLabelID(), $value);  	} -	 +  	/**  	 * Sets a value indicating whether the checkbox is to be checked or not. -	 * Updates checkbox checked state on the client-side if the  +	 * Updates checkbox checked state on the client-side if the  	 * {@link setEnableUpdate EnableUpdate} property is set to true.  	 * @param boolean whether the checkbox is to be checked or not.  	 */ @@ -100,7 +100,7 @@ class TActiveCheckBox extends TCheckBox implements ICallbackEventHandler, IActiv  		parent::setChecked($value);  		if($this->getActiveControl()->canUpdateClientSide())  			$this->getPage()->getCallbackClient()->check($this, $value); -	}	 +	}  	/**  	 * Registers the javascript code for initializing the active control. @@ -108,7 +108,7 @@ class TActiveCheckBox extends TCheckBox implements ICallbackEventHandler, IActiv  	protected function renderClientControlScript($writer)  	{  		$this->getActiveControl()->registerCallbackClientScript( -			$this->getClientClassName(), $this->getPostBackOptions());		 +			$this->getClientClassName(), $this->getPostBackOptions());  	}  	/** @@ -118,9 +118,9 @@ class TActiveCheckBox extends TCheckBox implements ICallbackEventHandler, IActiv  	{  		return 'Prado.WebUI.TActiveCheckBox';  	} -	 -	/**  -	 * Overrides parent implementation to ensure label has ID.  + +	/** +	 * Overrides parent implementation to ensure label has ID.  	 * @return TMap list of attributes to be rendered for label beside the checkbox  	 */  	public function getLabelAttributes() @@ -129,7 +129,7 @@ class TActiveCheckBox extends TCheckBox implements ICallbackEventHandler, IActiv  		$attributes['id'] = $this->getDefaultLabelID();  		return $attributes;  	} -	 +  	/**  	 * Renders a label beside the checkbox.  	 * @param THtmlWriter the writer for the rendering purpose @@ -140,8 +140,8 @@ class TActiveCheckBox extends TCheckBox implements ICallbackEventHandler, IActiv  	{  		$writer->addAttribute('id', $this->getDefaultLabelID());  		parent::renderLabel($writer, $clientID, $text); -	}	 -	 +	} +  	/**  	 * @return string checkbox label ID;  	 */ @@ -149,7 +149,7 @@ class TActiveCheckBox extends TCheckBox implements ICallbackEventHandler, IActiv  	{  		if($attributes=$this->getViewState('LabelAttributes',null))  			return $this->getLabelAttributes()->itemAt('id'); -		else  +		else  			return $this->getClientID().'_label';  	}  } diff --git a/framework/Web/UI/ActiveControls/TActiveCheckBoxList.php b/framework/Web/UI/ActiveControls/TActiveCheckBoxList.php index 3a33ccc2..458a26f6 100644 --- a/framework/Web/UI/ActiveControls/TActiveCheckBoxList.php +++ b/framework/Web/UI/ActiveControls/TActiveCheckBoxList.php @@ -17,12 +17,12 @@ Prado::using('System.Web.UI.ActiveControls.TActiveListControlAdapter');  /**   * TActiveCheckBoxList class. - *  - * The active control counter part to checkbox list control.  - * The {@link setAutoPostBack AutoPostBack} property is set to true by default.  - * Thus, when a checkbox is clicked a {@link onCallback OnCallback} event is  - * raised after {@link OnSelectedIndexChanged} event.  - *  + * + * The active control counter part to checkbox list control. + * The {@link setAutoPostBack AutoPostBack} property is set to true by default. + * Thus, when a checkbox is clicked a {@link onCallback OnCallback} event is + * raised after {@link OnSelectedIndexChanged} event. + *   * With {@link TBaseActiveControl::setEnableUpdate() ActiveControl.EnabledUpdate}   * set to true (default is true), changes to the selection will be updated   * on the client side. @@ -30,7 +30,7 @@ Prado::using('System.Web.UI.ActiveControls.TActiveListControlAdapter');   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version : $  Sun Jun 25 01:50:27 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TActiveCheckBoxList extends TCheckBoxList implements IActiveControl, ICallbackEventHandler  { @@ -53,7 +53,7 @@ class TActiveCheckBoxList extends TCheckBoxList implements IActiveControl, ICall  	{  		return $this->getAdapter()->getBaseActiveControl();  	} -	 +  	/**  	 * No client class for this control.  	 * This method overrides the parent implementation. @@ -62,8 +62,8 @@ class TActiveCheckBoxList extends TCheckBoxList implements IActiveControl, ICall  	protected function getClientClassName()  	{  		return null; -	}	 -	 +	} +  	/**  	 * Creates a control used for repetition (used as a template).  	 * @return TControl the control to be repeated @@ -72,10 +72,10 @@ class TActiveCheckBoxList extends TCheckBoxList implements IActiveControl, ICall  	{  		return new TActiveCheckBox;  	} -	 +  	/**  	 * Raises the callback event. This method is required by {@link -	 * ICallbackEventHandler} interface.  +	 * ICallbackEventHandler} interface.  	 * This method is mainly used by framework and control developers.  	 * @param TCallbackEventParameter the event parameter  	 */ @@ -94,7 +94,7 @@ class TActiveCheckBoxList extends TCheckBoxList implements IActiveControl, ICall  	public function onCallback($param)  	{  		$this->raiseEvent('OnCallback', $this, $param); -	}	 +	}  }  ?>
\ No newline at end of file diff --git a/framework/Web/UI/ActiveControls/TActiveControlAdapter.php b/framework/Web/UI/ActiveControls/TActiveControlAdapter.php index 75c9ba21..0ea10f4e 100644 --- a/framework/Web/UI/ActiveControls/TActiveControlAdapter.php +++ b/framework/Web/UI/ActiveControls/TActiveControlAdapter.php @@ -17,21 +17,21 @@ Prado::using('System.Web.UI.ActiveControls.TBaseActiveControl');  /**
   * TActiveControlAdapter class.
 - * 
 - * Customize the parent TControl class for active control classes. 
 + *
 + * Customize the parent TControl class for active control classes.
   * TActiveControlAdapter instantiates a common base active control class
   * throught the {@link getBaseActiveControl BaseActiveControl} property.
   * The type of BaseActiveControl can be provided in the second parameter in the
   * constructor. Default is TBaseActiveControl or TBaseActiveCallbackControl if
   * the control adapted implements ICallbackEventHandler.
 - * 
 - * TActiveControlAdapter will tracking viewstate changes to update the 
 + *
 + * TActiveControlAdapter will tracking viewstate changes to update the
   * corresponding client-side properties.
   *
   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Sun Jun 18 20:35:34 EST 2006 $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TActiveControlAdapter extends TControlAdapter
  {
 @@ -47,7 +47,7 @@ class TActiveControlAdapter extends TControlAdapter  	 * @var TCallbackPageStateTracker view state tracker.
  	 */
  	private $_stateTracker;
 -	
 +
  	/**
  	 * Constructor.
  	 * @param IActiveControl active control to adapt.
 @@ -58,7 +58,7 @@ class TActiveControlAdapter extends TControlAdapter  		parent::__construct($control);
  		$this->setBaseControlClass($baseCallbackClass);
  	}
 -	
 +
  	/**
  	 * @param string base active control instance
  	 */
 @@ -74,7 +74,7 @@ class TActiveControlAdapter extends TControlAdapter  		else
  			$this->_activeControlType = $type;
  	}
 -	
 +
  	/**
  	 * Renders the callback client scripts.
  	 */
 @@ -83,9 +83,9 @@ class TActiveControlAdapter extends TControlAdapter  		$this->renderCallbackClientScripts();
  		parent::render($writer);
  	}
 -	
 +
  	/**
 -	 * Register the callback clientscripts and sets the post loader IDs. 
 +	 * Register the callback clientscripts and sets the post loader IDs.
  	 */
  	protected function renderCallbackClientScripts()
  	{
 @@ -103,7 +103,7 @@ class TActiveControlAdapter extends TControlAdapter  			}
  		}
  	}
 -	
 +
  	/**
  	 * @return TBaseActiveControl Common active control options.
  	 */
 @@ -116,7 +116,7 @@ class TActiveControlAdapter extends TControlAdapter  		}
  		return $this->_baseActiveControl;
  	}
 -	
 +
  	/**
  	 * @return boolean true if the viewstate needs to be tracked.
  	 */
 @@ -127,13 +127,13 @@ class TActiveControlAdapter extends TControlAdapter  			$target = $this->getPage()->getCallbackEventTarget();
  			if($target instanceof ICallbackEventHandler)
  			{
 -				$client = $target->getActiveControl()->getClientSide(); 
 +				$client = $target->getActiveControl()->getClientSide();
  				return $client->getEnablePageStateUpdate();
  			}
  		}
  		return false;
  	}
 -	
 +
  	/**
  	 * Loads additional persistent control state. Starts viewstate tracking
  	 * if necessary.
 @@ -147,21 +147,21 @@ class TActiveControlAdapter extends TControlAdapter  		}
  		parent::loadState();
  	}
 -	
 +
  	/**
  	 * Saves additional persistent control state. Respond to viewstate changes
  	 * if necessary.
  	 */
  	public function saveState()
  	{
 -		if(!is_null($this->_stateTracker) 
 +		if(!is_null($this->_stateTracker)
  			&& $this->getControl()->getActiveControl()->canUpdateClientSide())
  		{
  			$this->_stateTracker->respondToChanges();
  		}
  		parent::saveState();
  	}
 -	
 +
  	/**
  	 * @return TCallbackPageStateTracker state tracker.
  	 */
 @@ -169,19 +169,17 @@ class TActiveControlAdapter extends TControlAdapter  	{
  		return $this->_stateTracker;
  	}
 -} 
 +}
  /**
   * TCallbackPageStateTracker class.
 - * 
 + *
   * Tracking changes to the page state during callback.
 - * 
 - * @todo Complete this class! (Wei)
 - * 
 + *
   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Sun Jun 18 20:51:25 EST 2006 $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TCallbackPageStateTracker
  {
 @@ -201,7 +199,7 @@ class TCallbackPageStateTracker  	 * @var object null object.
  	 */
  	private $_nullObject;
 -		
 +
  	/**
  	 * Constructor. Add a set of default states to track.
  	 * @param TControl control to track.
 @@ -214,7 +212,7 @@ class TCallbackPageStateTracker  		$this->_states = new TMap;
  		$this->addStatesToTrack();
  	}
 -	
 +
  	/**
  	 * Add a list of view states to track. Each state is added
  	 * to the StatesToTrack property with the view state name as key.
 @@ -232,9 +230,9 @@ class TCallbackPageStateTracker  		$states['Style'] = array('TStyleDiff', array($this, 'updateStyle'));
  		$states['TabIndex'] = array('TScalarDiff', array($this, 'updateTabIndex'));
  		$states['ToolTip'] = array('TScalarDiff', array($this, 'updateToolTip'));
 -		$states['AccessKey'] = array('TScalarDiff', array($this, 'updateAccessKey'));	
 +		$states['AccessKey'] = array('TScalarDiff', array($this, 'updateAccessKey'));
  	}
 -	
 +
  	/**
  	 * @return TMap list of viewstates to track.
  	 */
 @@ -242,7 +240,7 @@ class TCallbackPageStateTracker  	{
  		return $this->_states;
  	}
 -	
 +
  	/**
  	 * Start tracking view state changes. The clone function on objects are called
  	 * for those viewstate having an object as value.
 @@ -255,7 +253,7 @@ class TCallbackPageStateTracker  			$this->_existingState[$name] = is_object($obj) ? clone($obj) : $obj;
  		}
  	}
 -	
 +
  	/**
  	 * @array list of viewstate and the changed data.
  	 */
 @@ -275,7 +273,7 @@ class TCallbackPageStateTracker  		}
  		return $changes;
  	}
 -		
 +
  	/**
  	 * For each of the changes call the corresponding change handlers.
  	 */
 @@ -284,7 +282,7 @@ class TCallbackPageStateTracker  		foreach($this->getChanges() as $change)
  			call_user_func_array($change[0], $change[1]);
  	}
 -	
 +
  	/**
  	 * @return TCallbackClientScript callback client scripting
  	 */
 @@ -292,36 +290,36 @@ class TCallbackPageStateTracker  	{
  		return $this->_control->getPage()->getCallbackClient();
  	}
 -	
 +
  	/**
  	 * Updates the tooltip.
  	 * @param string new tooltip
  	 */
  	protected function updateToolTip($value)
  	{
 -		$this->client()->setAttribute($this->_control, 'title', $value); 
 +		$this->client()->setAttribute($this->_control, 'title', $value);
  	}
 -	
 +
  	/**
  	 * Updates the tab index.
  	 * @param integer tab index
  	 */
  	protected function updateTabIndex($value)
  	{
 -		$this->client()->setAttribute($this->_control, 'tabindex', $value); 
 +		$this->client()->setAttribute($this->_control, 'tabindex', $value);
  	}
 -	
 +
  	/**
  	 * Updates the modifier access key
  	 * @param string access key
  	 */
  	protected function updateAccessKey($value)
  	{
 -		$this->client()->setAttribute($this->_control, 'accesskey', $value); 
 +		$this->client()->setAttribute($this->_control, 'accesskey', $value);
  	}
 -	
 +
  	/**
 -	 * Hides or shows the control on the client-side. The control must be 
 +	 * Hides or shows the control on the client-side. The control must be
  	 * already rendered on the client-side.
  	 * @param boolean true to show the control, false to hide.
  	 */
 @@ -332,7 +330,7 @@ class TCallbackPageStateTracker  		else
  			$this->client()->show($this->_control);
  	}
 -	
 +
  	/**
  	 * Enables or Disables the control on the client-side.
  	 * @param boolean true to enable the control, false to disable.
 @@ -341,7 +339,7 @@ class TCallbackPageStateTracker  	{
  		$this->client()->setAttribute($this->_control, 'disabled', $enable===false);
  	}
 -	
 +
  	/**
  	 * Updates the CSS style on the control on the client-side.
  	 * @param array list of new CSS style declarations.
 @@ -353,7 +351,7 @@ class TCallbackPageStateTracker  		if(count($style['Style']) > 0)
  			$this->client()->setStyle($this->_control, $style['Style']);
  	}
 -	
 +
  	/**
  	 * Updates/adds a list of attributes on the control.
  	 * @param array list of attribute name-value pairs.
 @@ -371,12 +369,12 @@ class TCallbackPageStateTracker   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Thu Jun 22 02:50:45 EST 2006 $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  abstract class TViewStateDiff
  {
  	/**
 -	 * @var mixed updated viewstate 
 +	 * @var mixed updated viewstate
  	 */
  	protected $_new;
  	/**
 @@ -387,9 +385,9 @@ abstract class TViewStateDiff  	 * @var object null value.
  	 */
  	protected $_null;
 -	
 +
  	/**
 -	 * Constructor. 
 +	 * Constructor.
  	 * @param mixed updated viewstate value.
  	 * @param mixed viewstate value at the begining of the request.
  	 * @param object representing the null value.
 @@ -400,7 +398,7 @@ abstract class TViewStateDiff  		$this->_old = $old;
  		$this->_null = $null;
  	}
 -	
 +
  	/**
  	 * @return mixed view state changes, nullObject if no difference.
  	 */
 @@ -409,13 +407,13 @@ abstract class TViewStateDiff  /**
   * TScalarDiff class.
 - * 
 + *
   * Calculate the changes to a scalar value.
   *
   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Thu Jun 22 02:54:42 EST 2006 $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TScalarDiff extends TViewStateDiff
  {
 @@ -424,8 +422,8 @@ class TScalarDiff extends TViewStateDiff  	 */
  	public function getDifference()
  	{
 -		if(gettype($this->_new) === gettype($this->_old) 
 -			&& $this->_new === $this->_old) 
 +		if(gettype($this->_new) === gettype($this->_old)
 +			&& $this->_new === $this->_old)
  			return $this->_null;
  		else
  			return $this->_new;
 @@ -434,23 +432,23 @@ class TScalarDiff extends TViewStateDiff  /**
   * TStyleDiff class.
 - * 
 + *
   * Calculates the changes to the Style properties.
   *
   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Thu Jun 22 02:55:47 EST 2006 $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TStyleDiff extends TViewStateDiff
  {
 -	/** 
 +	/**
  	 * @param TStyle control style
  	 * @return array all the style properties combined.
  	 */
  	protected function getCombinedStyle($obj)
  	{
 -		if(!($obj instanceof TStyle)) 
 +		if(!($obj instanceof TStyle))
  			return array();
  		$style = $obj->getStyleFields();
  		$style = array_merge($style,$this->getStyleFromString($obj->getCustomStyle()));
 @@ -458,7 +456,7 @@ class TStyleDiff extends TViewStateDiff  			$style = array_merge($style, $this->getStyleFromString($obj->getFont()->toString()));
  		return $style;
  	}
 -	
 +
  	/**
  	 * @param string CSS custom style string.
  	 * @param array CSS style as name-value array.
 @@ -476,7 +474,7 @@ class TStyleDiff extends TViewStateDiff  		}
  		return $style;
  	}
 -	
 +
  	/**
  	 * @return string changes to the CSS class name.
  	 */
 @@ -484,16 +482,16 @@ class TStyleDiff extends TViewStateDiff  	{
  		if(is_null($this->_old))
  		{
 -			return !is_null($this->_new) && $this->_new->hasCssClass() 
 -						? $this->_new->getCssClass() : null;		
 +			return !is_null($this->_new) && $this->_new->hasCssClass()
 +						? $this->_new->getCssClass() : null;
  		}
  		else
  		{
 -			return $this->_old->getCssClass() !== $this->_new->getCssClass() ? 
 +			return $this->_old->getCssClass() !== $this->_new->getCssClass() ?
  				$this->_new->getCssClass() : null;
  		}
  	}
 -	
 +
  	/**
  	 * @return array list of changes to the control style.
  	 */
 @@ -526,13 +524,13 @@ class TStyleDiff extends TViewStateDiff  /**
   * TAttributesDiff class.
 - * 
 + *
   * Calculate the changes to attributes collection.
   *
   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Thu Jun 22 02:54:42 EST 2006 $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TMapCollectionDiff extends TViewStateDiff
  {
 @@ -543,7 +541,7 @@ class TMapCollectionDiff extends TViewStateDiff  	{
  		if(is_null($this->_old))
  		{
 -			return !is_null($this->_new) ? $this->_new->toArray() : $this->_null;			
 +			return !is_null($this->_new) ? $this->_new->toArray() : $this->_null;
  		}
  		else
  		{
 diff --git a/framework/Web/UI/ActiveControls/TActiveDropDownList.php b/framework/Web/UI/ActiveControls/TActiveDropDownList.php index 679996b5..0a6a3832 100644 --- a/framework/Web/UI/ActiveControls/TActiveDropDownList.php +++ b/framework/Web/UI/ActiveControls/TActiveDropDownList.php @@ -18,12 +18,12 @@ Prado::using('System.Web.UI.ActiveControls.TActiveListControlAdapter');  /**  /**   * TActiveDropDownList class. - *  - * The active control counter part to drop down list control.  - * The {@link setAutoPostBack AutoPostBack} property is set to true by default.  - * Thus, when the drop down list selection is changed the {@link onCallback OnCallback} event is  - * raised after {@link OnSelectedIndexChanged} event.  - *  + * + * The active control counter part to drop down list control. + * The {@link setAutoPostBack AutoPostBack} property is set to true by default. + * Thus, when the drop down list selection is changed the {@link onCallback OnCallback} event is + * raised after {@link OnSelectedIndexChanged} event. + *   * With {@link TBaseActiveControl::setEnableUpdate() ActiveControl.EnabledUpdate}   * set to true (default is true), changes to the selection, <b>after</b> OnLoad event has   * been raised, will be updated. @@ -32,7 +32,7 @@ Prado::using('System.Web.UI.ActiveControls.TActiveListControlAdapter');   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version : $  Sun Jun 25 19:55:19 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TActiveDropDownList extends TDropDownList implements ICallbackEventHandler, IActiveControl  { @@ -65,7 +65,7 @@ class TActiveDropDownList extends TDropDownList implements ICallbackEventHandler  	{  		return 'Prado.WebUI.TActiveDropDownList';  	} -	 +  	/**  	 * Loads user input data.  	 * Disables ActiveControl.EnableUpdate subproperty during loading post data @@ -82,7 +82,7 @@ class TActiveDropDownList extends TDropDownList implements ICallbackEventHandler  		$this->getActiveControl()->setEnableUpdate($enabled);  		return $result;  	} -	 +  	/**  	 * Creates a collection object to hold list items. A specialized  	 * TActiveListItemCollection is created to allow the drop down list options @@ -96,15 +96,15 @@ class TActiveDropDownList extends TDropDownList implements ICallbackEventHandler  		$collection->setControl($this);  		return $collection;  	} -	 +  	/** -	 * Override parent implementation, no javascript is rendered here instead  +	 * Override parent implementation, no javascript is rendered here instead  	 * the javascript required for active control is registered in {@link addAttributesToRender}.  	 */  	protected function renderClientControlScript($writer)  	{  	} -	 +  	/**  	 * Ensure that the ID attribute is rendered and registers the javascript code  	 * for initializing the active control. @@ -114,12 +114,12 @@ class TActiveDropDownList extends TDropDownList implements ICallbackEventHandler  		parent::addAttributesToRender($writer);  		$writer->addAttribute('id',$this->getClientID());  		$this->getActiveControl()->registerCallbackClientScript( -			$this->getClientClassName(), $this->getPostBackOptions());		 -	}		 -	 +			$this->getClientClassName(), $this->getPostBackOptions()); +	} +  	/**  	 * Raises the callback event. This method is required by {@link -	 * ICallbackEventHandler} interface.  +	 * ICallbackEventHandler} interface.  	 * This method is mainly used by framework and control developers.  	 * @param TCallbackEventParameter the event parameter  	 */ @@ -138,8 +138,8 @@ class TActiveDropDownList extends TDropDownList implements ICallbackEventHandler  	public function onCallback($param)  	{  		$this->raiseEvent('OnCallback', $this, $param); -	}	 -	 +	} +  	/**  	 * Updates the client-side options if the item list has changed after the OnLoad event.  	 */ diff --git a/framework/Web/UI/ActiveControls/TActiveHyperLink.php b/framework/Web/UI/ActiveControls/TActiveHyperLink.php index ac99089d..946625b5 100644 --- a/framework/Web/UI/ActiveControls/TActiveHyperLink.php +++ b/framework/Web/UI/ActiveControls/TActiveHyperLink.php @@ -15,15 +15,15 @@   *   * The active control counterpart of THyperLink component. When   * {@link TBaseActiveControl::setEnableUpdate ActiveControl.EnableUpdate} - * property is true the during a callback request, setting {@link setText Text}  - * property will also set the text of the label on the client upon callback  + * property is true the during a callback request, setting {@link setText Text} + * property will also set the text of the label on the client upon callback   * completion. Similarly, for other properties such as {@link setImageUrl ImageUrl},   * {@link setNavigateUrl NavigateUrl} and {@link setTarget Target}. - *  + *   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version : $  Mon Jun 26 00:08:24 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TActiveHyperLink extends THyperLink implements IActiveControl  { @@ -37,7 +37,7 @@ class TActiveHyperLink extends THyperLink implements IActiveControl  		parent::__construct();  		$this->setAdapter(new TActiveControlAdapter($this));  	} -	 +  	/**  	 * @return TBaseActiveControl basic active control options.  	 */ @@ -45,7 +45,7 @@ class TActiveHyperLink extends THyperLink implements IActiveControl  	{  		return $this->getAdapter()->getBaseActiveControl();  	} -	 +  	/**  	 * On callback response, the inner HTMl of the label is updated.  	 * @param string the text value of the label @@ -56,7 +56,7 @@ class TActiveHyperLink extends THyperLink implements IActiveControl  		if($this->getActiveControl()->canUpdateClientSide())  			$this->getPage()->getCallbackClient()->update($this, $value);  	} -	 +  	/**  	 * Sets the location of image file of the THyperLink.  	 * @param string the image file location @@ -72,7 +72,7 @@ class TActiveHyperLink extends THyperLink implements IActiveControl  			$this->getPage()->getCallbackClient()->update($this, $textWriter->flush());  		}  	} -	 +  	/**  	 * Sets the URL to link to when the THyperLink component is clicked.  	 * @param string the URL @@ -83,7 +83,7 @@ class TActiveHyperLink extends THyperLink implements IActiveControl  		if($this->getActiveControl()->canUpdateClientSide())  			$this->getPage()->getCallbackClient()->setAttribute($this, 'href', $value);  	} -	 +  	/**  	 * Sets the target window or frame to display the Web page content linked to when the THyperLink component is clicked.  	 * @param string the target window, valid values include '_blank', '_parent', '_self', '_top' and empty string. @@ -92,8 +92,8 @@ class TActiveHyperLink extends THyperLink implements IActiveControl  	{  		parent::setTarget($value);  		if($this->getActiveControl()->canUpdateClientSide()) -			$this->getPage()->getCallbackClient()->setAttribute($this, 'target', $value);		 -	}			 +			$this->getPage()->getCallbackClient()->setAttribute($this, 'target', $value); +	}  }  ?>
\ No newline at end of file diff --git a/framework/Web/UI/ActiveControls/TActiveImage.php b/framework/Web/UI/ActiveControls/TActiveImage.php index eb0f4ca9..6d18d61d 100644 --- a/framework/Web/UI/ActiveControls/TActiveImage.php +++ b/framework/Web/UI/ActiveControls/TActiveImage.php @@ -10,18 +10,84 @@   * @package System.Web.UI.WebControls   */ -  /**   * TActiveImage class.   * + * TActiveImage allows the {@link setAlternateText AlternateText}, + * {@link setImageAlign ImageAlign}, {@link setImageUrl ImageUrl}, + * and {@link setDescriptionUrl DescriptionUrl} to be updated during + * a callback request. + *   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version : $  Mon Jun 26 00:44:25 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TActiveImage extends TImage implements IActiveControl  { +	/** +	 * Creates a new callback control, sets the adapter to +	 * TActiveControlAdapter. If you override this class, be sure to set the +	 * adapter appropriately by, for example, by calling this constructor. +	 */ +	public function __construct() +	{ +		parent::__construct(); +		$this->setAdapter(new TActiveControlAdapter($this)); +	} + +	/** +	 * @return TBaseActiveControl basic active control options. +	 */ +	public function getActiveControl() +	{ +		return $this->getAdapter()->getBaseActiveControl(); +	} + +	/** +	 * Sets the alternative text to be displayed in the TImage when the image is unavailable. +	 * @param string the alternative text +	 */ +	public function setAlternateText($value) +	{ +		parent::setAlternateText($value); +		if($this->getActiveControl()->canUpdateClientSide()) +			$this->getPage()->getCallbackClient()->setAttribute($this, 'alt', $value); +	} + +	/** +	 * Sets the alignment of the image with respective to other elements on the page. +	 * Possible values include: absbottom, absmiddle, baseline, bottom, left, +	 * middle, right, texttop, and top. If an empty string is passed in, +	 * imagealign attribute will not be rendered. +	 * @param string the alignment of the image +	 */ +	public function setImageAlign($value) +	{ +		parent::setImageAlign($value); +		if($this->getActiveControl()->canUpdateClientSide()) +			$this->getPage()->getCallbackClient()->setAttribute($this, 'align', $value); +	} + +	/** +	 * @param string the URL of the image file +	 */ +	public function setImageUrl($value) +	{ +		parent::setImageUrl($value); +		if($this->getActiveControl()->canUpdateClientSide()) +			$this->getPage()->getCallbackClient()->setAttribute($this, 'src', $value); +	} +	/** +	 * @param string the URL to the long description of the image. +	 */ +	public function setDescriptionUrl($value) +	{ +		parent::setDescriptionUrl($value); +		if($this->getActiveControl()->canUpdateClientSide()) +			$this->getPage()->getCallbackClient()->setAttribute($this, 'longdesc', $value); +	}  }  ?>
\ No newline at end of file diff --git a/framework/Web/UI/ActiveControls/TActiveImageButton.php b/framework/Web/UI/ActiveControls/TActiveImageButton.php index 74e99781..5c599120 100644 --- a/framework/Web/UI/ActiveControls/TActiveImageButton.php +++ b/framework/Web/UI/ActiveControls/TActiveImageButton.php @@ -13,13 +13,150 @@  /**   * TActiveImageButton class.   * + * TActiveImageButton is the active control counter part to TLinkButton. + * When a TActiveImageButton is clicked, rather than a normal post back request a + * callback request is initiated. + * + * The {@link onCallback OnCallback} event is raised during a callback request + * and it is raise <b>after</b> the {@link onClick OnClick} event. + *   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version : $  Mon Jun 26 00:45:39 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TActiveImageButton extends TImageButton implements IActiveControl, ICallbackEventHandler  { +	/** +	 * Creates a new callback control, sets the adapter to +	 * TActiveControlAdapter. If you override this class, be sure to set the +	 * adapter appropriately by, for example, by calling this constructor. +	 */ +	public function __construct() +	{ +		parent::__construct(); +		$this->setAdapter(new TActiveControlAdapter($this)); +	} + +	/** +	 * @return TBaseActiveControl basic active control options. +	 */ +	public function getActiveControl() +	{ +		return $this->getAdapter()->getBaseActiveControl(); +	} + +	/** +	 * Sets the alternative text to be displayed in the TImage when the image is unavailable. +	 * @param string the alternative text +	 */ +	public function setAlternateText($value) +	{ +		parent::setAlternateText($value); +		if($this->getActiveControl()->canUpdateClientSide()) +			$this->getPage()->getCallbackClient()->setAttribute($this, 'alt', $value); +	} + +	/** +	 * Sets the alignment of the image with respective to other elements on the page. +	 * Possible values include: absbottom, absmiddle, baseline, bottom, left, +	 * middle, right, texttop, and top. If an empty string is passed in, +	 * imagealign attribute will not be rendered. +	 * @param string the alignment of the image +	 */ +	public function setImageAlign($value) +	{ +		parent::setImageAlign($value); +		if($this->getActiveControl()->canUpdateClientSide()) +			$this->getPage()->getCallbackClient()->setAttribute($this, 'align', $value); +	} + +	/** +	 * @param string the URL of the image file +	 */ +	public function setImageUrl($value) +	{ +		parent::setImageUrl($value); +		if($this->getActiveControl()->canUpdateClientSide()) +			$this->getPage()->getCallbackClient()->setAttribute($this, 'src', $value); +	} + +	/** +	 * @param string the URL to the long description of the image. +	 */ +	public function setDescriptionUrl($value) +	{ +		parent::setDescriptionUrl($value); +		if($this->getActiveControl()->canUpdateClientSide()) +			$this->getPage()->getCallbackClient()->setAttribute($this, 'longdesc', $value); +	} + +	/** +	 * Raises the callback event. This method is required by {@link +	 * ICallbackEventHandler} interface. If {@link getCausesValidation +	 * CausesValidation} is true, it will invoke the page's {@link TPage:: +	 * validate validate} method first. It will raise {@link onClick +	 * OnClick} event first and then the {@link onCallback OnCallback} event. +	 * This method is mainly used by framework and control developers. +	 * @param TCallbackEventParameter the event parameter +	 */ + 	public function raiseCallbackEvent($param) +	{ +		$this->raisePostBackEvent($param); +		$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); +	} + +	/** +	 * Override parent implementation, no javascript is rendered here instead +	 * the javascript required for active control is registered in {@link addAttributesToRender}. +	 */ +	protected function renderClientControlScript($writer) +	{ +	} + +	/** +	 * Register the x and y hidden input names of the position clicked. +	 * @param THtmlWriter the renderer. +	 */ +	public function onPreRender($writer) +	{ +		parent::onPreRender($writer); +		$uid = $uid=$this->getUniqueID(); +		$this->getPage()->registerPostDataLoader($uid.'_x'); +		$this->getPage()->registerPostDataLoader($uid.'_y'); +	} + +	/** +	 * Ensure that the ID attribute is rendered and registers the javascript code +	 * for initializing the active control. +	 */ +	protected function addAttributesToRender($writer) +	{ +		parent::addAttributesToRender($writer); +		$writer->addAttribute('id',$this->getClientID()); +		$this->getActiveControl()->registerCallbackClientScript( +			$this->getClientClassName(), $this->getPostBackOptions()); +	} + +	/** +	 * @return string corresponding javascript class name for this TActiveLinkButton. +	 */ +	protected function getClientClassName() +	{ +		return 'Prado.WebUI.TActiveImageButton'; +	}  }  ?>
\ No newline at end of file diff --git a/framework/Web/UI/ActiveControls/TActiveLabel.php b/framework/Web/UI/ActiveControls/TActiveLabel.php index f6c0ce81..c4b38cb4 100644 --- a/framework/Web/UI/ActiveControls/TActiveLabel.php +++ b/framework/Web/UI/ActiveControls/TActiveLabel.php @@ -20,15 +20,15 @@ Prado::using('System.Web.UI.ActiveControls.TActiveControlAdapter');   *
   * The active control counterpart of TLabel component. When
   * {@link TBaseActiveControl::setEnableUpdate ActiveControl.EnableUpdate}
 - * property is true the during a callback request, setting {@link setText Text} 
 - * property will also set the text of the label on the client upon callback 
 + * property is true the during a callback request, setting {@link setText Text}
 + * property will also set the text of the label on the client upon callback
   * completion. Similarly, setting {@link setForControl ForControl} will also set
   * the client-side "for" attribute on the label.
   *
   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  $Date: $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TActiveLabel extends TLabel implements IActiveControl
  {
 @@ -42,7 +42,7 @@ class TActiveLabel extends TLabel implements IActiveControl  		parent::__construct();
  		$this->setAdapter(new TActiveControlAdapter($this));
  	}
 -	
 +
  	/**
  	 * @return TBaseActiveControl basic active control options.
  	 */
 @@ -50,7 +50,7 @@ class TActiveLabel extends TLabel implements IActiveControl  	{
  		return $this->getAdapter()->getBaseActiveControl();
  	}
 -	
 +
  	/**
  	 * On callback response, the inner HTMl of the label is updated.
  	 * @param string the text value of the label
 @@ -61,7 +61,7 @@ class TActiveLabel extends TLabel implements IActiveControl  		if($this->getActiveControl()->canUpdateClientSide())
  			$this->getPage()->getCallbackClient()->update($this, $value);
  	}
 -	
 +
  	/**
  	 * Sets the ID of the control that the label is associated with.
  	 * The control must be locatable via {@link TControl::findControl} using the ID.
 @@ -77,6 +77,6 @@ class TActiveLabel extends TLabel implements IActiveControl  			$this->getPage()->getCallbackClient()->setAttribute($this, 'for', $id);
  		}
  	}
 -} 
 +}
  ?>
\ No newline at end of file diff --git a/framework/Web/UI/ActiveControls/TActiveLinkButton.php b/framework/Web/UI/ActiveControls/TActiveLinkButton.php index 16c02519..28bba04b 100644 --- a/framework/Web/UI/ActiveControls/TActiveLinkButton.php +++ b/framework/Web/UI/ActiveControls/TActiveLinkButton.php @@ -26,7 +26,7 @@   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version : $  Mon Jun 26 00:49:25 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TActiveLinkButton extends TLinkButton implements IActiveControl, ICallbackEventHandler  { diff --git a/framework/Web/UI/ActiveControls/TActiveListBox.php b/framework/Web/UI/ActiveControls/TActiveListBox.php index 77ca615a..30eeba2c 100644 --- a/framework/Web/UI/ActiveControls/TActiveListBox.php +++ b/framework/Web/UI/ActiveControls/TActiveListBox.php @@ -16,7 +16,7 @@   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version : $  Mon Jun 26 00:50:16 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TActiveListBox extends TListBox implements IActiveControl, ICallbackEventHandler  { diff --git a/framework/Web/UI/ActiveControls/TActiveListControlAdapter.php b/framework/Web/UI/ActiveControls/TActiveListControlAdapter.php index e6f3759a..5280e419 100644 --- a/framework/Web/UI/ActiveControls/TActiveListControlAdapter.php +++ b/framework/Web/UI/ActiveControls/TActiveListControlAdapter.php @@ -18,14 +18,14 @@ Prado::using('System.Web.UI.WebControls.TListControl');  /**   * TActiveListControlAdapter class. - *  + *   * Adapte the list controls to allows the selections on the client-side to be altered   * during callback response.   *   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version $Revision: $  Sun Jun 25 04:53:43 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TActiveListControlAdapter extends TActiveControlAdapter implements IListControlAdapter  { @@ -36,9 +36,9 @@ class TActiveListControlAdapter extends TActiveControlAdapter implements IListCo  	{  		return $this->getControl()->getActiveControl()->canUpdateClientSide();  	} -	 -	/**  -	 * Selects an item based on zero-base index on the client side.  + +	/** +	 * Selects an item based on zero-base index on the client side.  	 * @param integer the index (zero-based) of the item to be selected  	 */  	public function setSelectedIndex($index) @@ -48,8 +48,8 @@ class TActiveListControlAdapter extends TActiveControlAdapter implements IListCo  					$this->getControl(), 'Index', $index);  	} -	/**  -	 * Selects a list of item based on zero-base indices on the client side.  +	/** +	 * Selects a list of item based on zero-base indices on the client side.  	 * @param array list of index of items to be selected  	 */  	public function setSelectedIndices($indices) @@ -66,7 +66,7 @@ class TActiveListControlAdapter extends TActiveControlAdapter implements IListCo  			}  			if(count($list) > 0)  				$this->getPage()->getCallbackClient()->select( -					$this->getControl(), 'Indices', $list);			 +					$this->getControl(), 'Indices', $list);  		}  	} @@ -80,8 +80,8 @@ class TActiveListControlAdapter extends TActiveControlAdapter implements IListCo  			$this->getPage()->getCallbackClient()->select(  					$this->getControl(), 'Value', $value);  	} -	 -	/**  + +	/**  	 * Sets selection by a list of item values on the client side.  	 * @param array list of the selected item values  	 */ @@ -97,7 +97,7 @@ class TActiveListControlAdapter extends TActiveControlAdapter implements IListCo  					$this->getControl(), 'Values', $list);  		}  	} -	 +      /**       * Clears all existing selections on the client side.       */ @@ -123,19 +123,19 @@ class TActiveListControlAdapter extends TActiveControlAdapter implements IListCo  /**   * TActiveListItemCollection class. - *  + *   * Allows TActiveDropDownList and TActiveListBox to add new options   * during callback response. New options can only be added <b>after</b> the - * {@link TControl::onLoad OnLoad} event.  - *  - * The {@link getListHasChanged ListHasChanged} property is true when the  + * {@link TControl::onLoad OnLoad} event. + * + * The {@link getListHasChanged ListHasChanged} property is true when the   * list items has changed. The control responsible for the list needs to   * repopulate the client-side options.   *   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version $Revision: $  Sun Jun 25 21:15:05 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TActiveListItemCollection extends TListItemCollection  { @@ -147,7 +147,7 @@ class TActiveListItemCollection extends TListItemCollection  	 * @var boolean true if list items were changed.  	 */  	private $_hasChanged=false; -	 +  	/**  	 * @return boolean true if active controls can update client-side and  	 * the onLoad event has already been raised. @@ -157,7 +157,7 @@ class TActiveListItemCollection extends TListItemCollection  		return $this->getControl()->getActiveControl()->canUpdateClientSide()  				&& $this->getControl()->getHasLoaded();  	} -	 +  	/**  	 * @param IActiveControl a active list control.  	 */ @@ -165,7 +165,7 @@ class TActiveListItemCollection extends TListItemCollection  	{  		$this->_control = $control;  	} -	 +  	/**  	 * @return IActiveControl active control using the collection.  	 */ @@ -173,7 +173,7 @@ class TActiveListItemCollection extends TListItemCollection  	{  		return $this->_control;  	} -	 +  	/**  	 * @return boolean true if the list has changed after onLoad event.  	 */ @@ -181,7 +181,7 @@ class TActiveListItemCollection extends TListItemCollection  	{  		return $this->_hasChanged;  	} -	 +  	/**  	 * Inserts an item into the collection.  	 * The new option is added on the client-side during callback. @@ -196,7 +196,7 @@ class TActiveListItemCollection extends TListItemCollection  		if($this->canUpdateClientSide())  			$this->_hasChanged = true;  	} -	 +  	/**  	 * Removes an item from at specified index.  	 * @param int zero based index. @@ -205,7 +205,7 @@ class TActiveListItemCollection extends TListItemCollection  	{  		parent::removeAt($index);  		if($this->canUpdateClientSide()) -			$this->_hasChanged = true;		 +			$this->_hasChanged = true;  	}  } diff --git a/framework/Web/UI/ActiveControls/TActivePageAdapter.php b/framework/Web/UI/ActiveControls/TActivePageAdapter.php index 656b959c..5dce985a 100644 --- a/framework/Web/UI/ActiveControls/TActivePageAdapter.php +++ b/framework/Web/UI/ActiveControls/TActivePageAdapter.php @@ -1,6 +1,7 @@  <?php
  /**
 - * TActivePageAdapter, TCallbackEventParameter, TCallbackErrorHandler and TInvalidCallbackException class file.
 + * TActivePageAdapter, TCallbackEventParameter, TCallbackErrorHandler
 + * and TInvalidCallbackException class file.
   *
   * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
   * @link http://www.pradosoft.com/
 @@ -17,16 +18,16 @@ Prado::using('System.Web.UI.ActiveControls.TCallbackResponseAdapter');  /**
   * TActivePageAdapter class.
 - * 
 + *
   * Callback request handler.
 - * 
 + *
   * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
   * @version $Revision: $  $Date: $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TActivePageAdapter extends TControlAdapter
 -{	
 +{
  	/**
  	 * Callback response data header name.
  	 */
 @@ -43,9 +44,9 @@ class TActivePageAdapter extends TControlAdapter  	 * Callback page state header name.
  	 */
  	const CALLBACK_PAGESTATE_HEADER = 'X-PRADO-PAGESTATE';
 -		
 +
  	/**
 -	 * @var ICallbackEventHandler callback event handler. 
 +	 * @var ICallbackEventHandler callback event handler.
  	 */
  	private $_callbackEventTarget;
  	/**
 @@ -64,11 +65,11 @@ class TActivePageAdapter extends TControlAdapter  	public function __construct(TPage $control)
  	{
  		parent::__construct($control);
 -		
 +
  		//TODO: can this be done later?
  		$response = $this->getApplication()->getResponse();
  		$response->setAdapter(new TCallbackResponseAdapter($response));
 -		
 +
  		$this->trapCallbackErrorsExceptions();
  	}
 @@ -81,7 +82,7 @@ class TActivePageAdapter extends TControlAdapter  		Prado::trace("ActivePage raiseCallbackEvent()",'System.Web.UI.ActiveControls.TActivePageAdapter');
  		$this->raiseCallbackEvent();
  	}
 -	
 +
  	/**
  	 * Trap errors and exceptions to be handled by TCallbackErrorHandler.
  	 */
 @@ -89,7 +90,7 @@ class TActivePageAdapter extends TControlAdapter  	{
  		$this->getApplication()->setErrorHandler(new TCallbackErrorHandler);
  	}
 -	
 +
  	/**
  	 * Render the callback response.
  	 * @param THtmlWriter html content writer.
 @@ -98,8 +99,8 @@ class TActivePageAdapter extends TControlAdapter  	{
  		Prado::trace("ActivePage renderCallbackResponse()",'System.Web.UI.ActiveControls.TActivePageAdapter');
  		$this->renderResponse($writer);
 -	}	
 -	
 +	}
 +
  	/**
  	 * Renders the callback response by adding additional callback data and
  	 * javascript actions in the header and page state if required.
 @@ -119,7 +120,7 @@ class TActivePageAdapter extends TControlAdapter  				$response->appendHeader(self::CALLBACK_DATA_HEADER.': '.$data);
  			}
  		}
 -		
 +
  		//sends page state in header
  		if(($handler = $this->getCallbackEventTarget()) !== null)
  		{
 @@ -129,7 +130,7 @@ class TActivePageAdapter extends TControlAdapter  				$response->appendHeader(self::CALLBACK_PAGESTATE_HEADER.': '.$pagestate);
  			}
  		}
 -		
 +
  		//safari must receive at least 1 byte of data.
  		$writer->write(" ");
 @@ -140,7 +141,7 @@ class TActivePageAdapter extends TControlAdapter  			$this->getPage()->getClientScript()->renderEndScripts($writer);
  			$this->getPage()->getCallbackClient()->evaluateScript($writer);
  		}
 -		
 +
  		//output the actions
  		$executeJavascript = $this->getCallbackClientHandler()->getClientFunctionsToExecute();
  		$actions = TJavascript::jsonEncode($executeJavascript);
 @@ -176,7 +177,7 @@ class TActivePageAdapter extends TControlAdapter  		 	throw new TInvalidCallbackException('callback_invalid_target', $target);
  		 }
  	}
 -	
 +
  	/**
  	 * @return TControl the control responsible for the current callback event,
  	 * null if nonexistent
 @@ -215,7 +216,7 @@ class TActivePageAdapter extends TControlAdapter  		}
  		return $this->_callbackEventParameter;
  	}
 -	
 +
  	/**
  	 * @param mixed postback event parameter
  	 */
 @@ -223,10 +224,10 @@ class TActivePageAdapter extends TControlAdapter  	{
  		$this->_callbackEventParameter=$value;
  	}
 -	
 +
  	/**
  	 * Gets the callback client script handler. It handlers the javascript functions
 -	 * to be executed during the callback response. 
 +	 * to be executed during the callback response.
  	 * @return TCallbackClientScript callback client handler.
  	 */
  	public function getCallbackClientHandler()
 @@ -234,23 +235,30 @@ class TActivePageAdapter extends TControlAdapter  		if(is_null($this->_callbackClient))
  			$this->_callbackClient = new TCallbackClientScript;
  		return $this->_callbackClient;
 -	}	
 +	}
  }
  /**
   * TCallbackEventParameter class.
 - * 
 + *
   * The TCallbackEventParameter provides the parameter passed during the callback
   * requestion in the {@link getParameter Parameter} property. The
 - * callback response response content (e.g. new HTML content) can be written to
 - * the {@link getOutput Output} property, which returns an instance of
 - * THtmlWriter. The response data (i.e., passing results back to the client-side
 - * callback handler function) can be set using {@link setData Data} property. 
 - * 
 + * callback response content (e.g. new HTML content) must be rendered
 + * using an THtmlWriter obtained from the {@link getNewWriter NewWriter}
 + * property, which returns a <b>NEW</b> instance of TCallbackResponseWriter.
 + *
 + * Each instance TCallbackResponseWriter is associated with a unique
 + * boundary delimited. By default each panel only renders its own content.
 + * To replace the content of ONE panel with that of rendered from multiple panels
 + * use the same writer instance for the panels to be rendered.
 + *
 + * The response data (i.e., passing results back to the client-side
 + * callback handler function) can be set using {@link setData Data} property.
 + *
   * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
   * @version $Revision: $  $Date: $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TCallbackEventParameter extends TEventParameter
  {
 @@ -273,13 +281,13 @@ class TCallbackEventParameter extends TEventParameter  	}
  	/**
 -	 * @return THtmlWriter holds the response content.
 +	 * @return TCallbackResponseWriter holds the response content.
  	 */
 -	public function getOutput()
 +	public function getNewWriter()
  	{
  		return $this->_response->createHtmlWriter(null);
  	}
 -	
 +
  	/**
  	 * @return mixed callback request parameter.
  	 */
 @@ -287,7 +295,7 @@ class TCallbackEventParameter extends TEventParameter  	{
  		return $this->_parameter;
  	}
 -	
 +
  	/**
  	 * @param mixed callback response data.
  	 */
 @@ -295,7 +303,7 @@ class TCallbackEventParameter extends TEventParameter  	{
  		$this->_response->getAdapter()->setResponseData($value);
  	}
 -	
 +
  	/**
  	 * @return mixed callback response data.
  	 */
 @@ -307,7 +315,7 @@ class TCallbackEventParameter extends TEventParameter  /**
   * TCallbackErrorHandler class.
 - * 
 + *
   * Captures errors and exceptions and send them back during callback response.
   * When the application is in debug mode, the error and exception stack trace
   * are shown. A TJavascriptLogger must be present on the client-side to view
 @@ -316,7 +324,7 @@ class TCallbackEventParameter extends TEventParameter   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Sun Jun 18 19:11:47 EST 2006 $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TCallbackErrorHandler extends TErrorHandler
  {
 @@ -330,7 +338,7 @@ class TCallbackErrorHandler extends TErrorHandler  		if($this->getApplication()->getMode()===TApplication::STATE_DEBUG)
  		{
  			$response = $this->getApplication()->getResponse();
 -			$trace = TJavascript::jsonEncode($this->getExceptionStackTrace($exception));			
 +			$trace = TJavascript::jsonEncode($this->getExceptionStackTrace($exception));
  			$response->appendHeader('HTTP/1.0 500 Internal Error');
  			$response->appendHeader(TActivePageAdapter::CALLBACK_ERROR_HEADER.': '.$trace);
  		}
 @@ -341,7 +349,7 @@ class TCallbackErrorHandler extends TErrorHandler  		}
  		$this->getApplication()->getResponse()->flush();
  	}
 -	
 +
  	/**
  	 * @param Exception exception details.
  	 * @return array exception stack trace details.
 @@ -376,10 +384,10 @@ class TCallbackErrorHandler extends TErrorHandler   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Sun Jun 18 19:17:13 EST 2006 $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TInvalidCallbackException extends TException
  {
 -} 
 +}
  ?>
\ No newline at end of file diff --git a/framework/Web/UI/ActiveControls/TActivePanel.php b/framework/Web/UI/ActiveControls/TActivePanel.php index 467209ef..45817541 100644 --- a/framework/Web/UI/ActiveControls/TActivePanel.php +++ b/framework/Web/UI/ActiveControls/TActivePanel.php @@ -27,14 +27,14 @@ Prado::using('System.Web.UI.ActiveControls.TActiveControlAdapter');   * <code>
   * function callback1_requested($sender, $param)
   * {
 - * 	   $this->panel1->flush($param->getOutput());
 + * 	   $this->panel1->render($param->getNewWriter());
   * }
   * </code>
   *
   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Sun Jun 18 01:23:54 EST 2006 $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TActivePanel extends TPanel implements IActiveControl
  {
 diff --git a/framework/Web/UI/ActiveControls/TActiveRadioButton.php b/framework/Web/UI/ActiveControls/TActiveRadioButton.php index 334de3a1..cb4e7ef1 100644 --- a/framework/Web/UI/ActiveControls/TActiveRadioButton.php +++ b/framework/Web/UI/ActiveControls/TActiveRadioButton.php @@ -28,7 +28,7 @@   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version $Revision: $  Mon Jun 26 00:47:14 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TActiveRadioButton extends TRadioButton implements IActiveControl, ICallbackEventHandler  { diff --git a/framework/Web/UI/ActiveControls/TActiveRadioButtonList.php b/framework/Web/UI/ActiveControls/TActiveRadioButtonList.php index daaaf9aa..a54fa2d5 100644 --- a/framework/Web/UI/ActiveControls/TActiveRadioButtonList.php +++ b/framework/Web/UI/ActiveControls/TActiveRadioButtonList.php @@ -25,7 +25,7 @@   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version : $  Mon Jun 26 00:48:08 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TActiveRadioButtonList extends TRadioButtonList implements IActiveControl, ICallbackEventHandler  { diff --git a/framework/Web/UI/ActiveControls/TActiveTextBox.php b/framework/Web/UI/ActiveControls/TActiveTextBox.php index 950a5dcb..20358a36 100644 --- a/framework/Web/UI/ActiveControls/TActiveTextBox.php +++ b/framework/Web/UI/ActiveControls/TActiveTextBox.php @@ -17,7 +17,7 @@ Prado::using('System.Web.UI.ActiveControls.TActiveControlAdapter');  /**
   * TActiveTextBox class.
 - * 
 + *
   * TActiveTextBox allows the {@link setText Text} property of the textbox to
   * be changed during callback. When {@link setAutoPostBack AutoPostBack} property
   * is true, changes to the textbox contents will perform a callback request causing
 @@ -27,7 +27,7 @@ Prado::using('System.Web.UI.ActiveControls.TActiveControlAdapter');   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Sun Jun 18 20:05:16 EST 2006 $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TActiveTextBox extends TTextBox implements ICallbackEventHandler, IActiveControl
  {
 @@ -41,7 +41,7 @@ class TActiveTextBox extends TTextBox implements ICallbackEventHandler, IActiveC  		parent::__construct();
  		$this->setAdapter(new TActiveControlAdapter($this));
  	}
 -	
 +
  	/**
  	 * @return TBaseActiveCallbackControl standard callback control options.
  	 */
 @@ -60,18 +60,18 @@ class TActiveTextBox extends TTextBox implements ICallbackEventHandler, IActiveC  		if($this->getActiveControl()->canUpdateClientSide() && $this->getHasLoadedPostData())
  			$this->getPage()->getCallbackClient()->setValue($this, $value);
  	}
 -	
 +
  	/**
  	 * Raises the callback event. This method is required by {@link
 -	 * ICallbackEventHandler} interface. 
 +	 * ICallbackEventHandler} interface.
  	 * This method is mainly used by framework and control developers.
  	 * @param TCallbackEventParameter the event parameter
  	 */
   	public function raiseCallbackEvent($param)
  	{
  		$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
 diff --git a/framework/Web/UI/ActiveControls/TAutoComplete.php b/framework/Web/UI/ActiveControls/TAutoComplete.php index f64e48aa..fe446f99 100644 --- a/framework/Web/UI/ActiveControls/TAutoComplete.php +++ b/framework/Web/UI/ActiveControls/TAutoComplete.php @@ -17,25 +17,25 @@ Prado::using('System.Web.UI.ActiveControls.TActiveTextBox');  /**
   * TAutoComplete class.
 - * 
 - * TAutoComplete is a textbox that provides a list of suggestion on 
 + *
 + * TAutoComplete is a textbox that provides a list of suggestion on
   * the current partial word typed in the textbox. The suggestions are
   * requested using callbacks, and raises the {@link onSuggestion OnSuggestion}
   * event. The events of the TActiveText (from which TAutoComplete is extended from)
   * and {@link onSuggestion OnSuggestion} are mutually exculsive. That is,
   * if {@link onTextChange OnTextChange} and/or {@link onCallback OnCallback}
   * events are raise, then {@link onSuggestion OnSuggestion} will not be raise, and
 - * vice versa. 
 - * 
 + * vice versa.
 + *
   * The list of suggestions should be set in the {@link onSuggestion OnSuggestion}
 - * event handler. The partial word to match the suggestion is in the 
 + * event handler. The partial word to match the suggestion is in the
   * {@link TCallbackEventParameter::getParameter TCallbackEventParameter::Parameter}
   * property. The datasource of the TAutoComplete must be set using {@link setDataSource}
   * method. This sets the datasource for the suggestions repeater, available through
 - * the {@link getSuggestions Suggestions} property. Header, footer templates and 
 + * the {@link getSuggestions Suggestions} property. Header, footer templates and
   * other properties of the repeater can be access via the {@link getSuggestions Suggestions}
   * property (e.g. they can be set in the .page templates).
 - * 
 + *
   * To return the list of suggestions back to the browser, in your {@link onSuggestion OnSuggestion}
   * event handler, do
   * <code>
 @@ -44,27 +44,27 @@ Prado::using('System.Web.UI.ActiveControls.TActiveTextBox');   *   $token = $param->getParameter(); //the partial word to match
   *   $sender->setDataSource($this->getSuggestionsFor($token)); //set suggestions
   *   $sender->dataBind();
 - *   $sender->flush($param->getOutput()); //sends suggestion back to browser.
 + *   $sender->render($param->getNewWriter()); //sends suggestion back to browser.
   * }
   * </code>
 - * 
 + *
   * TAutoComplete allows multiple suggestions within one textbox with each
 - * word or phrase separated by any characters specified in the 
 + * word or phrase separated by any characters specified in the
   * {@link setSeparator Separator} property. The {@link setFrequency Frequency}
   * and {@link setMinChars MinChars} properties sets the delay and minimum number
   * of characters typed, respectively, before requesting for sugggestions.
 - * 
 + *
   * Use {@link onTextChange OnTextChange} and/or {@link onCallback OnCallback} events
   * to handle post backs due to {@link setAutoPostBack AutoPostBack}.
 - * 
 + *
   * In the {@link getSuggestions Suggestions} TRepater item template, all HTML text elements
   * are considered as text for the suggestion. Text within HTML elements with CSS class name
   * "informal" are ignored as text for suggestions.
   *
   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Mon Jun 19 03:50:05 EST 2006 $
 - * @package System
 - * @since 3.0
 + * @package System.Web.UI.ActiveControls
 + * @since 3.1
   */
  class TAutoComplete extends TActiveTextBox implements INamingContainer
  {
 @@ -76,7 +76,7 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  	 * @var TPanel result panel holding the suggestion items.
  	 */
  	private $_resultPanel=null;
 -	
 +
  	/**
  	 * @return string word or token separators (delimiters).
  	 */
 @@ -84,7 +84,7 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  	{
  		return $this->getViewState('tokens', '');
  	}
 -	
 +
  	/**
  	 * @return string word or token separators (delimiters).
  	 */
 @@ -92,7 +92,7 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  	{
  		$this->setViewState('tokens', TPropertyValue::ensureString($value), '');
  	}
 -	
 +
  	/**
  	 * @return float maximum delay (in seconds) before requesting a suggestion.
  	 */
 @@ -100,7 +100,7 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  	{
  		return $this->getViewState('frequency', '');
  	}
 -	
 +
  	/**
  	 * @param float maximum delay (in seconds) before requesting a suggestion.
  	 * Default is 0.4.
 @@ -109,7 +109,7 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  	{
  		$this->setViewState('frequency', TPropertyValue::ensureFloat($value),'');
  	}
 -	
 +
  	/**
  	 * @return integer minimum number of characters before requesting a suggestion.
  	 */
 @@ -117,7 +117,7 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  	{
  		return $this->getViewState('minChars','');
  	}
 -	
 +
  	/**
  	 * @param integer minimum number of characters before requesting a suggestion.
  	 */
 @@ -125,17 +125,17 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  	{
  		$this->setViewState('minChars', TPropertyValue::ensureInteger($value), '');
  	}
 -	
 +
  	/**
  	 * Raises the callback event. This method is overrides the parent implementation.
 -	 * If {@link setAutoPostBack AutoPostBack} is enabled it will raise 
 -	 * {@link onTextChanged OnTextChanged} event event and then the 
 +	 * If {@link setAutoPostBack AutoPostBack} is enabled it will raise
 +	 * {@link onTextChanged OnTextChanged} event event and then the
  	 * {@link onCallback OnCallback} event. The {@link onSuggest OnSuggest} event is
  	 * raise if the request is to find sugggestions, the {@link onTextChanged OnTextChanged}
  	 * and {@link onCallback OnCallback} events are <b>NOT</b> raised.
  	 * This method is mainly used by framework and control developers.
  	 * @param TCallbackEventParameter the event parameter
 -	 */	
 +	 */
   	public function raiseCallbackEvent($param)
  	{
  		$token = $param->getParameter();
 @@ -149,17 +149,17 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  	}
  	/**
 -	 * This method is invoked when a autocomplete suggestion is requested. 
 +	 * This method is invoked when a autocomplete suggestion is requested.
  	 * The method raises 'OnSuggest' event. 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 onSuggest($param)
  	{
  		$this->raiseEvent('OnSuggest', $this, $param);
  	}
 -	
 +
  	/**
  	 * @param array data source for suggestions.
  	 */
 @@ -167,7 +167,7 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  	{
  		$this->getSuggestions()->setDataSource($data);
  	}
 -	
 +
  	/**
  	 * @return TPanel suggestion results panel.
  	 */
 @@ -177,7 +177,7 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  			$this->_resultPanel = $this->createResultPanel();
  		return $this->_resultPanel;
  	}
 -	
 +
  	/**
  	 * @return TPanel new instance of result panel. Default uses TPanel.
  	 */
 @@ -188,7 +188,7 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  		$panel->setID('result');
  		return $panel;
  	}
 -	
 +
  	/**
  	 * @return TRepeater suggestion list repeater
  	 */
 @@ -198,7 +198,7 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  			$this->_repeater = $this->createRepeater();
  		return $this->_repeater;
  	}
 -	
 +
  	/**
  	 * @return TRepeater new instance of TRepater to render the list of suggestions.
  	 */
 @@ -221,22 +221,24 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  		parent::renderEndTag($writer);
  		$this->renderResultPanel($writer);
  	}
 -	
 +
  	/**
  	 * Renders the result panel.
  	 * @param THtmlWriter the renderer.
  	 */
  	protected function renderResultPanel($writer)
  	{
 -		$this->getResultPanel()->render($writer);	
 +		$this->getResultPanel()->render($writer);
  	}
 -	
 +
  	/**
  	 * Flush and returns the suggestions content back to the browser client.
  	 * @param THtmlWriter the renderer.
  	 */
 -	public function flush($writer)
 +	public function render($writer)
  	{
 +		if(!$this->getPage()->getIsCallback())
 +			parent::render($writer);
  		if($this->getActiveControl()->canUpdateClientSide())
  				$this->renderSuggestions($writer);
  	}
 @@ -249,12 +251,12 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  	{
  		if($this->getSuggestions()->getItems()->getCount() > 0)
  		{
 -			$this->getSuggestions()->render($writer); 
 +			$this->getSuggestions()->render($writer);
  			$boundary = $writer->getWriter()->getBoundary();
  			$this->getResponse()->getAdapter()->setResponseData($boundary);
 -		}		
 +		}
  	}
 -	
 +
  	/**
  	 * @return array list of callback options.
  	 */
 @@ -266,7 +268,7 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  			$string = strtr($string,array('\t'=>"\t",'\n'=>"\n",'\r'=>"\r"));
  			$token = preg_split('//', $string, -1, PREG_SPLIT_NO_EMPTY);
  			$options['tokens'] = TJavascript::encode($token,false);
 -		} 
 +		}
  		if($this->getAutoPostBack())
  		{
  			$options = array_merge($options,$this->getPostBackOptions());
 @@ -277,15 +279,15 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  		$options['EventTarget'] = $this->getUniqueID();
  		return $options;
  	}
 -	
 +
  	/**
 -	 * Override parent implementation, no javascript is rendered here instead 
 +	 * Override parent implementation, no javascript is rendered here instead
  	 * the javascript required for active control is registered in {@link addAttributesToRender}.
  	 */
  	protected function renderClientControlScript($writer)
  	{
  	}
 -	
 +
  	/**
  	 * Ensure that the ID attribute is rendered and registers the javascript code
  	 * for initializing the active control.
 @@ -305,21 +307,24 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer  	protected function getClientClassName()
  	{
  		return 'Prado.WebUI.TAutoComplete';
 -	}	
 +	}
  }
  /**
 - * TWizardSideBarTemplate class.
 - * TWizardSideBarTemplate is the default template for wizard sidebar.
 - * @author Qiang Xue <qiang.xue@gmail.com>
 - * @version $Revision: $  $Date: $
 - * @package System.Web.UI.WebControls
 - * @since 3.0
 + * TAutoCompleteTemplate class.
 + *
 + * TAutoCompleteTemplate is the default template for TAutoCompleteTemplate
 + * item template.
 + *
 + * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
 + * @version $Revision: $  Mon Jun 19 03:50:05 EST 2006 $
 + * @package System.Web.UI.ActiveControls
 + * @since 3.1
   */
  class TAutoCompleteTemplate extends TComponent implements ITemplate
  {
  	private $_template;
 -	
 +
  	public function __construct($template)
  	{
  		$this->_template = $template;
 diff --git a/framework/Web/UI/ActiveControls/TBaseActiveControl.php b/framework/Web/UI/ActiveControls/TBaseActiveControl.php index c368cb68..e5fe8f16 100644 --- a/framework/Web/UI/ActiveControls/TBaseActiveControl.php +++ b/framework/Web/UI/ActiveControls/TBaseActiveControl.php @@ -10,7 +10,7 @@   * @package System.Web.UI.ActiveControls
   */
 -Prado::using('System.Web.UI.ActiveControls.TCallbackClientSideOptions');
 +Prado::using('System.Web.UI.ActiveControls.TCallbackClientSide');
  /**
   * TBaseActiveControl class provided additional basic property for every
 @@ -25,7 +25,7 @@ Prado::using('System.Web.UI.ActiveControls.TCallbackClientSideOptions');   * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
   * @version $Revision: $  $Date: $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TBaseActiveControl extends TComponent
  {
 @@ -154,21 +154,21 @@ class TBaseActiveControl extends TComponent   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Fri Jun 16 08:40:43 EST 2006 $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TBaseActiveCallbackControl extends TBaseActiveControl
  {
  	/**
  	 * Callback client-side options can be set by setting the properties of
  	 * the ClientSide property. E.g. <com:TCallback ActiveControl.ClientSide.OnSuccess="..." />
 -	 * See {@link TCallbackClientSideOptions} for details on the properties of ClientSide.
 -	 * @return TCallbackClientSideOptions client-side callback options.
 +	 * See {@link TCallbackClientSide} for details on the properties of ClientSide.
 +	 * @return TCallbackClientSide client-side callback options.
  	 */
  	public function getClientSide()
  	{
  		if(is_null($client = $this->getOption('ClientSide')))
  		{
 -			$client = $this->createClientSideOptions();
 +			$client = $this->createClientSide();
  			$this->setOption('ClientSide', $client);
  		}
  		return $client;
 @@ -176,7 +176,7 @@ class TBaseActiveCallbackControl extends TBaseActiveControl  	/**
  	 * Sets the client side options. Can only be set when client side is null.
 -	 * @param TCallbackClientSideOptions client side options.
 +	 * @param TCallbackClientSide client side options.
  	 */
  	public function setClientSide($client)
  	{
 @@ -188,11 +188,11 @@ class TBaseActiveCallbackControl extends TBaseActiveControl  	}
  	/**
 -	 * @return TCallbackClientSideOptions callback client-side options.
 +	 * @return TCallbackClientSide callback client-side options.
  	 */
 -	protected function createClientSideOptions()
 +	protected function createClientSide()
  	{
 -		return new TCallbackClientSideOptions;
 +		return new TCallbackClientSide;
  	}
  	/**
 diff --git a/framework/Web/UI/ActiveControls/TCallback.php b/framework/Web/UI/ActiveControls/TCallback.php index e87cea11..22d6a01e 100644 --- a/framework/Web/UI/ActiveControls/TCallback.php +++ b/framework/Web/UI/ActiveControls/TCallback.php @@ -20,9 +20,9 @@ Prado::using('System.Web.UI.ActiveControls.TActiveControlAdapter');   *
   * The TCallback provides a basic callback handler that can be invoke from the
   * client side by running the javascript code obtained from the
 - * {@link TBaseActiveCallbackControl::getJavascript ActiveControl.Javascript} property. 
 + * {@link TBaseActiveCallbackControl::getJavascript ActiveControl.Javascript} property.
   * The event {@link onCallback OnCallback} is raise when a callback is requested made.
 - * 
 + *
   * Example usage:
   * <code>
   * 	<com:TCallback ID="callback1" OnCallback="callback1_Requested" />
 @@ -38,10 +38,10 @@ Prado::using('System.Web.UI.ActiveControls.TActiveControlAdapter');   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  $Date: $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TCallback extends TControl implements ICallbackEventHandler, IActiveControl
 -{	
 +{
  	/**
  	 * Creates a new callback control, sets the adapter to
  	 * TActiveControlAdapter. If you override this class, be sure to set the
 @@ -60,7 +60,7 @@ class TCallback extends TControl implements ICallbackEventHandler, IActiveContro  	{
  		return $this->getAdapter()->getBaseActiveControl();
  	}
 -	
 +
  	/**
  	 * Raises the callback event. This method is required by {@link
  	 * ICallbackEventHandler} interface. If {@link getCausesValidation
 @@ -69,25 +69,25 @@ class TCallback extends TControl implements ICallbackEventHandler, IActiveContro  	 * OnCallback} event. This method is mainly used by framework and control
  	 * developers.
  	 * @param TCallbackEventParameter the event parameter
 -	 */	
 +	 */
  	public function raiseCallbackEvent($param)
  	{
  		if($this->getActiveControl()->canCauseValidation())
  			$this->getPage()->validate($this->getActiveControl()->getValidationGroup());
  		$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);
  	}
 -} 
 +}
  ?>
\ No newline at end of file diff --git a/framework/Web/UI/ActiveControls/TCallbackClientScript.php b/framework/Web/UI/ActiveControls/TCallbackClientScript.php index dbfa935f..4aa3efc6 100644 --- a/framework/Web/UI/ActiveControls/TCallbackClientScript.php +++ b/framework/Web/UI/ActiveControls/TCallbackClientScript.php @@ -30,7 +30,7 @@   * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
   * @version $Revision: $  $Date: $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TCallbackClientScript extends TApplicationComponent
  {
 diff --git a/framework/Web/UI/ActiveControls/TCallbackClientSideOptions.php b/framework/Web/UI/ActiveControls/TCallbackClientSide.php index e8c2dc26..6d298a4f 100644 --- a/framework/Web/UI/ActiveControls/TCallbackClientSideOptions.php +++ b/framework/Web/UI/ActiveControls/TCallbackClientSide.php @@ -1,6 +1,6 @@  <?php
  /**
 - * TCallbackClientSideOptions class file
 + * TCallbackClientSide class file
   *
   * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
   * @link http://www.pradosoft.com/
 @@ -9,28 +9,28 @@   * @version $Revision: $  $Date: $
   * @package System.Web.UI.ActiveControls
   */
 - 
 +
  /**
 - * TCallbackClientSideOptions class.
 - * 
 + * TCallbackClientSide class.
 + *
   * The following client side events are executing in order if the callback
   * request and response are send and received successfuly.
 - * 
 - * - <b>onUninitialized</b> executed when callback request is uninitialized. 
 - * - <b>onLoading</b> executed when callback request is initiated 
 - * - <b>onLoaded</b> executed when callback request begins. 
 - * - <b>onInteractive</b> executed when callback request is in progress. 
 + *
 + * - <b>onUninitialized</b> executed when callback request is uninitialized.
 + * - <b>onLoading</b> executed when callback request is initiated
 + * - <b>onLoaded</b> executed when callback request begins.
 + * - <b>onInteractive</b> executed when callback request is in progress.
   * - <b>onComplete</b>executed when callback response returns.
 - * 
 + *
   * The <tt>OnSuccess</tt> and <tt>OnFailure</tt> events are raised when the
   * response is returned. A successful request/response will raise
   * <tt>OnSuccess</tt> event otherwise <tt>OnFailure</tt> will be raised.
 - * 
 - * - <b>onSuccess</b> executed when callback request returns and is successful. 
 + *
 + * - <b>onSuccess</b> executed when callback request returns and is successful.
   * - <b>onFailure</b> executed when callback request returns and fails.
   * - <b>onException</b> raised when callback request fails due to
   * request/response errors.
 - * 
 + *
   * - <b>PostInputs</b> true to collect the form inputs and post them during
   * callback, default is true.
   * - <b>RequestTimeOut</b> The request timeout in milliseconds.
 @@ -40,13 +40,13 @@   * - <b>EnablePageStateUpdate</b> enable the callback response to enable the
   * viewstate update. This will automatically set HasPrority to true when
   * enabled.
 - * 
 + *
   * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
   * @version $Revision: $  $Date: $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
 -class TCallbackClientSideOptions extends TClientSideOptions
 +class TCallbackClientSide extends TClientSideOptions
  {
  	/**
  	 * Returns javascript statement enclosed within a javascript function.
 @@ -56,9 +56,9 @@ class TCallbackClientSideOptions extends TClientSideOptions  	 */
  	protected function ensureFunction($javascript)
  	{
 -		return "function(request, result){ {$javascript} }";
 +		return "function(sender, parameter){ {$javascript} }";
  	}
 -	
 +
  	/**
  	 * @return string javascript code for client-side onUninitialized event
  	 */
 @@ -66,7 +66,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		return $this->getOption('onUninitialized');
  	}
 -	
 +
  	/**
  	 * @param string javascript code for client-side onUninitialized event.
  	 */
 @@ -74,7 +74,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		$this->setFunction('onUninitialized', $javascript);
  	}
 -	
 +
  	/**
  	 * @return string javascript code for client-side onLoading event
  	 */
 @@ -82,7 +82,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		return $this->getOption('onLoading');
  	}
 -	
 +
  	/**
  	 * @param string javascript code for client-side onLoading event.
  	 */
 @@ -90,7 +90,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		$this->setFunction('onLoading', $javascript);
  	}
 -		
 +
  	/**
  	 * @return string javascript code for client-side onLoaded event
  	 */
 @@ -98,7 +98,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		return $this->getOption('onLoaded');
  	}
 -	
 +
  	/**
  	 * @param string javascript code for client-side onLoaded event.
  	 */
 @@ -113,7 +113,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		return $this->getOption('onInteractive');
  	}
 -	
 +
  	/**
  	 * @param string javascript code for client-side onInteractive event.
  	 */
 @@ -128,7 +128,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		return $this->getOption('onComplete');
  	}
 -	
 +
  	/**
  	 * @param string javascript code for client-side onComplete event.
  	 */
 @@ -143,7 +143,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		return $this->getOption('onSuccess');
  	}
 -	
 +
  	/**
  	 * @param string javascript code for client-side onSuccess event.
  	 */
 @@ -159,7 +159,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		return $this->getOption('onFailure');
  	}
 -	
 +
  	/**
  	 * @param string javascript code for client-side onFailure event.
  	 */
 @@ -167,7 +167,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		$this->setFunction('onFailure', $javascript);
  	}
 -	
 +
  	/**
  	 * @return string javascript code for client-side onException event
  	 */
 @@ -175,15 +175,15 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		return $this->getOption('onException');
  	}
 -	
 +
  	/**
  	 * @param string javascript code for client-side onException event.
  	 */
  	public function setOnException($javascript)
  	{
  		$this->setFunction('onException', $javascript);
 -	}	
 -	
 +	}
 +
  	/**
  	 * @return boolean true to post the inputs of the form on callback, default
  	 * is post the inputs on callback.
 @@ -192,7 +192,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		return $this->getOption('PostInputs');
  	}
 -	
 +
  	/**
  	 * @param boolean true to post the inputs of the form with callback
  	 * requests. Default is to post the inputs.
 @@ -201,7 +201,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		$this->setOption('PostInputs', TPropertyValue::ensureBoolean($value));
  	}
 -	
 +
  	/**
  	 * @return integer callback request timeout.
  	 */
 @@ -209,15 +209,15 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		return $this->getOption('RequestTimeOut');
  	}
 -	
 +
  	/**
 -	 * @param integer callback request timeout 
 +	 * @param integer callback request timeout
  	 */
  	public function setRequestTimeOut($value)
  	{
  		$this->setOption('RequestTimeOut', TPropertyValue::ensureInteger($value));
  	}
 -	
 +
  	/**
  	 * @return boolean true if the callback request has priority and will abort
  	 * existing prioritized request in order to send immediately. It does not
 @@ -228,7 +228,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  		$option =  $this->getOption('HasPriority');
  		return is_null($option) ? true : $option;
  	}
 -	
 +
  	/**
  	 * @param boolean true to ensure that the callback request will be sent
  	 * immediately and will abort existing prioritized requests. It does not
 @@ -241,7 +241,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  		if(!$hasPriority)
  			$this->setEnablePageStateUpdate(false);
  	}
 -	
 +
  	/**
  	 * Set to true to enable the callback response to enable the viewstate
  	 * update. This will automatically set HasPrority to true.
 @@ -250,12 +250,12 @@ class TCallbackClientSideOptions extends TClientSideOptions  	 */
  	public function setEnablePageStateUpdate($value)
  	{
 -		$enabled = TPropertyValue::ensureBoolean($value); 
 +		$enabled = TPropertyValue::ensureBoolean($value);
  		$this->setOption('EnablePageStateUpdate', $enabled);
 -		if($enabled) 
 +		if($enabled)
  			$this->setHasPriority(true);
  	}
 -	
 +
  	/**
  	 * @return boolean client-side viewstate will be updated on callback
  	 * response if true. Default is true.
 @@ -265,7 +265,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  		$option = $this->getOption('EnablePageStateUpdate');
  		return is_null($option) ? true : $option;
  	}
 -	
 +
  	/**
  	 * @return string post back target ID
  	 */
 @@ -273,7 +273,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		return $this->getOption('EventTarget');
  	}
 -	
 +
  	/**
  	 * @param string post back target ID
  	 */
 @@ -291,7 +291,7 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		return $this->getOption('EventParameter');
  	}
 -	
 +
  	/**
  	 * @param string post back event parameter.
  	 */
 @@ -299,6 +299,6 @@ class TCallbackClientSideOptions extends TClientSideOptions  	{
  		$this->setOption('EventParameter', $value);
  	}
 -} 
 +}
  ?>
\ No newline at end of file diff --git a/framework/Web/UI/ActiveControls/TCallbackOptions.php b/framework/Web/UI/ActiveControls/TCallbackOptions.php index 588cbf8a..9a603b6f 100644 --- a/framework/Web/UI/ActiveControls/TCallbackOptions.php +++ b/framework/Web/UI/ActiveControls/TCallbackOptions.php @@ -12,42 +12,42 @@  /**
   * TCallbackOptions class.
 - * 
 + *
   * TCallbackOptions allows common set of callback client-side options
   * to be attached to other active controls.
   *
   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
   * @version $Revision: $  Sun Jun 18 08:10:50 EST 2006 $
   * @package System.Web.UI.ActiveControls
 - * @since 3.0
 + * @since 3.1
   */
  class TCallbackOptions extends TControl
 -{ 
 +{
  	/**
 -	 * @var TCallbackClientSideOptions client side callback options.
 +	 * @var TCallbackClientSide client side callback options.
  	 */
  	private $_clientSide;
 -	
 +
  	/**
  	 * Callback client-side options can be set by setting the properties of
  	 * the ClientSide property. E.g. <com:TCallbackOptions ClientSide.OnSuccess="..." />
 -	 * See {@link TCallbackClientSideOptions} for details on the properties of
 +	 * See {@link TCallbackClientSide} for details on the properties of
  	 * ClientSide.
 -	 * @return TCallbackClientSideOptions client-side callback options.
 +	 * @return TCallbackClientSide client-side callback options.
  	 */
  	public function getClientSide()
  	{
  		if(is_null($this->_clientSide))
 -			$this->_clientSide = $this->createClientSideOptions();
 +			$this->_clientSide = $this->createClientSide();
  		return $this->_clientSide;
  	}
 -	
 +
  	/**
 -	 * @return TCallbackClientSideOptions callback client-side options.
 +	 * @return TCallbackClientSide callback client-side options.
  	 */
 -	protected function createClientSideOptions()
 +	protected function createClientSide()
  	{
 -		return new TCallbackClientSideOptions;
 +		return new TCallbackClientSide;
  	}
  }
 diff --git a/framework/Web/UI/ActiveControls/TCallbackResponseAdapter.php b/framework/Web/UI/ActiveControls/TCallbackResponseAdapter.php index 8f456b86..d59b66ba 100755 --- a/framework/Web/UI/ActiveControls/TCallbackResponseAdapter.php +++ b/framework/Web/UI/ActiveControls/TCallbackResponseAdapter.php @@ -6,7 +6,7 @@   * @link http://www.pradosoft.com/   * @copyright Copyright © 2006 PradoSoft   * @license http://www.pradosoft.com/license/ - * @version 3.0 + * @version $Revision: $  Sun Jun 18 07:52:14 EST 2006 $   * @package System.Web.UI.ActiveControls   */ @@ -24,7 +24,7 @@   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version $Revision: $  Sun Jun 18 07:52:14 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TCallbackResponseAdapter extends THttpResponseAdapter  { @@ -91,7 +91,7 @@ class TCallbackResponseAdapter extends THttpResponseAdapter   * @author Wei Zhuo <weizhuo[at]gmail[dot]com>   * @version $Revision: $  Sun Jun 18 08:02:21 EST 2006 $   * @package System.Web.UI.ActiveControls - * @since 3.0 + * @since 3.1   */  class TCallbackResponseWriter extends TTextWriter  { diff --git a/framework/Web/UI/ActiveControls/TEventTriggeredCallback.php b/framework/Web/UI/ActiveControls/TEventTriggeredCallback.php index 42f49976..e9b7a1b2 100644 --- a/framework/Web/UI/ActiveControls/TEventTriggeredCallback.php +++ b/framework/Web/UI/ActiveControls/TEventTriggeredCallback.php @@ -1,5 +1,29 @@  <?php
 +/**
 + * TEventTriggeredCallback class file.
 + *
 + * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
 + * @link http://www.pradosoft.com/
 + * @copyright Copyright © 2006 PradoSoft
 + * @license http://www.pradosoft.com/license/
 + * @version $Revision: 27/08/2006 $
 + * @package System.Web.UI.ActiveControls
 + */
 +/**
 + * TEventTriggeredCallback Class
 + *
 + * Triggers a new callback request when a particular {@link setEventName EventName}
 + * on a control with ID given by {@link setControlID ControlID} is raised.
 + *
 + * The default action of the event on the client-side can be prevented when
 + * {@link setPreventDefaultAction PreventDefaultAction} is set to true.
 + *
 + * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
 + * @version $Revision: $ 27/08/2006 $
 + * @package System.Web.UI.ActiveControls
 + * @since 3.1
 + */
  class TEventTriggeredCallback extends TTriggeredCallback
  {
  	/**
 diff --git a/framework/Web/UI/ActiveControls/TPeriodicCallback.php b/framework/Web/UI/ActiveControls/TTimeTriggeredCallback.php index e620ac46..176539b4 100644 --- a/framework/Web/UI/ActiveControls/TPeriodicCallback.php +++ b/framework/Web/UI/ActiveControls/TTimeTriggeredCallback.php @@ -1,6 +1,6 @@  <?php  /** - * TPeriodicCallback class file. + * TTimeTriggeredCallback class file.   *   * @author Wei Zhuo <weizhuo[at]gamil[dot]com>   * @link http://www.pradosoft.com/ @@ -16,9 +16,9 @@  Prado::using('System.Web.UI.ActiveControls.TCallback');  /** - * TPeriodicCallback class. + * TTimeTriggeredCallback class.   * - * TPeriodicCallback sends callback request every {@link setInterval Interval} seconds. + * TTimeTriggeredCallback 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 @@ -29,9 +29,9 @@ Prado::using('System.Web.UI.ActiveControls.TCallback');   * @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 + * @since 3.1   */ -class TPeriodicCallback extends TCallback +class TTimeTriggeredCallback extends TCallback  {  	/**  	 * @return float seconds between callback requests. Default is 1 second. @@ -96,7 +96,7 @@ class TPeriodicCallback extends TCallback  	public function startTimer()  	{  		$id = $this->getClientID(); -		$code = "Prado.WebUI.TPeriodicCallback.start('{$id}');"; +		$code = "Prado.WebUI.TTimeTriggeredCallback.start('{$id}');";  		$cs = $this->getPage()->getClientScript();  		$cs->registerEndScript("{$id}:start", $code);  	} @@ -107,7 +107,7 @@ class TPeriodicCallback extends TCallback  	public function stopTimer()  	{  		$id = $this->getClientID(); -		$code = "Prado.WebUI.TPeriodicCallback.stop('{$id}');"; +		$code = "Prado.WebUI.TTimeTriggeredCallback.stop('{$id}');";  		$cs = $this->getPage()->getClientScript();  		$cs->registerEndScript("{$id}:stop", $code);  	} @@ -136,11 +136,11 @@ class TPeriodicCallback extends TCallback  	}  	/** -	 * @return string corresponding javascript class name for TPeriodicCallback. +	 * @return string corresponding javascript class name for TTimeTriggeredCallback.  	 */  	protected function getClientClassName()  	{ -		return 'Prado.WebUI.TPeriodicCallback'; +		return 'Prado.WebUI.TTimeTriggeredCallback';  	}  } diff --git a/framework/Web/UI/ActiveControls/TTriggeredCallback.php b/framework/Web/UI/ActiveControls/TTriggeredCallback.php index 076166c9..2ccdda1a 100644 --- a/framework/Web/UI/ActiveControls/TTriggeredCallback.php +++ b/framework/Web/UI/ActiveControls/TTriggeredCallback.php @@ -1,5 +1,26 @@  <?php
 +/**
 + * TTriggeredCallback class file.
 + *
 + * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
 + * @link http://www.pradosoft.com/
 + * @copyright Copyright © 2006 PradoSoft
 + * @license http://www.pradosoft.com/license/
 + * @version $Revision: 27/08/2006 $
 + * @package System.Web.UI.ActiveControls
 + */
 +/**
 + * TTriggeredCallback abstract Class
 + *
 + * Base class for triggered callback controls. The {@link setControlID ControlID}
 + * property sets the control ID to observe the trigger.
 + *
 + * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
 + * @version $Revision: $ 27/08/2006 $
 + * @package System.package
 + * @since version
 + */
  abstract class TTriggeredCallback extends TCallback
  {
  	/**
 diff --git a/framework/Web/UI/ActiveControls/TValueTriggeredCallback.php b/framework/Web/UI/ActiveControls/TValueTriggeredCallback.php index bb50e4f1..ae9263ab 100644 --- a/framework/Web/UI/ActiveControls/TValueTriggeredCallback.php +++ b/framework/Web/UI/ActiveControls/TValueTriggeredCallback.php @@ -1,5 +1,34 @@  <?php
 +/**
 + * TValueTriggeredCallback class file.
 + *
 + * @author Wei Zhuo <weizhuo[at]gamil[dot]com>
 + * @link http://www.pradosoft.com/
 + * @copyright Copyright © 2006 PradoSoft
 + * @license http://www.pradosoft.com/license/
 + * @version $Revision: 27/08/2006 $
 + * @package System.Web.UI.ActiveControls
 + */
 +/**
 + * TValueTriggeredCallback Class
 + *
 + * Observes the value with {@link setPropertyName PropertyName} of a
 + * control with {@link setControlID ControlID}. Changes to the observed
 + * property value will trigger a new callback request. The values are
 + * observed using a {@link setPollingInterval PollingInterval} (in seconds).
 + * That is, the property is checked for changes every
 + * {@link setPollingInterval PollingInterval} seconds.
 + *
 + * A {@link setDecayRate DecayRate} can be set to increase the polling
 + * interval linearly if no changes are observed. Once a change is
 + * observe, the polling interval is reset to the original value.
 + *
 + * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
 + * @version $Revision: $ 27/08/2006 $
 + * @package System.Web.UI.ActiveControls
 + * @since 3.1
 + */
  class TValueTriggeredCallback extends TTriggeredCallback
  {
  	/**
  | 
