[ 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_Alignment 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_Alignment extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable 37 { 38 /* Horizontal alignment styles */ 39 const HORIZONTAL_GENERAL = 'general'; 40 const HORIZONTAL_LEFT = 'left'; 41 const HORIZONTAL_RIGHT = 'right'; 42 const HORIZONTAL_CENTER = 'center'; 43 const HORIZONTAL_CENTER_CONTINUOUS = 'centerContinuous'; 44 const HORIZONTAL_JUSTIFY = 'justify'; 45 const HORIZONTAL_FILL = 'fill'; 46 const HORIZONTAL_DISTRIBUTED = 'distributed'; // Excel2007 only 47 48 /* Vertical alignment styles */ 49 const VERTICAL_BOTTOM = 'bottom'; 50 const VERTICAL_TOP = 'top'; 51 const VERTICAL_CENTER = 'center'; 52 const VERTICAL_JUSTIFY = 'justify'; 53 const VERTICAL_DISTRIBUTED = 'distributed'; // Excel2007 only 54 55 /** 56 * Horizontal 57 * 58 * @var string 59 */ 60 protected $_horizontal = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL; 61 62 /** 63 * Vertical 64 * 65 * @var string 66 */ 67 protected $_vertical = PHPExcel_Style_Alignment::VERTICAL_BOTTOM; 68 69 /** 70 * Text rotation 71 * 72 * @var int 73 */ 74 protected $_textRotation = 0; 75 76 /** 77 * Wrap text 78 * 79 * @var boolean 80 */ 81 protected $_wrapText = FALSE; 82 83 /** 84 * Shrink to fit 85 * 86 * @var boolean 87 */ 88 protected $_shrinkToFit = FALSE; 89 90 /** 91 * Indent - only possible with horizontal alignment left and right 92 * 93 * @var int 94 */ 95 protected $_indent = 0; 96 97 /** 98 * Create a new PHPExcel_Style_Alignment 99 * 100 * @param boolean $isSupervisor Flag indicating if this is a supervisor or not 101 * Leave this value at default unless you understand exactly what 102 * its ramifications are 103 * @param boolean $isConditional Flag indicating if this is a conditional style or not 104 * Leave this value at default unless you understand exactly what 105 * its ramifications are 106 */ 107 public function __construct($isSupervisor = FALSE, $isConditional = FALSE) 108 { 109 // Supervisor? 110 parent::__construct($isSupervisor); 111 112 if ($isConditional) { 113 $this->_horizontal = NULL; 114 $this->_vertical = NULL; 115 $this->_textRotation = NULL; 116 } 117 } 118 119 /** 120 * Get the shared style component for the currently active cell in currently active sheet. 121 * Only used for style supervisor 122 * 123 * @return PHPExcel_Style_Alignment 124 */ 125 public function getSharedComponent() 126 { 127 return $this->_parent->getSharedComponent()->getAlignment(); 128 } 129 130 /** 131 * Build style array from subcomponents 132 * 133 * @param array $array 134 * @return array 135 */ 136 public function getStyleArray($array) 137 { 138 return array('alignment' => $array); 139 } 140 141 /** 142 * Apply styles from array 143 * 144 * <code> 145 * $objPHPExcel->getActiveSheet()->getStyle('B2')->getAlignment()->applyFromArray( 146 * array( 147 * 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, 148 * 'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER, 149 * 'rotation' => 0, 150 * 'wrap' => TRUE 151 * ) 152 * ); 153 * </code> 154 * 155 * @param array $pStyles Array containing style information 156 * @throws PHPExcel_Exception 157 * @return PHPExcel_Style_Alignment 158 */ 159 public function applyFromArray($pStyles = NULL) { 160 if (is_array($pStyles)) { 161 if ($this->_isSupervisor) { 162 $this->getActiveSheet()->getStyle($this->getSelectedCells()) 163 ->applyFromArray($this->getStyleArray($pStyles)); 164 } else { 165 if (isset($pStyles['horizontal'])) { 166 $this->setHorizontal($pStyles['horizontal']); 167 } 168 if (isset($pStyles['vertical'])) { 169 $this->setVertical($pStyles['vertical']); 170 } 171 if (isset($pStyles['rotation'])) { 172 $this->setTextRotation($pStyles['rotation']); 173 } 174 if (isset($pStyles['wrap'])) { 175 $this->setWrapText($pStyles['wrap']); 176 } 177 if (isset($pStyles['shrinkToFit'])) { 178 $this->setShrinkToFit($pStyles['shrinkToFit']); 179 } 180 if (isset($pStyles['indent'])) { 181 $this->setIndent($pStyles['indent']); 182 } 183 } 184 } else { 185 throw new PHPExcel_Exception("Invalid style array passed."); 186 } 187 return $this; 188 } 189 190 /** 191 * Get Horizontal 192 * 193 * @return string 194 */ 195 public function getHorizontal() { 196 if ($this->_isSupervisor) { 197 return $this->getSharedComponent()->getHorizontal(); 198 } 199 return $this->_horizontal; 200 } 201 202 /** 203 * Set Horizontal 204 * 205 * @param string $pValue 206 * @return PHPExcel_Style_Alignment 207 */ 208 public function setHorizontal($pValue = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL) { 209 if ($pValue == '') { 210 $pValue = PHPExcel_Style_Alignment::HORIZONTAL_GENERAL; 211 } 212 213 if ($this->_isSupervisor) { 214 $styleArray = $this->getStyleArray(array('horizontal' => $pValue)); 215 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 216 } 217 else { 218 $this->_horizontal = $pValue; 219 } 220 return $this; 221 } 222 223 /** 224 * Get Vertical 225 * 226 * @return string 227 */ 228 public function getVertical() { 229 if ($this->_isSupervisor) { 230 return $this->getSharedComponent()->getVertical(); 231 } 232 return $this->_vertical; 233 } 234 235 /** 236 * Set Vertical 237 * 238 * @param string $pValue 239 * @return PHPExcel_Style_Alignment 240 */ 241 public function setVertical($pValue = PHPExcel_Style_Alignment::VERTICAL_BOTTOM) { 242 if ($pValue == '') { 243 $pValue = PHPExcel_Style_Alignment::VERTICAL_BOTTOM; 244 } 245 246 if ($this->_isSupervisor) { 247 $styleArray = $this->getStyleArray(array('vertical' => $pValue)); 248 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 249 } else { 250 $this->_vertical = $pValue; 251 } 252 return $this; 253 } 254 255 /** 256 * Get TextRotation 257 * 258 * @return int 259 */ 260 public function getTextRotation() { 261 if ($this->_isSupervisor) { 262 return $this->getSharedComponent()->getTextRotation(); 263 } 264 return $this->_textRotation; 265 } 266 267 /** 268 * Set TextRotation 269 * 270 * @param int $pValue 271 * @throws PHPExcel_Exception 272 * @return PHPExcel_Style_Alignment 273 */ 274 public function setTextRotation($pValue = 0) { 275 // Excel2007 value 255 => PHPExcel value -165 276 if ($pValue == 255) { 277 $pValue = -165; 278 } 279 280 // Set rotation 281 if ( ($pValue >= -90 && $pValue <= 90) || $pValue == -165 ) { 282 if ($this->_isSupervisor) { 283 $styleArray = $this->getStyleArray(array('rotation' => $pValue)); 284 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 285 } else { 286 $this->_textRotation = $pValue; 287 } 288 } else { 289 throw new PHPExcel_Exception("Text rotation should be a value between -90 and 90."); 290 } 291 292 return $this; 293 } 294 295 /** 296 * Get Wrap Text 297 * 298 * @return boolean 299 */ 300 public function getWrapText() { 301 if ($this->_isSupervisor) { 302 return $this->getSharedComponent()->getWrapText(); 303 } 304 return $this->_wrapText; 305 } 306 307 /** 308 * Set Wrap Text 309 * 310 * @param boolean $pValue 311 * @return PHPExcel_Style_Alignment 312 */ 313 public function setWrapText($pValue = FALSE) { 314 if ($pValue == '') { 315 $pValue = FALSE; 316 } 317 if ($this->_isSupervisor) { 318 $styleArray = $this->getStyleArray(array('wrap' => $pValue)); 319 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 320 } else { 321 $this->_wrapText = $pValue; 322 } 323 return $this; 324 } 325 326 /** 327 * Get Shrink to fit 328 * 329 * @return boolean 330 */ 331 public function getShrinkToFit() { 332 if ($this->_isSupervisor) { 333 return $this->getSharedComponent()->getShrinkToFit(); 334 } 335 return $this->_shrinkToFit; 336 } 337 338 /** 339 * Set Shrink to fit 340 * 341 * @param boolean $pValue 342 * @return PHPExcel_Style_Alignment 343 */ 344 public function setShrinkToFit($pValue = FALSE) { 345 if ($pValue == '') { 346 $pValue = FALSE; 347 } 348 if ($this->_isSupervisor) { 349 $styleArray = $this->getStyleArray(array('shrinkToFit' => $pValue)); 350 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 351 } else { 352 $this->_shrinkToFit = $pValue; 353 } 354 return $this; 355 } 356 357 /** 358 * Get indent 359 * 360 * @return int 361 */ 362 public function getIndent() { 363 if ($this->_isSupervisor) { 364 return $this->getSharedComponent()->getIndent(); 365 } 366 return $this->_indent; 367 } 368 369 /** 370 * Set indent 371 * 372 * @param int $pValue 373 * @return PHPExcel_Style_Alignment 374 */ 375 public function setIndent($pValue = 0) { 376 if ($pValue > 0) { 377 if ($this->getHorizontal() != self::HORIZONTAL_GENERAL && 378 $this->getHorizontal() != self::HORIZONTAL_LEFT && 379 $this->getHorizontal() != self::HORIZONTAL_RIGHT) { 380 $pValue = 0; // indent not supported 381 } 382 } 383 if ($this->_isSupervisor) { 384 $styleArray = $this->getStyleArray(array('indent' => $pValue)); 385 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 386 } else { 387 $this->_indent = $pValue; 388 } 389 return $this; 390 } 391 392 /** 393 * Get hash code 394 * 395 * @return string Hash code 396 */ 397 public function getHashCode() { 398 if ($this->_isSupervisor) { 399 return $this->getSharedComponent()->getHashCode(); 400 } 401 return md5( 402 $this->_horizontal 403 . $this->_vertical 404 . $this->_textRotation 405 . ($this->_wrapText ? 't' : 'f') 406 . ($this->_shrinkToFit ? 't' : 'f') 407 . $this->_indent 408 . __CLASS__ 409 ); 410 } 411 412 }
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 |