[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/lib/phpexcel/PHPExcel/Style/ -> Fill.php (source)

   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  }


Generated: Fri Nov 28 20:29:05 2014 Cross-referenced by PHPXref 0.7.1