435 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			435 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace FML\Stylesheet;
 | |
| 
 | |
| use FML\UniqueID;
 | |
| 
 | |
| /**
 | |
|  * Class representing a Style3d
 | |
|  *
 | |
|  * @author    steeffeen <mail@steeffeen.com>
 | |
|  * @copyright FancyManiaLinks Copyright © 2017 Steffen Schröder
 | |
|  * @license   http://www.gnu.org/licenses/ GNU General Public License, Version 3
 | |
|  */
 | |
| class Style3d
 | |
| {
 | |
| 
 | |
|     /*
 | |
|      * Constants
 | |
|      */
 | |
|     const MODEL_Box     = "Box";
 | |
|     const MODEL_Button  = "Button";
 | |
|     const MODEL_ButtonH = "ButtonH";
 | |
|     const MODEL_Title   = "Title";
 | |
|     const MODEL_Window  = "Window";
 | |
| 
 | |
|     /**
 | |
|      * @var string $styleId Style ID
 | |
|      */
 | |
|     protected $styleId = null;
 | |
| 
 | |
|     /**
 | |
|      * @var string $model Style model
 | |
|      */
 | |
|     protected $model = self::MODEL_Box;
 | |
| 
 | |
|     /**
 | |
|      * @var float $thickness Thickness
 | |
|      */
 | |
|     protected $thickness = null;
 | |
| 
 | |
|     /**
 | |
|      * @var string $color Color
 | |
|      */
 | |
|     protected $color = null;
 | |
| 
 | |
|     /**
 | |
|      * @var string $focusColor Focus color
 | |
|      */
 | |
|     protected $focusColor = null;
 | |
| 
 | |
|     /**
 | |
|      * @var string $lightColor Light color
 | |
|      */
 | |
|     protected $lightColor = null;
 | |
| 
 | |
|     /**
 | |
|      * @var string $focusLightColor Focus light color
 | |
|      */
 | |
|     protected $focusLightColor = null;
 | |
| 
 | |
|     /**
 | |
|      * @var float $yOffset Y-offset
 | |
|      */
 | |
|     protected $yOffset = null;
 | |
| 
 | |
|     /**
 | |
|      * @var float $focusYOffset Focus Y-offset
 | |
|      */
 | |
|     protected $focusYOffset = null;
 | |
| 
 | |
|     /**
 | |
|      * @var float $zOffset Z-offset
 | |
|      */
 | |
|     protected $zOffset = null;
 | |
| 
 | |
|     /**
 | |
|      * @var float $focusZOffset Focus Z-offset
 | |
|      */
 | |
|     protected $focusZOffset = null;
 | |
| 
 | |
|     /**
 | |
|      * Create a new Style3d
 | |
|      *
 | |
|      * @api
 | |
|      * @param string $styleId (optional) Style ID
 | |
|      * @param string $model   (optional) Style model
 | |
|      * @return static
 | |
|      */
 | |
|     public static function create($styleId = null, $model = null)
 | |
|     {
 | |
|         return new static($styleId, $model);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Construct a new Style3d
 | |
|      *
 | |
|      * @api
 | |
|      * @param string $styleId (optional) Style ID
 | |
|      * @param string $model   (optional) Style model
 | |
|      */
 | |
|     public function __construct($styleId = null, $model = null)
 | |
|     {
 | |
|         if ($styleId) {
 | |
|             $this->setId($styleId);
 | |
|         }
 | |
|         if ($model) {
 | |
|             $this->setModel($model);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the Style ID
 | |
|      *
 | |
|      * @api
 | |
|      * @return string
 | |
|      */
 | |
|     public function getId()
 | |
|     {
 | |
|         return $this->styleId;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the Style ID
 | |
|      *
 | |
|      * @api
 | |
|      * @param string $styleId Style ID
 | |
|      * @return static
 | |
|      */
 | |
|     public function setId($styleId)
 | |
|     {
 | |
|         $this->styleId = (string)$styleId;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Check the ID and assign one if necessary
 | |
|      *
 | |
|      * @return static
 | |
|      */
 | |
|     public function checkId()
 | |
|     {
 | |
|         if (!$this->styleId) {
 | |
|             $this->setId(new UniqueID());
 | |
|         }
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the model
 | |
|      *
 | |
|      * @api
 | |
|      * @return string
 | |
|      */
 | |
|     public function getModel()
 | |
|     {
 | |
|         return $this->model;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the model
 | |
|      *
 | |
|      * @api
 | |
|      * @param string $model Style model
 | |
|      * @return static
 | |
|      */
 | |
|     public function setModel($model)
 | |
|     {
 | |
|         $this->model = (string)$model;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the thickness
 | |
|      *
 | |
|      * @api
 | |
|      * @return float
 | |
|      */
 | |
|     public function getThickness()
 | |
|     {
 | |
|         return $this->thickness;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the thickness
 | |
|      *
 | |
|      * @api
 | |
|      * @param float $thickness Style thickness
 | |
|      * @return static
 | |
|      */
 | |
|     public function setThickness($thickness)
 | |
|     {
 | |
|         $this->thickness = (float)$thickness;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the color
 | |
|      *
 | |
|      * @api
 | |
|      * @return string
 | |
|      */
 | |
|     public function getColor()
 | |
|     {
 | |
|         return $this->color;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the color
 | |
|      *
 | |
|      * @api
 | |
|      * @param string $color Style color
 | |
|      * @return static
 | |
|      */
 | |
|     public function setColor($color)
 | |
|     {
 | |
|         $this->color = (string)$color;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the focus color
 | |
|      *
 | |
|      * @api
 | |
|      * @return string
 | |
|      */
 | |
|     public function getFocusColor()
 | |
|     {
 | |
|         return $this->focusColor;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the focus color
 | |
|      *
 | |
|      * @api
 | |
|      * @param string $focusColor Style focus color
 | |
|      * @return static
 | |
|      */
 | |
|     public function setFocusColor($focusColor)
 | |
|     {
 | |
|         $this->focusColor = (string)$focusColor;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the light color
 | |
|      *
 | |
|      * @api
 | |
|      * @return string
 | |
|      */
 | |
|     public function getLightColor()
 | |
|     {
 | |
|         return $this->lightColor;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the light color
 | |
|      *
 | |
|      * @api
 | |
|      * @param string $lightColor Light color
 | |
|      * @return static
 | |
|      */
 | |
|     public function setLightColor($lightColor)
 | |
|     {
 | |
|         $this->lightColor = (string)$lightColor;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the focus light color
 | |
|      *
 | |
|      * @api
 | |
|      * @return string
 | |
|      */
 | |
|     public function getFocusLightColor()
 | |
|     {
 | |
|         return $this->focusLightColor;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the focus light color
 | |
|      *
 | |
|      * @api
 | |
|      * @param string $focusLightColor Focus light color
 | |
|      * @return static
 | |
|      */
 | |
|     public function setFocusLightColor($focusLightColor)
 | |
|     {
 | |
|         $this->focusLightColor = (string)$focusLightColor;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the Y-offset
 | |
|      *
 | |
|      * @api
 | |
|      * @return float
 | |
|      */
 | |
|     public function getYOffset()
 | |
|     {
 | |
|         return $this->yOffset;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the Y-offset
 | |
|      *
 | |
|      * @api
 | |
|      * @param float $yOffset Y-offset
 | |
|      * @return static
 | |
|      */
 | |
|     public function setYOffset($yOffset)
 | |
|     {
 | |
|         $this->yOffset = (float)$yOffset;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the focus Y-offset
 | |
|      *
 | |
|      * @api
 | |
|      * @return float
 | |
|      */
 | |
|     public function getFocusYOffset()
 | |
|     {
 | |
|         return $this->focusYOffset;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the focus Y-offset
 | |
|      *
 | |
|      * @api
 | |
|      * @param float $focusYOffset Focus Y-offset
 | |
|      * @return static
 | |
|      */
 | |
|     public function setFocusYOffset($focusYOffset)
 | |
|     {
 | |
|         $this->focusYOffset = (float)$focusYOffset;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the Z-offset
 | |
|      *
 | |
|      * @api
 | |
|      * @return float
 | |
|      */
 | |
|     public function getZOffset()
 | |
|     {
 | |
|         return $this->zOffset;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the Z-offset
 | |
|      *
 | |
|      * @api
 | |
|      * @param float $zOffset Z-offset
 | |
|      * @return static
 | |
|      */
 | |
|     public function setZOffset($zOffset)
 | |
|     {
 | |
|         $this->zOffset = (float)$zOffset;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the focus Z-offset
 | |
|      *
 | |
|      * @api
 | |
|      * @return float
 | |
|      */
 | |
|     public function getFocusZOffset()
 | |
|     {
 | |
|         return $this->focusZOffset;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the focus Z-offset
 | |
|      *
 | |
|      * @api
 | |
|      * @param float $focusZOffset Focus Z-offset
 | |
|      * @return static
 | |
|      */
 | |
|     public function setFocusZOffset($focusZOffset)
 | |
|     {
 | |
|         $this->focusZOffset = (float)$focusZOffset;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Render the Style3d
 | |
|      *
 | |
|      * @param \DOMDocument $domDocument DOMDocument for which the Style3d should be rendered
 | |
|      * @return \DOMElement
 | |
|      */
 | |
|     public function render(\DOMDocument $domDocument)
 | |
|     {
 | |
|         $style3dXml = $domDocument->createElement("style3d");
 | |
|         $this->checkId();
 | |
|         if ($this->styleId) {
 | |
|             $style3dXml->setAttribute("id", $this->styleId);
 | |
|         }
 | |
|         if ($this->model) {
 | |
|             $style3dXml->setAttribute("model", $this->model);
 | |
|         }
 | |
|         if ($this->thickness) {
 | |
|             $style3dXml->setAttribute("thickness", $this->thickness);
 | |
|         }
 | |
|         if ($this->color) {
 | |
|             $style3dXml->setAttribute("color", $this->color);
 | |
|         }
 | |
|         if ($this->focusColor) {
 | |
|             $style3dXml->setAttribute("fcolor", $this->focusColor);
 | |
|         }
 | |
|         if ($this->lightColor) {
 | |
|             $style3dXml->setAttribute("lightcolor", $this->lightColor);
 | |
|         }
 | |
|         if ($this->focusLightColor) {
 | |
|             $style3dXml->setAttribute("flightcolor", $this->focusLightColor);
 | |
|         }
 | |
|         if ($this->yOffset) {
 | |
|             $style3dXml->setAttribute("yoffset", $this->yOffset);
 | |
|         }
 | |
|         if ($this->focusYOffset) {
 | |
|             $style3dXml->setAttribute("fyoffset", $this->focusYOffset);
 | |
|         }
 | |
|         if ($this->zOffset) {
 | |
|             $style3dXml->setAttribute("zoffset", $this->zOffset);
 | |
|         }
 | |
|         if ($this->focusZOffset) {
 | |
|             $style3dXml->setAttribute("fzoffset", $this->focusZOffset);
 | |
|         }
 | |
|         return $style3dXml;
 | |
|     }
 | |
| 
 | |
| }
 |