Exemple #1
0
 /**
  * @param Style $styleToUpdate Style to update (passed as reference)
  * @param Style $baseStyle
  * @return void
  */
 private function mergeCellProperties($styleToUpdate, $baseStyle)
 {
     if (!$this->hasSetWrapText && $baseStyle->shouldWrapText()) {
         $styleToUpdate->setShouldWrapText();
     }
     if (!$this->getBorder() && $baseStyle->shouldApplyBorder()) {
         $styleToUpdate->setBorder($baseStyle->getBorder());
     }
     if (!$this->hasSetBackgroundColor && $baseStyle->shouldApplyBackgroundColor()) {
         $styleToUpdate->setBackgroundColor($baseStyle->getBackgroundColor());
     }
 }
Exemple #2
0
 /**
  * Merges the current style with the given style, using the given style as a base. This means that:
  *   - if current style and base style both have property A set, use current style property's value
  *   - if current style has property A set but base style does not, use current style property's value
  *   - if base style has property A set but current style does not, use base style property's value
  *
  * @NOTE: This function returns a new style.
  *
  * @param Style $baseStyle
  * @return Style New style corresponding to the merge of the 2 styles
  */
 public function mergeWith($baseStyle)
 {
     $mergedStyle = clone $this;
     if (!$this->hasSetFontBold && $baseStyle->isFontBold()) {
         $mergedStyle->setFontBold();
     }
     if (!$this->hasSetFontItalic && $baseStyle->isFontItalic()) {
         $mergedStyle->setFontItalic();
     }
     if (!$this->hasSetFontUnderline && $baseStyle->isFontUnderline()) {
         $mergedStyle->setFontUnderline();
     }
     if (!$this->hasSetFontStrikethrough && $baseStyle->isFontStrikethrough()) {
         $mergedStyle->setFontStrikethrough();
     }
     if (!$this->hasSetFontSize && $baseStyle->getFontSize() !== self::DEFAULT_FONT_SIZE) {
         $mergedStyle->setFontSize($baseStyle->getFontSize());
     }
     if (!$this->hasSetFontColor && $baseStyle->getFontColor() !== self::DEFAULT_FONT_COLOR) {
         $mergedStyle->setFontColor($baseStyle->getFontColor());
     }
     if (!$this->hasSetFontName && $baseStyle->getFontName() !== self::DEFAULT_FONT_NAME) {
         $mergedStyle->setFontName($baseStyle->getFontName());
     }
     if (!$this->hasSetWrapText && $baseStyle->shouldWrapText()) {
         $mergedStyle->setShouldWrapText();
     }
     if (!$this->getBorder() && $baseStyle->shouldApplyBorder()) {
         $mergedStyle->setBorder($baseStyle->getBorder());
     }
     if (!$this->hasSetBackgroundColor && $baseStyle->shouldApplyBackgroundColor()) {
         $mergedStyle->setBackgroundColor($baseStyle->getBackgroundColor());
     }
     return $mergedStyle;
 }