For God so loved the world, that He gave His only begotten Son, that all who believe in Him should not perish but have everlasting life
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

492 lines
10 KiB

  1. <?php
  2. /**
  3. * PHPExcel_Cell_DataValidation
  4. *
  5. * Copyright (c) 2006 - 2015 PHPExcel
  6. *
  7. * This library is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU Lesser General Public
  9. * License as published by the Free Software Foundation; either
  10. * version 2.1 of the License, or (at your option) any later version.
  11. *
  12. * This library is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Lesser General Public
  18. * License along with this library; if not, write to the Free Software
  19. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  20. *
  21. * @category PHPExcel
  22. * @package PHPExcel_Cell
  23. * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel)
  24. * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
  25. * @version ##VERSION##, ##DATE##
  26. */
  27. class PHPExcel_Cell_DataValidation
  28. {
  29. /* Data validation types */
  30. const TYPE_NONE = 'none';
  31. const TYPE_CUSTOM = 'custom';
  32. const TYPE_DATE = 'date';
  33. const TYPE_DECIMAL = 'decimal';
  34. const TYPE_LIST = 'list';
  35. const TYPE_TEXTLENGTH = 'textLength';
  36. const TYPE_TIME = 'time';
  37. const TYPE_WHOLE = 'whole';
  38. /* Data validation error styles */
  39. const STYLE_STOP = 'stop';
  40. const STYLE_WARNING = 'warning';
  41. const STYLE_INFORMATION = 'information';
  42. /* Data validation operators */
  43. const OPERATOR_BETWEEN = 'between';
  44. const OPERATOR_EQUAL = 'equal';
  45. const OPERATOR_GREATERTHAN = 'greaterThan';
  46. const OPERATOR_GREATERTHANOREQUAL = 'greaterThanOrEqual';
  47. const OPERATOR_LESSTHAN = 'lessThan';
  48. const OPERATOR_LESSTHANOREQUAL = 'lessThanOrEqual';
  49. const OPERATOR_NOTBETWEEN = 'notBetween';
  50. const OPERATOR_NOTEQUAL = 'notEqual';
  51. /**
  52. * Formula 1
  53. *
  54. * @var string
  55. */
  56. private $formula1;
  57. /**
  58. * Formula 2
  59. *
  60. * @var string
  61. */
  62. private $formula2;
  63. /**
  64. * Type
  65. *
  66. * @var string
  67. */
  68. private $type = PHPExcel_Cell_DataValidation::TYPE_NONE;
  69. /**
  70. * Error style
  71. *
  72. * @var string
  73. */
  74. private $errorStyle = PHPExcel_Cell_DataValidation::STYLE_STOP;
  75. /**
  76. * Operator
  77. *
  78. * @var string
  79. */
  80. private $operator;
  81. /**
  82. * Allow Blank
  83. *
  84. * @var boolean
  85. */
  86. private $allowBlank;
  87. /**
  88. * Show DropDown
  89. *
  90. * @var boolean
  91. */
  92. private $showDropDown;
  93. /**
  94. * Show InputMessage
  95. *
  96. * @var boolean
  97. */
  98. private $showInputMessage;
  99. /**
  100. * Show ErrorMessage
  101. *
  102. * @var boolean
  103. */
  104. private $showErrorMessage;
  105. /**
  106. * Error title
  107. *
  108. * @var string
  109. */
  110. private $errorTitle;
  111. /**
  112. * Error
  113. *
  114. * @var string
  115. */
  116. private $error;
  117. /**
  118. * Prompt title
  119. *
  120. * @var string
  121. */
  122. private $promptTitle;
  123. /**
  124. * Prompt
  125. *
  126. * @var string
  127. */
  128. private $prompt;
  129. /**
  130. * Create a new PHPExcel_Cell_DataValidation
  131. */
  132. public function __construct()
  133. {
  134. // Initialise member variables
  135. $this->formula1 = '';
  136. $this->formula2 = '';
  137. $this->type = PHPExcel_Cell_DataValidation::TYPE_NONE;
  138. $this->errorStyle = PHPExcel_Cell_DataValidation::STYLE_STOP;
  139. $this->operator = '';
  140. $this->allowBlank = false;
  141. $this->showDropDown = false;
  142. $this->showInputMessage = false;
  143. $this->showErrorMessage = false;
  144. $this->errorTitle = '';
  145. $this->error = '';
  146. $this->promptTitle = '';
  147. $this->prompt = '';
  148. }
  149. /**
  150. * Get Formula 1
  151. *
  152. * @return string
  153. */
  154. public function getFormula1()
  155. {
  156. return $this->formula1;
  157. }
  158. /**
  159. * Set Formula 1
  160. *
  161. * @param string $value
  162. * @return PHPExcel_Cell_DataValidation
  163. */
  164. public function setFormula1($value = '')
  165. {
  166. $this->formula1 = $value;
  167. return $this;
  168. }
  169. /**
  170. * Get Formula 2
  171. *
  172. * @return string
  173. */
  174. public function getFormula2()
  175. {
  176. return $this->formula2;
  177. }
  178. /**
  179. * Set Formula 2
  180. *
  181. * @param string $value
  182. * @return PHPExcel_Cell_DataValidation
  183. */
  184. public function setFormula2($value = '')
  185. {
  186. $this->formula2 = $value;
  187. return $this;
  188. }
  189. /**
  190. * Get Type
  191. *
  192. * @return string
  193. */
  194. public function getType()
  195. {
  196. return $this->type;
  197. }
  198. /**
  199. * Set Type
  200. *
  201. * @param string $value
  202. * @return PHPExcel_Cell_DataValidation
  203. */
  204. public function setType($value = PHPExcel_Cell_DataValidation::TYPE_NONE)
  205. {
  206. $this->type = $value;
  207. return $this;
  208. }
  209. /**
  210. * Get Error style
  211. *
  212. * @return string
  213. */
  214. public function getErrorStyle()
  215. {
  216. return $this->errorStyle;
  217. }
  218. /**
  219. * Set Error style
  220. *
  221. * @param string $value
  222. * @return PHPExcel_Cell_DataValidation
  223. */
  224. public function setErrorStyle($value = PHPExcel_Cell_DataValidation::STYLE_STOP)
  225. {
  226. $this->errorStyle = $value;
  227. return $this;
  228. }
  229. /**
  230. * Get Operator
  231. *
  232. * @return string
  233. */
  234. public function getOperator()
  235. {
  236. return $this->operator;
  237. }
  238. /**
  239. * Set Operator
  240. *
  241. * @param string $value
  242. * @return PHPExcel_Cell_DataValidation
  243. */
  244. public function setOperator($value = '')
  245. {
  246. $this->operator = $value;
  247. return $this;
  248. }
  249. /**
  250. * Get Allow Blank
  251. *
  252. * @return boolean
  253. */
  254. public function getAllowBlank()
  255. {
  256. return $this->allowBlank;
  257. }
  258. /**
  259. * Set Allow Blank
  260. *
  261. * @param boolean $value
  262. * @return PHPExcel_Cell_DataValidation
  263. */
  264. public function setAllowBlank($value = false)
  265. {
  266. $this->allowBlank = $value;
  267. return $this;
  268. }
  269. /**
  270. * Get Show DropDown
  271. *
  272. * @return boolean
  273. */
  274. public function getShowDropDown()
  275. {
  276. return $this->showDropDown;
  277. }
  278. /**
  279. * Set Show DropDown
  280. *
  281. * @param boolean $value
  282. * @return PHPExcel_Cell_DataValidation
  283. */
  284. public function setShowDropDown($value = false)
  285. {
  286. $this->showDropDown = $value;
  287. return $this;
  288. }
  289. /**
  290. * Get Show InputMessage
  291. *
  292. * @return boolean
  293. */
  294. public function getShowInputMessage()
  295. {
  296. return $this->showInputMessage;
  297. }
  298. /**
  299. * Set Show InputMessage
  300. *
  301. * @param boolean $value
  302. * @return PHPExcel_Cell_DataValidation
  303. */
  304. public function setShowInputMessage($value = false)
  305. {
  306. $this->showInputMessage = $value;
  307. return $this;
  308. }
  309. /**
  310. * Get Show ErrorMessage
  311. *
  312. * @return boolean
  313. */
  314. public function getShowErrorMessage()
  315. {
  316. return $this->showErrorMessage;
  317. }
  318. /**
  319. * Set Show ErrorMessage
  320. *
  321. * @param boolean $value
  322. * @return PHPExcel_Cell_DataValidation
  323. */
  324. public function setShowErrorMessage($value = false)
  325. {
  326. $this->showErrorMessage = $value;
  327. return $this;
  328. }
  329. /**
  330. * Get Error title
  331. *
  332. * @return string
  333. */
  334. public function getErrorTitle()
  335. {
  336. return $this->errorTitle;
  337. }
  338. /**
  339. * Set Error title
  340. *
  341. * @param string $value
  342. * @return PHPExcel_Cell_DataValidation
  343. */
  344. public function setErrorTitle($value = '')
  345. {
  346. $this->errorTitle = $value;
  347. return $this;
  348. }
  349. /**
  350. * Get Error
  351. *
  352. * @return string
  353. */
  354. public function getError()
  355. {
  356. return $this->error;
  357. }
  358. /**
  359. * Set Error
  360. *
  361. * @param string $value
  362. * @return PHPExcel_Cell_DataValidation
  363. */
  364. public function setError($value = '')
  365. {
  366. $this->error = $value;
  367. return $this;
  368. }
  369. /**
  370. * Get Prompt title
  371. *
  372. * @return string
  373. */
  374. public function getPromptTitle()
  375. {
  376. return $this->promptTitle;
  377. }
  378. /**
  379. * Set Prompt title
  380. *
  381. * @param string $value
  382. * @return PHPExcel_Cell_DataValidation
  383. */
  384. public function setPromptTitle($value = '')
  385. {
  386. $this->promptTitle = $value;
  387. return $this;
  388. }
  389. /**
  390. * Get Prompt
  391. *
  392. * @return string
  393. */
  394. public function getPrompt()
  395. {
  396. return $this->prompt;
  397. }
  398. /**
  399. * Set Prompt
  400. *
  401. * @param string $value
  402. * @return PHPExcel_Cell_DataValidation
  403. */
  404. public function setPrompt($value = '')
  405. {
  406. $this->prompt = $value;
  407. return $this;
  408. }
  409. /**
  410. * Get hash code
  411. *
  412. * @return string Hash code
  413. */
  414. public function getHashCode()
  415. {
  416. return md5(
  417. $this->formula1 .
  418. $this->formula2 .
  419. $this->type = PHPExcel_Cell_DataValidation::TYPE_NONE .
  420. $this->errorStyle = PHPExcel_Cell_DataValidation::STYLE_STOP .
  421. $this->operator .
  422. ($this->allowBlank ? 't' : 'f') .
  423. ($this->showDropDown ? 't' : 'f') .
  424. ($this->showInputMessage ? 't' : 'f') .
  425. ($this->showErrorMessage ? 't' : 'f') .
  426. $this->errorTitle .
  427. $this->error .
  428. $this->promptTitle .
  429. $this->prompt .
  430. __CLASS__
  431. );
  432. }
  433. /**
  434. * Implement PHP __clone to create a deep clone, not just a shallow copy.
  435. */
  436. public function __clone()
  437. {
  438. $vars = get_object_vars($this);
  439. foreach ($vars as $key => $value) {
  440. if (is_object($value)) {
  441. $this->$key = clone $value;
  442. } else {
  443. $this->$key = $value;
  444. }
  445. }
  446. }
  447. }