From 2c3a19d691be5e8d1e0a5e7839fc9ced549b04ee Mon Sep 17 00:00:00 2001 From: xue <> Date: Mon, 17 Apr 2006 22:12:51 +0000 Subject: Merge from 3.0 branch till 931. --- framework/Web/UI/TControl.php | 79 ++++++++++++++++++++++++++- framework/Web/UI/WebControls/TButton.php | 8 +-- framework/Web/UI/WebControls/TImageButton.php | 8 +-- framework/Web/UI/WebControls/TLinkButton.php | 9 +-- framework/Web/UI/WebControls/TWizard.php | 4 +- 5 files changed, 90 insertions(+), 18 deletions(-) (limited to 'framework/Web/UI') diff --git a/framework/Web/UI/TControl.php b/framework/Web/UI/TControl.php index 9ede6be5..1f1d6c4d 100644 --- a/framework/Web/UI/TControl.php +++ b/framework/Web/UI/TControl.php @@ -492,7 +492,7 @@ class TControl extends TApplicationComponent implements IRenderable, IBindable if($checkParents) { for($control=$this;$control;$control=$control->_parent) - if(!$control->getViewState('Visible',true)) + if(!$control->getVisible(false)) return false; return true; } @@ -1962,6 +1962,83 @@ interface ITemplate public function instantiateIn($parent); } +/** + * IButtonControl interface + * + * IButtonControl specifies the common properties and events that must + * be implemented by a button control, such as {@link TButton}, {@link TLinkButton}, + * {@link TImageButton}. + * + * @author Qiang Xue + * @version $Revision: $ $Date: $ + * @package System.Web.UI + * @since 3.0 + */ +interface IButtonControl +{ + /** + * @return string caption of the button + */ + public function getText(); + + /** + * @param string caption of the button + */ + public function setText($value); + + /** + * @return boolean whether postback event trigger by this button will cause input validation + */ + public function getCausesValidation(); + + /** + * @param boolean whether postback event trigger by this button will cause input validation + */ + public function setCausesValidation($value); + + /** + * @return string the command name associated with the {@link onCommand OnCommand} event. + */ + public function getCommandName(); + + /** + * @param string the command name associated with the {@link onCommand OnCommand} event. + */ + public function setCommandName($value); + + /** + * @return string the parameter associated with the {@link onCommand OnCommand} event + */ + public function getCommandParameter(); + + /** + * @param string the parameter associated with the {@link onCommand OnCommand} event. + */ + public function setCommandParameter($value); + + /** + * @return string the group of validators which the button causes validation upon postback + */ + public function getValidationGroup(); + + /** + * @param string the group of validators which the button causes validation upon postback + */ + public function setValidationGroup($value); + + /** + * Raises OnClick event. + * @param TEventParameter event parameter to be passed to the event handlers + */ + public function onClick($param); + + /** + * Raises OnCommand event. + * @param TCommandEventParameter event parameter to be passed to the event handlers + */ + public function onCommand($param); +} + /** * TBroadcastEventParameter class * diff --git a/framework/Web/UI/WebControls/TButton.php b/framework/Web/UI/WebControls/TButton.php index 6751687c..72c68a2c 100644 --- a/framework/Web/UI/WebControls/TButton.php +++ b/framework/Web/UI/WebControls/TButton.php @@ -49,7 +49,7 @@ * @package System.Web.UI.WebControls * @since 3.0 */ -class TButton extends TWebControl implements IPostBackEventHandler +class TButton extends TWebControl implements IPostBackEventHandler, IButtonControl { /** * @return string tag name of the button @@ -206,8 +206,7 @@ class TButton extends TWebControl implements IPostBackEventHandler } /** - * Sets the command name associated with the {@link onCommand OnCommand} event. - * @param string the text caption to be set + * @param string the command name associated with the {@link onCommand OnCommand} event. */ public function setCommandName($value) { @@ -223,8 +222,7 @@ class TButton extends TWebControl implements IPostBackEventHandler } /** - * Sets the parameter associated with the {@link onCommand OnCommand} event. - * @param string the text caption to be set + * @param string the parameter associated with the {@link onCommand OnCommand} event. */ public function setCommandParameter($value) { diff --git a/framework/Web/UI/WebControls/TImageButton.php b/framework/Web/UI/WebControls/TImageButton.php index 655b1df0..109f53a8 100644 --- a/framework/Web/UI/WebControls/TImageButton.php +++ b/framework/Web/UI/WebControls/TImageButton.php @@ -56,7 +56,7 @@ Prado::using('System.Web.UI.WebControls.TImage'); * @package System.Web.UI.WebControls * @since 3.0 */ -class TImageButton extends TImage implements IPostBackDataHandler, IPostBackEventHandler +class TImageButton extends TImage implements IPostBackDataHandler, IPostBackEventHandler, IButtonControl { /** * @var integer x coordinate that the image is being clicked at @@ -223,8 +223,7 @@ class TImageButton extends TImage implements IPostBackDataHandler, IPostBackEven } /** - * Sets the command name associated with the {@link onCommand OnCommand} event. - * @param string the text caption to be set + * @param string the command name associated with the {@link onCommand OnCommand} event. */ public function setCommandName($value) { @@ -240,8 +239,7 @@ class TImageButton extends TImage implements IPostBackDataHandler, IPostBackEven } /** - * Sets the parameter associated with the {@link onCommand OnCommand} event. - * @param string the text caption to be set + * @param string the parameter associated with the {@link onCommand OnCommand} event. */ public function setCommandParameter($value) { diff --git a/framework/Web/UI/WebControls/TLinkButton.php b/framework/Web/UI/WebControls/TLinkButton.php index 95490f8d..bca4a8f6 100644 --- a/framework/Web/UI/WebControls/TLinkButton.php +++ b/framework/Web/UI/WebControls/TLinkButton.php @@ -54,7 +54,7 @@ * @package System.Web.UI.WebControls * @since 3.0 */ -class TLinkButton extends TWebControl implements IPostBackEventHandler +class TLinkButton extends TWebControl implements IPostBackEventHandler, IButtonControl { /** * @return string tag name of the button @@ -130,7 +130,6 @@ class TLinkButton extends TWebControl implements IPostBackEventHandler } /** - * Sets the text caption of the button. * @param string the text caption to be set */ public function setText($value) @@ -147,8 +146,7 @@ class TLinkButton extends TWebControl implements IPostBackEventHandler } /** - * Sets the command name associated with the {@link onCommand OnCommand} event. - * @param string the text caption to be set + * @param string the command name associated with the {@link onCommand OnCommand} event. */ public function setCommandName($value) { @@ -164,8 +162,7 @@ class TLinkButton extends TWebControl implements IPostBackEventHandler } /** - * Sets the parameter associated with the {@link onCommand OnCommand} event. - * @param string the text caption to be set + * @param string the parameter associated with the {@link onCommand OnCommand} event. */ public function setCommandParameter($value) { diff --git a/framework/Web/UI/WebControls/TWizard.php b/framework/Web/UI/WebControls/TWizard.php index 794fb4da..9a2c4ce6 100644 --- a/framework/Web/UI/WebControls/TWizard.php +++ b/framework/Web/UI/WebControls/TWizard.php @@ -1077,7 +1077,7 @@ class TWizard extends TWebControl implements INamingContainer // if the button clicked causes validation which fails, // by default we will cancel navigation to the new step $button=$param->getCommandSource(); - if($button->canGetProperty('CausesValidation') && $button->getCausesValidation() && ($page=$this->getPage())!==null && !$page->getIsValid()) + if(($button instanceof IButtonControl) && $button->getCausesValidation() && ($page=$this->getPage())!==null && !$page->getIsValid()) $navParam->setCancelNavigation(true); $this->_activeStepIndexSet=false; @@ -1292,6 +1292,8 @@ class TWizard extends TWebControl implements INamingContainer $type=$this->getStepType($this->getActiveStep()); $index=$this->getActiveStepIndex(); $navParam=new TWizardNavigationEventParameter($index); + if(($sender instanceof IButtonControl) && $sender->getCausesValidation() && ($page=$this->getPage())!==null && !$page->getIsValid()) + $navParam->setCancelNavigation(true); $handled=false; $movePrev=false; -- cgit v1.2.3