diff options
Diffstat (limited to 'framework/Web')
-rw-r--r-- | framework/Web/UI/TControl.php | 79 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TButton.php | 8 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TImageButton.php | 8 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TLinkButton.php | 9 | ||||
-rw-r--r-- | framework/Web/UI/WebControls/TWizard.php | 4 |
5 files changed, 90 insertions, 18 deletions
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;
}
@@ -1963,6 +1963,83 @@ interface ITemplate }
/**
+ * 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 <qiang.xue@gmail.com>
+ * @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 <b>OnClick</b> event.
+ * @param TEventParameter event parameter to be passed to the event handlers
+ */
+ public function onClick($param);
+
+ /**
+ * Raises <b>OnCommand</b> event.
+ * @param TCommandEventParameter event parameter to be passed to the event handlers
+ */
+ public function onCommand($param);
+}
+
+/**
* TBroadcastEventParameter class
*
* TBroadcastEventParameter encapsulates the parameter data for
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;
|