[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * PHPExcel 4 * 5 * Copyright (c) 2006 - 2014 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_Style 23 * @copyright Copyright (c) 2006 - 2014 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 28 29 /** 30 * PHPExcel_Style_Borders 31 * 32 * @category PHPExcel 33 * @package PHPExcel_Style 34 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) 35 */ 36 class PHPExcel_Style_Borders extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable 37 { 38 /* Diagonal directions */ 39 const DIAGONAL_NONE = 0; 40 const DIAGONAL_UP = 1; 41 const DIAGONAL_DOWN = 2; 42 const DIAGONAL_BOTH = 3; 43 44 /** 45 * Left 46 * 47 * @var PHPExcel_Style_Border 48 */ 49 protected $_left; 50 51 /** 52 * Right 53 * 54 * @var PHPExcel_Style_Border 55 */ 56 protected $_right; 57 58 /** 59 * Top 60 * 61 * @var PHPExcel_Style_Border 62 */ 63 protected $_top; 64 65 /** 66 * Bottom 67 * 68 * @var PHPExcel_Style_Border 69 */ 70 protected $_bottom; 71 72 /** 73 * Diagonal 74 * 75 * @var PHPExcel_Style_Border 76 */ 77 protected $_diagonal; 78 79 /** 80 * DiagonalDirection 81 * 82 * @var int 83 */ 84 protected $_diagonalDirection; 85 86 /** 87 * All borders psedo-border. Only applies to supervisor. 88 * 89 * @var PHPExcel_Style_Border 90 */ 91 protected $_allBorders; 92 93 /** 94 * Outline psedo-border. Only applies to supervisor. 95 * 96 * @var PHPExcel_Style_Border 97 */ 98 protected $_outline; 99 100 /** 101 * Inside psedo-border. Only applies to supervisor. 102 * 103 * @var PHPExcel_Style_Border 104 */ 105 protected $_inside; 106 107 /** 108 * Vertical pseudo-border. Only applies to supervisor. 109 * 110 * @var PHPExcel_Style_Border 111 */ 112 protected $_vertical; 113 114 /** 115 * Horizontal pseudo-border. Only applies to supervisor. 116 * 117 * @var PHPExcel_Style_Border 118 */ 119 protected $_horizontal; 120 121 /** 122 * Create a new PHPExcel_Style_Borders 123 * 124 * @param boolean $isSupervisor Flag indicating if this is a supervisor or not 125 * Leave this value at default unless you understand exactly what 126 * its ramifications are 127 * @param boolean $isConditional Flag indicating if this is a conditional style or not 128 * Leave this value at default unless you understand exactly what 129 * its ramifications are 130 */ 131 public function __construct($isSupervisor = FALSE, $isConditional = FALSE) 132 { 133 // Supervisor? 134 parent::__construct($isSupervisor); 135 136 // Initialise values 137 $this->_left = new PHPExcel_Style_Border($isSupervisor, $isConditional); 138 $this->_right = new PHPExcel_Style_Border($isSupervisor, $isConditional); 139 $this->_top = new PHPExcel_Style_Border($isSupervisor, $isConditional); 140 $this->_bottom = new PHPExcel_Style_Border($isSupervisor, $isConditional); 141 $this->_diagonal = new PHPExcel_Style_Border($isSupervisor, $isConditional); 142 $this->_diagonalDirection = PHPExcel_Style_Borders::DIAGONAL_NONE; 143 144 // Specially for supervisor 145 if ($isSupervisor) { 146 // Initialize pseudo-borders 147 $this->_allBorders = new PHPExcel_Style_Border(TRUE); 148 $this->_outline = new PHPExcel_Style_Border(TRUE); 149 $this->_inside = new PHPExcel_Style_Border(TRUE); 150 $this->_vertical = new PHPExcel_Style_Border(TRUE); 151 $this->_horizontal = new PHPExcel_Style_Border(TRUE); 152 153 // bind parent if we are a supervisor 154 $this->_left->bindParent($this, '_left'); 155 $this->_right->bindParent($this, '_right'); 156 $this->_top->bindParent($this, '_top'); 157 $this->_bottom->bindParent($this, '_bottom'); 158 $this->_diagonal->bindParent($this, '_diagonal'); 159 $this->_allBorders->bindParent($this, '_allBorders'); 160 $this->_outline->bindParent($this, '_outline'); 161 $this->_inside->bindParent($this, '_inside'); 162 $this->_vertical->bindParent($this, '_vertical'); 163 $this->_horizontal->bindParent($this, '_horizontal'); 164 } 165 } 166 167 /** 168 * Get the shared style component for the currently active cell in currently active sheet. 169 * Only used for style supervisor 170 * 171 * @return PHPExcel_Style_Borders 172 */ 173 public function getSharedComponent() 174 { 175 return $this->_parent->getSharedComponent()->getBorders(); 176 } 177 178 /** 179 * Build style array from subcomponents 180 * 181 * @param array $array 182 * @return array 183 */ 184 public function getStyleArray($array) 185 { 186 return array('borders' => $array); 187 } 188 189 /** 190 * Apply styles from array 191 * 192 * <code> 193 * $objPHPExcel->getActiveSheet()->getStyle('B2')->getBorders()->applyFromArray( 194 * array( 195 * 'bottom' => array( 196 * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, 197 * 'color' => array( 198 * 'rgb' => '808080' 199 * ) 200 * ), 201 * 'top' => array( 202 * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, 203 * 'color' => array( 204 * 'rgb' => '808080' 205 * ) 206 * ) 207 * ) 208 * ); 209 * </code> 210 * <code> 211 * $objPHPExcel->getActiveSheet()->getStyle('B2')->getBorders()->applyFromArray( 212 * array( 213 * 'allborders' => array( 214 * 'style' => PHPExcel_Style_Border::BORDER_DASHDOT, 215 * 'color' => array( 216 * 'rgb' => '808080' 217 * ) 218 * ) 219 * ) 220 * ); 221 * </code> 222 * 223 * @param array $pStyles Array containing style information 224 * @throws PHPExcel_Exception 225 * @return PHPExcel_Style_Borders 226 */ 227 public function applyFromArray($pStyles = null) { 228 if (is_array($pStyles)) { 229 if ($this->_isSupervisor) { 230 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); 231 } else { 232 if (array_key_exists('left', $pStyles)) { 233 $this->getLeft()->applyFromArray($pStyles['left']); 234 } 235 if (array_key_exists('right', $pStyles)) { 236 $this->getRight()->applyFromArray($pStyles['right']); 237 } 238 if (array_key_exists('top', $pStyles)) { 239 $this->getTop()->applyFromArray($pStyles['top']); 240 } 241 if (array_key_exists('bottom', $pStyles)) { 242 $this->getBottom()->applyFromArray($pStyles['bottom']); 243 } 244 if (array_key_exists('diagonal', $pStyles)) { 245 $this->getDiagonal()->applyFromArray($pStyles['diagonal']); 246 } 247 if (array_key_exists('diagonaldirection', $pStyles)) { 248 $this->setDiagonalDirection($pStyles['diagonaldirection']); 249 } 250 if (array_key_exists('allborders', $pStyles)) { 251 $this->getLeft()->applyFromArray($pStyles['allborders']); 252 $this->getRight()->applyFromArray($pStyles['allborders']); 253 $this->getTop()->applyFromArray($pStyles['allborders']); 254 $this->getBottom()->applyFromArray($pStyles['allborders']); 255 } 256 } 257 } else { 258 throw new PHPExcel_Exception("Invalid style array passed."); 259 } 260 return $this; 261 } 262 263 /** 264 * Get Left 265 * 266 * @return PHPExcel_Style_Border 267 */ 268 public function getLeft() { 269 return $this->_left; 270 } 271 272 /** 273 * Get Right 274 * 275 * @return PHPExcel_Style_Border 276 */ 277 public function getRight() { 278 return $this->_right; 279 } 280 281 /** 282 * Get Top 283 * 284 * @return PHPExcel_Style_Border 285 */ 286 public function getTop() { 287 return $this->_top; 288 } 289 290 /** 291 * Get Bottom 292 * 293 * @return PHPExcel_Style_Border 294 */ 295 public function getBottom() { 296 return $this->_bottom; 297 } 298 299 /** 300 * Get Diagonal 301 * 302 * @return PHPExcel_Style_Border 303 */ 304 public function getDiagonal() { 305 return $this->_diagonal; 306 } 307 308 /** 309 * Get AllBorders (pseudo-border). Only applies to supervisor. 310 * 311 * @return PHPExcel_Style_Border 312 * @throws PHPExcel_Exception 313 */ 314 public function getAllBorders() { 315 if (!$this->_isSupervisor) { 316 throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.'); 317 } 318 return $this->_allBorders; 319 } 320 321 /** 322 * Get Outline (pseudo-border). Only applies to supervisor. 323 * 324 * @return boolean 325 * @throws PHPExcel_Exception 326 */ 327 public function getOutline() { 328 if (!$this->_isSupervisor) { 329 throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.'); 330 } 331 return $this->_outline; 332 } 333 334 /** 335 * Get Inside (pseudo-border). Only applies to supervisor. 336 * 337 * @return boolean 338 * @throws PHPExcel_Exception 339 */ 340 public function getInside() { 341 if (!$this->_isSupervisor) { 342 throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.'); 343 } 344 return $this->_inside; 345 } 346 347 /** 348 * Get Vertical (pseudo-border). Only applies to supervisor. 349 * 350 * @return PHPExcel_Style_Border 351 * @throws PHPExcel_Exception 352 */ 353 public function getVertical() { 354 if (!$this->_isSupervisor) { 355 throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.'); 356 } 357 return $this->_vertical; 358 } 359 360 /** 361 * Get Horizontal (pseudo-border). Only applies to supervisor. 362 * 363 * @return PHPExcel_Style_Border 364 * @throws PHPExcel_Exception 365 */ 366 public function getHorizontal() { 367 if (!$this->_isSupervisor) { 368 throw new PHPExcel_Exception('Can only get pseudo-border for supervisor.'); 369 } 370 return $this->_horizontal; 371 } 372 373 /** 374 * Get DiagonalDirection 375 * 376 * @return int 377 */ 378 public function getDiagonalDirection() { 379 if ($this->_isSupervisor) { 380 return $this->getSharedComponent()->getDiagonalDirection(); 381 } 382 return $this->_diagonalDirection; 383 } 384 385 /** 386 * Set DiagonalDirection 387 * 388 * @param int $pValue 389 * @return PHPExcel_Style_Borders 390 */ 391 public function setDiagonalDirection($pValue = PHPExcel_Style_Borders::DIAGONAL_NONE) { 392 if ($pValue == '') { 393 $pValue = PHPExcel_Style_Borders::DIAGONAL_NONE; 394 } 395 if ($this->_isSupervisor) { 396 $styleArray = $this->getStyleArray(array('diagonaldirection' => $pValue)); 397 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 398 } else { 399 $this->_diagonalDirection = $pValue; 400 } 401 return $this; 402 } 403 404 /** 405 * Get hash code 406 * 407 * @return string Hash code 408 */ 409 public function getHashCode() { 410 if ($this->_isSupervisor) { 411 return $this->getSharedComponent()->getHashcode(); 412 } 413 return md5( 414 $this->getLeft()->getHashCode() 415 . $this->getRight()->getHashCode() 416 . $this->getTop()->getHashCode() 417 . $this->getBottom()->getHashCode() 418 . $this->getDiagonal()->getHashCode() 419 . $this->getDiagonalDirection() 420 . __CLASS__ 421 ); 422 } 423 424 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |