<?php /** * PHPExcel * * Copyright (c) 2006 - 2014 PHPExcel * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * @category PHPExcel * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ /** * PHPExcel_Cell_DataValidation * * @category PHPExcel * @package PHPExcel_Cell * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) */ class PHPExcel_Cell_DataValidation { /* Data validation types */ const TYPE_NONE = 'none'; const TYPE_CUSTOM = 'custom'; const TYPE_DATE = 'date'; const TYPE_DECIMAL = 'decimal'; const TYPE_LIST = 'list'; const TYPE_TEXTLENGTH = 'textLength'; const TYPE_TIME = 'time'; const TYPE_WHOLE = 'whole'; /* Data validation error styles */ const STYLE_STOP = 'stop'; const STYLE_WARNING = 'warning'; const STYLE_INFORMATION = 'information'; /* Data validation operators */ const OPERATOR_BETWEEN = 'between'; const OPERATOR_EQUAL = 'equal'; const OPERATOR_GREATERTHAN = 'greaterThan'; const OPERATOR_GREATERTHANOREQUAL = 'greaterThanOrEqual'; const OPERATOR_LESSTHAN = 'lessThan'; const OPERATOR_LESSTHANOREQUAL = 'lessThanOrEqual'; const OPERATOR_NOTBETWEEN = 'notBetween'; const OPERATOR_NOTEQUAL = 'notEqual'; /** * Formula 1 * * @var string */ private $_formula1; /** * Formula 2 * * @var string */ private $_formula2; /** * Type * * @var string */ private $_type = PHPExcel_Cell_DataValidation::TYPE_NONE; /** * Error style * * @var string */ private $_errorStyle = PHPExcel_Cell_DataValidation::STYLE_STOP; /** * Operator * * @var string */ private $_operator; /** * Allow Blank * * @var boolean */ private $_allowBlank; /** * Show DropDown * * @var boolean */ private $_showDropDown; /** * Show InputMessage * * @var boolean */ private $_showInputMessage; /** * Show ErrorMessage * * @var boolean */ private $_showErrorMessage; /** * Error title * * @var string */ private $_errorTitle; /** * Error * * @var string */ private $_error; /** * Prompt title * * @var string */ private $_promptTitle; /** * Prompt * * @var string */ private $_prompt; /** * Create a new PHPExcel_Cell_DataValidation */ public function __construct() { // Initialise member variables $this->_formula1 = ''; $this->_formula2 = ''; $this->_type = PHPExcel_Cell_DataValidation::TYPE_NONE; $this->_errorStyle = PHPExcel_Cell_DataValidation::STYLE_STOP; $this->_operator = ''; $this->_allowBlank = FALSE; $this->_showDropDown = FALSE; $this->_showInputMessage = FALSE; $this->_showErrorMessage = FALSE; $this->_errorTitle = ''; $this->_error = ''; $this->_promptTitle = ''; $this->_prompt = ''; } /** * Get Formula 1 * * @return string */ public function getFormula1() { return $this->_formula1; } /** * Set Formula 1 * * @param string $value * @return PHPExcel_Cell_DataValidation */ public function setFormula1($value = '') { $this->_formula1 = $value; return $this; } /** * Get Formula 2 * * @return string */ public function getFormula2() { return $this->_formula2; } /** * Set Formula 2 * * @param string $value * @return PHPExcel_Cell_DataValidation */ public function setFormula2($value = '') { $this->_formula2 = $value; return $this; } /** * Get Type * * @return string */ public function getType() { return $this->_type; } /** * Set Type * * @param string $value * @return PHPExcel_Cell_DataValidation */ public function setType($value = PHPExcel_Cell_DataValidation::TYPE_NONE) { $this->_type = $value; return $this; } /** * Get Error style * * @return string */ public function getErrorStyle() { return $this->_errorStyle; } /** * Set Error style * * @param string $value * @return PHPExcel_Cell_DataValidation */ public function setErrorStyle($value = PHPExcel_Cell_DataValidation::STYLE_STOP) { $this->_errorStyle = $value; return $this; } /** * Get Operator * * @return string */ public function getOperator() { return $this->_operator; } /** * Set Operator * * @param string $value * @return PHPExcel_Cell_DataValidation */ public function setOperator($value = '') { $this->_operator = $value; return $this; } /** * Get Allow Blank * * @return boolean */ public function getAllowBlank() { return $this->_allowBlank; } /** * Set Allow Blank * * @param boolean $value * @return PHPExcel_Cell_DataValidation */ public function setAllowBlank($value = false) { $this->_allowBlank = $value; return $this; } /** * Get Show DropDown * * @return boolean */ public function getShowDropDown() { return $this->_showDropDown; } /** * Set Show DropDown * * @param boolean $value * @return PHPExcel_Cell_DataValidation */ public function setShowDropDown($value = false) { $this->_showDropDown = $value; return $this; } /** * Get Show InputMessage * * @return boolean */ public function getShowInputMessage() { return $this->_showInputMessage; } /** * Set Show InputMessage * * @param boolean $value * @return PHPExcel_Cell_DataValidation */ public function setShowInputMessage($value = false) { $this->_showInputMessage = $value; return $this; } /** * Get Show ErrorMessage * * @return boolean */ public function getShowErrorMessage() { return $this->_showErrorMessage; } /** * Set Show ErrorMessage * * @param boolean $value * @return PHPExcel_Cell_DataValidation */ public function setShowErrorMessage($value = false) { $this->_showErrorMessage = $value; return $this; } /** * Get Error title * * @return string */ public function getErrorTitle() { return $this->_errorTitle; } /** * Set Error title * * @param string $value * @return PHPExcel_Cell_DataValidation */ public function setErrorTitle($value = '') { $this->_errorTitle = $value; return $this; } /** * Get Error * * @return string */ public function getError() { return $this->_error; } /** * Set Error * * @param string $value * @return PHPExcel_Cell_DataValidation */ public function setError($value = '') { $this->_error = $value; return $this; } /** * Get Prompt title * * @return string */ public function getPromptTitle() { return $this->_promptTitle; } /** * Set Prompt title * * @param string $value * @return PHPExcel_Cell_DataValidation */ public function setPromptTitle($value = '') { $this->_promptTitle = $value; return $this; } /** * Get Prompt * * @return string */ public function getPrompt() { return $this->_prompt; } /** * Set Prompt * * @param string $value * @return PHPExcel_Cell_DataValidation */ public function setPrompt($value = '') { $this->_prompt = $value; return $this; } /** * Get hash code * * @return string Hash code */ public function getHashCode() { return md5( $this->_formula1 . $this->_formula2 . $this->_type = PHPExcel_Cell_DataValidation::TYPE_NONE . $this->_errorStyle = PHPExcel_Cell_DataValidation::STYLE_STOP . $this->_operator . ($this->_allowBlank ? 't' : 'f') . ($this->_showDropDown ? 't' : 'f') . ($this->_showInputMessage ? 't' : 'f') . ($this->_showErrorMessage ? 't' : 'f') . $this->_errorTitle . $this->_error . $this->_promptTitle . $this->_prompt . __CLASS__ ); } /** * Implement PHP __clone to create a deep clone, not just a shallow copy. */ public function __clone() { $vars = get_object_vars($this); foreach ($vars as $key => $value) { if (is_object($value)) { $this->$key = clone $value; } else { $this->$key = $value; } } } }