[ 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_Fill 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_Fill extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable 37 { 38 /* Fill types */ 39 const FILL_NONE = 'none'; 40 const FILL_SOLID = 'solid'; 41 const FILL_GRADIENT_LINEAR = 'linear'; 42 const FILL_GRADIENT_PATH = 'path'; 43 const FILL_PATTERN_DARKDOWN = 'darkDown'; 44 const FILL_PATTERN_DARKGRAY = 'darkGray'; 45 const FILL_PATTERN_DARKGRID = 'darkGrid'; 46 const FILL_PATTERN_DARKHORIZONTAL = 'darkHorizontal'; 47 const FILL_PATTERN_DARKTRELLIS = 'darkTrellis'; 48 const FILL_PATTERN_DARKUP = 'darkUp'; 49 const FILL_PATTERN_DARKVERTICAL = 'darkVertical'; 50 const FILL_PATTERN_GRAY0625 = 'gray0625'; 51 const FILL_PATTERN_GRAY125 = 'gray125'; 52 const FILL_PATTERN_LIGHTDOWN = 'lightDown'; 53 const FILL_PATTERN_LIGHTGRAY = 'lightGray'; 54 const FILL_PATTERN_LIGHTGRID = 'lightGrid'; 55 const FILL_PATTERN_LIGHTHORIZONTAL = 'lightHorizontal'; 56 const FILL_PATTERN_LIGHTTRELLIS = 'lightTrellis'; 57 const FILL_PATTERN_LIGHTUP = 'lightUp'; 58 const FILL_PATTERN_LIGHTVERTICAL = 'lightVertical'; 59 const FILL_PATTERN_MEDIUMGRAY = 'mediumGray'; 60 61 /** 62 * Fill type 63 * 64 * @var string 65 */ 66 protected $_fillType = PHPExcel_Style_Fill::FILL_NONE; 67 68 /** 69 * Rotation 70 * 71 * @var double 72 */ 73 protected $_rotation = 0; 74 75 /** 76 * Start color 77 * 78 * @var PHPExcel_Style_Color 79 */ 80 protected $_startColor; 81 82 /** 83 * End color 84 * 85 * @var PHPExcel_Style_Color 86 */ 87 protected $_endColor; 88 89 /** 90 * Create a new PHPExcel_Style_Fill 91 * 92 * @param boolean $isSupervisor Flag indicating if this is a supervisor or not 93 * Leave this value at default unless you understand exactly what 94 * its ramifications are 95 * @param boolean $isConditional Flag indicating if this is a conditional style or not 96 * Leave this value at default unless you understand exactly what 97 * its ramifications are 98 */ 99 public function __construct($isSupervisor = FALSE, $isConditional = FALSE) 100 { 101 // Supervisor? 102 parent::__construct($isSupervisor); 103 104 // Initialise values 105 if ($isConditional) { 106 $this->_fillType = NULL; 107 } 108 $this->_startColor = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_WHITE, $isSupervisor, $isConditional); 109 $this->_endColor = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor, $isConditional); 110 111 // bind parent if we are a supervisor 112 if ($isSupervisor) { 113 $this->_startColor->bindParent($this, '_startColor'); 114 $this->_endColor->bindParent($this, '_endColor'); 115 } 116 } 117 118 /** 119 * Get the shared style component for the currently active cell in currently active sheet. 120 * Only used for style supervisor 121 * 122 * @return PHPExcel_Style_Fill 123 */ 124 public function getSharedComponent() 125 { 126 return $this->_parent->getSharedComponent()->getFill(); 127 } 128 129 /** 130 * Build style array from subcomponents 131 * 132 * @param array $array 133 * @return array 134 */ 135 public function getStyleArray($array) 136 { 137 return array('fill' => $array); 138 } 139 140 /** 141 * Apply styles from array 142 * 143 * <code> 144 * $objPHPExcel->getActiveSheet()->getStyle('B2')->getFill()->applyFromArray( 145 * array( 146 * 'type' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR, 147 * 'rotation' => 0, 148 * 'startcolor' => array( 149 * 'rgb' => '000000' 150 * ), 151 * 'endcolor' => array( 152 * 'argb' => 'FFFFFFFF' 153 * ) 154 * ) 155 * ); 156 * </code> 157 * 158 * @param array $pStyles Array containing style information 159 * @throws PHPExcel_Exception 160 * @return PHPExcel_Style_Fill 161 */ 162 public function applyFromArray($pStyles = null) { 163 if (is_array($pStyles)) { 164 if ($this->_isSupervisor) { 165 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles)); 166 } else { 167 if (array_key_exists('type', $pStyles)) { 168 $this->setFillType($pStyles['type']); 169 } 170 if (array_key_exists('rotation', $pStyles)) { 171 $this->setRotation($pStyles['rotation']); 172 } 173 if (array_key_exists('startcolor', $pStyles)) { 174 $this->getStartColor()->applyFromArray($pStyles['startcolor']); 175 } 176 if (array_key_exists('endcolor', $pStyles)) { 177 $this->getEndColor()->applyFromArray($pStyles['endcolor']); 178 } 179 if (array_key_exists('color', $pStyles)) { 180 $this->getStartColor()->applyFromArray($pStyles['color']); 181 } 182 } 183 } else { 184 throw new PHPExcel_Exception("Invalid style array passed."); 185 } 186 return $this; 187 } 188 189 /** 190 * Get Fill Type 191 * 192 * @return string 193 */ 194 public function getFillType() { 195 if ($this->_isSupervisor) { 196 return $this->getSharedComponent()->getFillType(); 197 } 198 return $this->_fillType; 199 } 200 201 /** 202 * Set Fill Type 203 * 204 * @param string $pValue PHPExcel_Style_Fill fill type 205 * @return PHPExcel_Style_Fill 206 */ 207 public function setFillType($pValue = PHPExcel_Style_Fill::FILL_NONE) { 208 if ($this->_isSupervisor) { 209 $styleArray = $this->getStyleArray(array('type' => $pValue)); 210 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 211 } else { 212 $this->_fillType = $pValue; 213 } 214 return $this; 215 } 216 217 /** 218 * Get Rotation 219 * 220 * @return double 221 */ 222 public function getRotation() { 223 if ($this->_isSupervisor) { 224 return $this->getSharedComponent()->getRotation(); 225 } 226 return $this->_rotation; 227 } 228 229 /** 230 * Set Rotation 231 * 232 * @param double $pValue 233 * @return PHPExcel_Style_Fill 234 */ 235 public function setRotation($pValue = 0) { 236 if ($this->_isSupervisor) { 237 $styleArray = $this->getStyleArray(array('rotation' => $pValue)); 238 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 239 } else { 240 $this->_rotation = $pValue; 241 } 242 return $this; 243 } 244 245 /** 246 * Get Start Color 247 * 248 * @return PHPExcel_Style_Color 249 */ 250 public function getStartColor() { 251 return $this->_startColor; 252 } 253 254 /** 255 * Set Start Color 256 * 257 * @param PHPExcel_Style_Color $pValue 258 * @throws PHPExcel_Exception 259 * @return PHPExcel_Style_Fill 260 */ 261 public function setStartColor(PHPExcel_Style_Color $pValue = null) { 262 // make sure parameter is a real color and not a supervisor 263 $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue; 264 265 if ($this->_isSupervisor) { 266 $styleArray = $this->getStartColor()->getStyleArray(array('argb' => $color->getARGB())); 267 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 268 } else { 269 $this->_startColor = $color; 270 } 271 return $this; 272 } 273 274 /** 275 * Get End Color 276 * 277 * @return PHPExcel_Style_Color 278 */ 279 public function getEndColor() { 280 return $this->_endColor; 281 } 282 283 /** 284 * Set End Color 285 * 286 * @param PHPExcel_Style_Color $pValue 287 * @throws PHPExcel_Exception 288 * @return PHPExcel_Style_Fill 289 */ 290 public function setEndColor(PHPExcel_Style_Color $pValue = null) { 291 // make sure parameter is a real color and not a supervisor 292 $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue; 293 294 if ($this->_isSupervisor) { 295 $styleArray = $this->getEndColor()->getStyleArray(array('argb' => $color->getARGB())); 296 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray); 297 } else { 298 $this->_endColor = $color; 299 } 300 return $this; 301 } 302 303 /** 304 * Get hash code 305 * 306 * @return string Hash code 307 */ 308 public function getHashCode() { 309 if ($this->_isSupervisor) { 310 return $this->getSharedComponent()->getHashCode(); 311 } 312 return md5( 313 $this->getFillType() 314 . $this->getRotation() 315 . $this->getStartColor()->getHashCode() 316 . $this->getEndColor()->getHashCode() 317 . __CLASS__ 318 ); 319 } 320 321 }
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 |