From 903ae8a581fac1e6917fc3e31d2ad8fb91df80c3 Mon Sep 17 00:00:00 2001 From: ctrlaltca <> Date: Thu, 12 Jul 2012 11:21:01 +0000 Subject: standardize the use of unix eol; use svn properties to enforce native eol --- .../Web/UI/WebControls/TListControlValidator.php | 448 ++++++++++----------- 1 file changed, 224 insertions(+), 224 deletions(-) (limited to 'framework/Web/UI/WebControls/TListControlValidator.php') diff --git a/framework/Web/UI/WebControls/TListControlValidator.php b/framework/Web/UI/WebControls/TListControlValidator.php index a5be67b3..75a0510c 100644 --- a/framework/Web/UI/WebControls/TListControlValidator.php +++ b/framework/Web/UI/WebControls/TListControlValidator.php @@ -1,225 +1,225 @@ - - * @link http://www.pradosoft.com/ + + * @link http://www.pradosoft.com/ * @copyright Copyright © 2005-2012 PradoSoft - * @license http://www.pradosoft.com/license/ - * @version $Id$ - * @package System.Web.UI.WebControls - */ - -/** - * Using TBaseValidator class - */ -Prado::using('System.Web.UI.WebControls.TBaseValidator'); - -/** - * TListControlValidator class. - * - * TListControlValidator checks the number of selection and their values - * for a TListControl that allows multiple selection. - * - * You can specify the minimum or maximum (or both) number of selections - * required using the {@link setMinSelection MinSelection} and - * {@link setMaxSelection MaxSelection} properties, respectively. In addition, - * you can specify a comma separated list of required selected values via the - * {@link setRequiredSelections RequiredSelections} property. - * - * Examples - * - At least two selections - * - * - * - * - * - * - * - * - * - * - "value1" must be selected and at least 1 other - * - * - * - * - * - * - * - * - * - * - * @author Xiang Wei Zhuo - * @version $Id$ - * @package System.Web.UI.WebControls - * @since 3.0 - */ -class TListControlValidator extends TBaseValidator -{ - /** - * Gets the name of the javascript class responsible for performing validation for this control. - * This method overrides the parent implementation. - * @return string the javascript class name - */ - protected function getClientClassName() - { - return 'Prado.WebUI.TListControlValidator'; - } - - /** - * @return integer min number of selections. Defaults to -1, meaning not set. - */ - public function getMinSelection() - { - return $this->getViewState('MinSelection',-1); - } - - /** - * @param integer minimum number of selections. - */ - public function setMinSelection($value) - { - if(($value=TPropertyValue::ensureInteger($value))<0) - $value=-1; - $this->setViewState('MinSelection',$value,-1); - } - - /** - * @return integer max number of selections. Defaults to -1, meaning not set. - */ - public function getMaxSelection() - { - return $this->getViewState('MaxSelection',-1); - } - - /** - * @param integer max number of selections. - */ - public function setMaxSelection($value) - { - if(($value=TPropertyValue::ensureInteger($value))<0) - $value=-1; - $this->setViewState('MaxSelection',$value,-1); - } - - /** - * Get a comma separated list of required selected values. - * @return string comma separated list of required values. - */ - public function getRequiredSelections() - { - return $this->getViewState('RequiredSelections',''); - } - - /** - * Set the list of required values, using aa comma separated list. - * @param string comma separated list of required values. - */ - public function setRequiredSelections($value) - { - $this->setViewState('RequiredSelections',$value,''); - } - - /** - * This method overrides the parent's implementation. - * The validation succeeds if the input component changes its data - * from the InitialValue or the input component is not given. - * @return boolean whether the validation succeeds - */ - protected function evaluateIsValid() - { - $control=$this->getValidationTarget(); - - $exists = true; - $values = $this->getSelection($control); - $count = count($values); - $required = $this->getRequiredValues(); - - //if required, check the values - if(!empty($required)) - { - if($count < count($required) ) - return false; - foreach($required as $require) - $exists = $exists && in_array($require, $values); - } - - $min = $this->getMinSelection(); - $max = $this->getMaxSelection(); - - if($min !== -1 && $max !== -1) - return $exists && $count >= $min && $count <= $max; - else if($min === -1 && $max !== -1) - return $exists && $count <= $max; - else if($min !== -1 && $max === -1) - return $exists && $count >= $min; - else - return $exists; - } - - /** - * @param TListControl control to validate - * @return array number of selected values and its values. - */ - protected function getSelection($control) - { - $values = array(); - - //get the data - foreach($control->getItems() as $item) - { - if($item->getSelected()) - $values[] = $item->getValue(); - } - return $values; - } - - /** - * @return array list of required values. - */ - protected function getRequiredValues() - { - $required = array(); - $string = $this->getRequiredSelections(); - if(!empty($string)) - $required = preg_split('/,\s*/', $string); - return $required; - } - - /** - * Returns an array of javascript validator options. - * @return array javascript validator options. - */ - protected function getClientScriptOptions() - { - $options = parent::getClientScriptOptions(); - $control = $this->getValidationTarget(); - - if(!$control instanceof TListControl) - { - throw new TConfigurationException( - 'listcontrolvalidator_invalid_control', - $this->getID(),$this->getControlToValidate(), get_class($control)); - } - - $min = $this->getMinSelection(); - $max = $this->getMaxSelection(); - if($min !== -1) - $options['Min']= $min; - if($max !== -1) - $options['Max']= $max; - $required = $this->getRequiredSelections(); - if(strlen($required) > 0) - $options['Required']= $required; - $options['TotalItems'] = $control->getItemCount(); - - return $options; - } -} + * @license http://www.pradosoft.com/license/ + * @version $Id$ + * @package System.Web.UI.WebControls + */ + +/** + * Using TBaseValidator class + */ +Prado::using('System.Web.UI.WebControls.TBaseValidator'); + +/** + * TListControlValidator class. + * + * TListControlValidator checks the number of selection and their values + * for a TListControl that allows multiple selection. + * + * You can specify the minimum or maximum (or both) number of selections + * required using the {@link setMinSelection MinSelection} and + * {@link setMaxSelection MaxSelection} properties, respectively. In addition, + * you can specify a comma separated list of required selected values via the + * {@link setRequiredSelections RequiredSelections} property. + * + * Examples + * - At least two selections + * + * + * + * + * + * + * + * + * + * - "value1" must be selected and at least 1 other + * + * + * + * + * + * + * + * + * + * + * @author Xiang Wei Zhuo + * @version $Id$ + * @package System.Web.UI.WebControls + * @since 3.0 + */ +class TListControlValidator extends TBaseValidator +{ + /** + * Gets the name of the javascript class responsible for performing validation for this control. + * This method overrides the parent implementation. + * @return string the javascript class name + */ + protected function getClientClassName() + { + return 'Prado.WebUI.TListControlValidator'; + } + + /** + * @return integer min number of selections. Defaults to -1, meaning not set. + */ + public function getMinSelection() + { + return $this->getViewState('MinSelection',-1); + } + + /** + * @param integer minimum number of selections. + */ + public function setMinSelection($value) + { + if(($value=TPropertyValue::ensureInteger($value))<0) + $value=-1; + $this->setViewState('MinSelection',$value,-1); + } + + /** + * @return integer max number of selections. Defaults to -1, meaning not set. + */ + public function getMaxSelection() + { + return $this->getViewState('MaxSelection',-1); + } + + /** + * @param integer max number of selections. + */ + public function setMaxSelection($value) + { + if(($value=TPropertyValue::ensureInteger($value))<0) + $value=-1; + $this->setViewState('MaxSelection',$value,-1); + } + + /** + * Get a comma separated list of required selected values. + * @return string comma separated list of required values. + */ + public function getRequiredSelections() + { + return $this->getViewState('RequiredSelections',''); + } + + /** + * Set the list of required values, using aa comma separated list. + * @param string comma separated list of required values. + */ + public function setRequiredSelections($value) + { + $this->setViewState('RequiredSelections',$value,''); + } + + /** + * This method overrides the parent's implementation. + * The validation succeeds if the input component changes its data + * from the InitialValue or the input component is not given. + * @return boolean whether the validation succeeds + */ + protected function evaluateIsValid() + { + $control=$this->getValidationTarget(); + + $exists = true; + $values = $this->getSelection($control); + $count = count($values); + $required = $this->getRequiredValues(); + + //if required, check the values + if(!empty($required)) + { + if($count < count($required) ) + return false; + foreach($required as $require) + $exists = $exists && in_array($require, $values); + } + + $min = $this->getMinSelection(); + $max = $this->getMaxSelection(); + + if($min !== -1 && $max !== -1) + return $exists && $count >= $min && $count <= $max; + else if($min === -1 && $max !== -1) + return $exists && $count <= $max; + else if($min !== -1 && $max === -1) + return $exists && $count >= $min; + else + return $exists; + } + + /** + * @param TListControl control to validate + * @return array number of selected values and its values. + */ + protected function getSelection($control) + { + $values = array(); + + //get the data + foreach($control->getItems() as $item) + { + if($item->getSelected()) + $values[] = $item->getValue(); + } + return $values; + } + + /** + * @return array list of required values. + */ + protected function getRequiredValues() + { + $required = array(); + $string = $this->getRequiredSelections(); + if(!empty($string)) + $required = preg_split('/,\s*/', $string); + return $required; + } + + /** + * Returns an array of javascript validator options. + * @return array javascript validator options. + */ + protected function getClientScriptOptions() + { + $options = parent::getClientScriptOptions(); + $control = $this->getValidationTarget(); + + if(!$control instanceof TListControl) + { + throw new TConfigurationException( + 'listcontrolvalidator_invalid_control', + $this->getID(),$this->getControlToValidate(), get_class($control)); + } + + $min = $this->getMinSelection(); + $max = $this->getMaxSelection(); + if($min !== -1) + $options['Min']= $min; + if($max !== -1) + $options['Max']= $max; + $required = $this->getRequiredSelections(); + if(strlen($required) > 0) + $options['Required']= $required; + $options['TotalItems'] = $control->getItemCount(); + + return $options; + } +} -- cgit v1.2.3