From 1afc913c386bba8e6072c278b0eb4fd9818ab310 Mon Sep 17 00:00:00 2001 From: xue <> Date: Tue, 25 Apr 2006 01:27:04 +0000 Subject: Undo previous checkin (which goes int 3.0 branch and will be merged back). --- .../Web/UI/WebControls/TListControlValidator.php | 214 --------------------- 1 file changed, 214 deletions(-) delete mode 100644 framework/Web/UI/WebControls/TListControlValidator.php (limited to 'framework/Web/UI/WebControls/TListControlValidator.php') diff --git a/framework/Web/UI/WebControls/TListControlValidator.php b/framework/Web/UI/WebControls/TListControlValidator.php deleted file mode 100644 index 9264e891..00000000 --- a/framework/Web/UI/WebControls/TListControlValidator.php +++ /dev/null @@ -1,214 +0,0 @@ - - * @link http://www.pradosoft.com/ - * @copyright Copyright © 2005 PradoSoft - * @license http://www.pradosoft.com/license/ - * @version $Revision: $ $Date: $ - * @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 $Revision: $ $Date: $ - * @package System.Web.UI.WebControls - * @since 3.0 - */ -class TListControlValidator extends TBaseValidator -{ - /** - * @return int min number of selections - */ - function getMinSelection() - { - return $this->getViewState('MinSelection',''); - } - - /** - * @param int minimum number of selections. - */ - function setMinSelection($value) - { - $this->setViewState('MinSelection',$value,''); - } - - /** - * @return int max number of selections - */ - function getMaxSelection() - { - return $this->getViewState('MaxSelection',''); - } - - /** - * @param int max number of selections. - */ - function setMaxSelection($value) - { - $this->setViewState('MaxSelection',$value,''); - } - - /** - * Get a comma separated list of required selected values. - * @return string comma separated list of required values. - */ - 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. - */ - 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 - */ - public function evaluateIsValid() - { - $control=$this->getValidationTarget(); - - $exists = true; - list($count, $values) = $this->getSelection($control); - $required = $this->getRequiredValues(); - - //if required, check the values - if(!empty($required)) - { - if(count($values) < count($required) ) - return false; - foreach($required as $require) - $exists = $exists && in_array($require, $values); - } - - $min = $this->getMinSelection(); - $max = $this->getMaxSelection(); - - if($min !== '' && $max !=- '') - return $exists && $count >= intval($min) && $count <= intval($max); - else if($min === '' && $max !== '') - return $exists && $count <= intval($max); - else if($min !== '' && $max === '') - return $exists && $count >= intval($min); - } - - /** - * @param TListControl control to validate - * @return array number of selected values and its values. - */ - protected function getSelection($control) - { - $count = 0; - $values = array(); - - //get the data - foreach($control->getItems() as $item) - { - if($item->getSelected()) - { - $count++; - $values[] = $item->getValue(); - } - } - return array($count, $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( - 'tlistcontrolvalidator_invalid_control', - $this->getID(),$this->getControlToValidate(), get_class($control)); - } - - $min = $this->getMinSelection(); - $max = $this->getMaxSelection(); - if($min !== '') - $options['Min']= intval($min); - if($max !== '') - $options['Max']= intval($max); - $required = $this->getRequiredSelections(); - if(strlen($required) > 0) - $options['Required']= $required; - $options['TotalItems'] = $control->getItemCount(); - - return $options; - } -} -?> \ No newline at end of file -- cgit v1.2.3