| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561 | <?php/** * Created by PhpStorm. * User: Wiktor Trzonkowski * Date: 6/17/14 * Time: 12:11 PM */class PHPExcel_Chart_Axis extends PHPExcel_Chart_Properties{    /**     * Axis Number     *     * @var  array of mixed     */    private $axisNumber = array(        'format' => self::FORMAT_CODE_GENERAL,        'source_linked' => 1    );    /**     * Axis Options     *     * @var  array of mixed     */    private $axisOptions = array(        'minimum' => null,        'maximum' => null,        'major_unit' => null,        'minor_unit' => null,        'orientation' => self::ORIENTATION_NORMAL,        'minor_tick_mark' => self::TICK_MARK_NONE,        'major_tick_mark' => self::TICK_MARK_NONE,        'axis_labels' => self::AXIS_LABELS_NEXT_TO,        'horizontal_crosses' => self::HORIZONTAL_CROSSES_AUTOZERO,        'horizontal_crosses_value' => null    );    /**     * Fill Properties     *     * @var  array of mixed     */    private $fillProperties = array(        'type' => self::EXCEL_COLOR_TYPE_ARGB,        'value' => null,        'alpha' => 0    );    /**     * Line Properties     *     * @var  array of mixed     */    private $lineProperties = array(        'type' => self::EXCEL_COLOR_TYPE_ARGB,        'value' => null,        'alpha' => 0    );    /**     * Line Style Properties     *     * @var  array of mixed     */    private $lineStyleProperties = array(        'width' => '9525',        'compound' => self::LINE_STYLE_COMPOUND_SIMPLE,        'dash' => self::LINE_STYLE_DASH_SOLID,        'cap' => self::LINE_STYLE_CAP_FLAT,        'join' => self::LINE_STYLE_JOIN_BEVEL,        'arrow' => array(            'head' => array(                'type' => self::LINE_STYLE_ARROW_TYPE_NOARROW,                'size' => self::LINE_STYLE_ARROW_SIZE_5            ),            'end' => array(                'type' => self::LINE_STYLE_ARROW_TYPE_NOARROW,                'size' => self::LINE_STYLE_ARROW_SIZE_8            ),        )    );    /**     * Shadow Properties     *     * @var  array of mixed     */    private $shadowProperties = array(        'presets' => self::SHADOW_PRESETS_NOSHADOW,        'effect' => null,        'color' => array(            'type' => self::EXCEL_COLOR_TYPE_STANDARD,            'value' => 'black',            'alpha' => 40,        ),        'size' => array(            'sx' => null,            'sy' => null,            'kx' => null        ),        'blur' => null,        'direction' => null,        'distance' => null,        'algn' => null,        'rotWithShape' => null    );    /**     * Glow Properties     *     * @var  array of mixed     */    private $glowProperties = array(        'size' => null,        'color' => array(            'type' => self::EXCEL_COLOR_TYPE_STANDARD,            'value' => 'black',            'alpha' => 40        )    );    /**     * Soft Edge Properties     *     * @var  array of mixed     */    private $softEdges = array(        'size' => null    );    /**     * Get Series Data Type     *     * @return  string     */    public function setAxisNumberProperties($format_code)    {        $this->axisNumber['format'] = (string) $format_code;        $this->axisNumber['source_linked'] = 0;    }    /**     * Get Axis Number Format Data Type     *     * @return  string     */    public function getAxisNumberFormat()    {        return $this->axisNumber['format'];    }    /**     * Get Axis Number Source Linked     *     * @return  string     */    public function getAxisNumberSourceLinked()    {        return (string) $this->axisNumber['source_linked'];    }    /**     * Set Axis Options Properties     *     * @param string $axis_labels     * @param string $horizontal_crosses_value     * @param string $horizontal_crosses     * @param string $axis_orientation     * @param string $major_tmt     * @param string $minor_tmt     * @param string $minimum     * @param string $maximum     * @param string $major_unit     * @param string $minor_unit     *     */    public function setAxisOptionsProperties($axis_labels, $horizontal_crosses_value = null, $horizontal_crosses = null, $axis_orientation = null, $major_tmt = null, $minor_tmt = null, $minimum = null, $maximum = null, $major_unit = null, $minor_unit = null)    {        $this->axisOptions['axis_labels'] = (string) $axis_labels;        ($horizontal_crosses_value !== null) ? $this->axisOptions['horizontal_crosses_value'] = (string) $horizontal_crosses_value : null;        ($horizontal_crosses !== null) ? $this->axisOptions['horizontal_crosses'] = (string) $horizontal_crosses : null;        ($axis_orientation !== null) ? $this->axisOptions['orientation'] = (string) $axis_orientation : null;        ($major_tmt !== null) ? $this->axisOptions['major_tick_mark'] = (string) $major_tmt : null;        ($minor_tmt !== null) ? $this->axisOptions['minor_tick_mark'] = (string) $minor_tmt : null;        ($minor_tmt !== null) ? $this->axisOptions['minor_tick_mark'] = (string) $minor_tmt : null;        ($minimum !== null) ? $this->axisOptions['minimum'] = (string) $minimum : null;        ($maximum !== null) ? $this->axisOptions['maximum'] = (string) $maximum : null;        ($major_unit !== null) ? $this->axisOptions['major_unit'] = (string) $major_unit : null;        ($minor_unit !== null) ? $this->axisOptions['minor_unit'] = (string) $minor_unit : null;    }    /**     * Get Axis Options Property     *     * @param string $property     *     * @return string     */    public function getAxisOptionsProperty($property)    {        return $this->axisOptions[$property];    }    /**     * Set Axis Orientation Property     *     * @param string $orientation     *     */    public function setAxisOrientation($orientation)    {        $this->orientation = (string) $orientation;    }    /**     * Set Fill Property     *     * @param string $color     * @param int $alpha     * @param string $type     *     */    public function setFillParameters($color, $alpha = 0, $type = self::EXCEL_COLOR_TYPE_ARGB)    {        $this->fillProperties = $this->setColorProperties($color, $alpha, $type);    }    /**     * Set Line Property     *     * @param string $color     * @param int $alpha     * @param string $type     *     */    public function setLineParameters($color, $alpha = 0, $type = self::EXCEL_COLOR_TYPE_ARGB)    {        $this->lineProperties = $this->setColorProperties($color, $alpha, $type);    }    /**     * Get Fill Property     *     * @param string $property     *     * @return string     */    public function getFillProperty($property)    {        return $this->fillProperties[$property];    }    /**     * Get Line Property     *     * @param string $property     *     * @return string     */    public function getLineProperty($property)    {        return $this->lineProperties[$property];    }    /**     * Set Line Style Properties     *     * @param float $line_width     * @param string $compound_type     * @param string $dash_type     * @param string $cap_type     * @param string $join_type     * @param string $head_arrow_type     * @param string $head_arrow_size     * @param string $end_arrow_type     * @param string $end_arrow_size     *     */    public function setLineStyleProperties($line_width = null, $compound_type = null, $dash_type = null, $cap_type = null, $join_type = null, $head_arrow_type = null, $head_arrow_size = null, $end_arrow_type = null, $end_arrow_size = null)    {        (!is_null($line_width)) ? $this->lineStyleProperties['width'] = $this->getExcelPointsWidth((float) $line_width) : null;        (!is_null($compound_type)) ? $this->lineStyleProperties['compound'] = (string) $compound_type : null;        (!is_null($dash_type)) ? $this->lineStyleProperties['dash'] = (string) $dash_type : null;        (!is_null($cap_type)) ? $this->lineStyleProperties['cap'] = (string) $cap_type : null;        (!is_null($join_type)) ? $this->lineStyleProperties['join'] = (string) $join_type : null;        (!is_null($head_arrow_type)) ? $this->lineStyleProperties['arrow']['head']['type'] = (string) $head_arrow_type : null;        (!is_null($head_arrow_size)) ? $this->lineStyleProperties['arrow']['head']['size'] = (string) $head_arrow_size : null;        (!is_null($end_arrow_type)) ? $this->lineStyleProperties['arrow']['end']['type'] = (string) $end_arrow_type : null;        (!is_null($end_arrow_size)) ? $this->lineStyleProperties['arrow']['end']['size'] = (string) $end_arrow_size : null;    }    /**     * Get Line Style Property     *     * @param array|string $elements     *     * @return string     */    public function getLineStyleProperty($elements)    {        return $this->getArrayElementsValue($this->lineStyleProperties, $elements);    }    /**     * Get Line Style Arrow Excel Width     *     * @param string $arrow     *     * @return string     */    public function getLineStyleArrowWidth($arrow)    {        return $this->getLineStyleArrowSize($this->lineStyleProperties['arrow'][$arrow]['size'], 'w');    }    /**     * Get Line Style Arrow Excel Length     *     * @param string $arrow     *     * @return string     */    public function getLineStyleArrowLength($arrow)    {        return $this->getLineStyleArrowSize($this->lineStyleProperties['arrow'][$arrow]['size'], 'len');    }    /**     * Set Shadow Properties     *     * @param int $shadow_presets     * @param string $sh_color_value     * @param string $sh_color_type     * @param string $sh_color_alpha     * @param float $sh_blur     * @param int $sh_angle     * @param float $sh_distance     *     */    public function setShadowProperties($sh_presets, $sh_color_value = null, $sh_color_type = null, $sh_color_alpha = null, $sh_blur = null, $sh_angle = null, $sh_distance = null)    {        $this->setShadowPresetsProperties((int) $sh_presets)            ->setShadowColor(                is_null($sh_color_value) ? $this->shadowProperties['color']['value'] : $sh_color_value,                is_null($sh_color_alpha) ? (int) $this->shadowProperties['color']['alpha'] : $sh_color_alpha,                is_null($sh_color_type) ? $this->shadowProperties['color']['type'] : $sh_color_type            )            ->setShadowBlur($sh_blur)            ->setShadowAngle($sh_angle)            ->setShadowDistance($sh_distance);    }    /**     * Set Shadow Color     *     * @param int $shadow_presets     *     * @return PHPExcel_Chart_Axis     */    private function setShadowPresetsProperties($shadow_presets)    {        $this->shadowProperties['presets'] = $shadow_presets;        $this->setShadowProperiesMapValues($this->getShadowPresetsMap($shadow_presets));        return $this;    }    /**     * Set Shadow Properties from Maped Values     *     * @param array $properties_map     * @param * $reference     *     * @return PHPExcel_Chart_Axis     */    private function setShadowProperiesMapValues(array $properties_map, &$reference = null)    {        $base_reference = $reference;        foreach ($properties_map as $property_key => $property_val) {            if (is_array($property_val)) {                if ($reference === null) {                    $reference = & $this->shadowProperties[$property_key];                } else {                    $reference = & $reference[$property_key];                }                $this->setShadowProperiesMapValues($property_val, $reference);            } else {                if ($base_reference === null) {                    $this->shadowProperties[$property_key] = $property_val;                } else {                    $reference[$property_key] = $property_val;                }            }        }        return $this;    }    /**     * Set Shadow Color     *     * @param string $color     * @param int $alpha     * @param string $type     *     * @return PHPExcel_Chart_Axis     */    private function setShadowColor($color, $alpha, $type)    {        $this->shadowProperties['color'] = $this->setColorProperties($color, $alpha, $type);        return $this;    }    /**     * Set Shadow Blur     *     * @param float $blur     *     * @return PHPExcel_Chart_Axis     */    private function setShadowBlur($blur)    {        if ($blur !== null) {            $this->shadowProperties['blur'] = (string) $this->getExcelPointsWidth($blur);        }        return $this;    }    /**     * Set Shadow Angle     *     * @param int $angle     *     * @return PHPExcel_Chart_Axis     */    private function setShadowAngle($angle)    {        if ($angle !== null) {            $this->shadowProperties['direction'] = (string) $this->getExcelPointsAngle($angle);        }        return $this;    }    /**     * Set Shadow Distance     *     * @param float $distance     *     * @return PHPExcel_Chart_Axis     */    private function setShadowDistance($distance)    {        if ($distance !== null) {            $this->shadowProperties['distance'] = (string) $this->getExcelPointsWidth($distance);        }        return $this;    }    /**     * Get Glow Property     *     * @param float $size     * @param string $color_value     * @param int $color_alpha     * @param string $color_type     */    public function getShadowProperty($elements)    {        return $this->getArrayElementsValue($this->shadowProperties, $elements);    }    /**     * Set Glow Properties     *     * @param float $size     * @param string $color_value     * @param int $color_alpha     * @param string $color_type     */    public function setGlowProperties($size, $color_value = null, $color_alpha = null, $color_type = null)    {        $this->setGlowSize($size)            ->setGlowColor(                is_null($color_value) ? $this->glowProperties['color']['value'] : $color_value,                is_null($color_alpha) ? (int) $this->glowProperties['color']['alpha'] : $color_alpha,                is_null($color_type) ? $this->glowProperties['color']['type'] : $color_type            );    }    /**     * Get Glow Property     *     * @param array|string $property     *     * @return string     */    public function getGlowProperty($property)    {        return $this->getArrayElementsValue($this->glowProperties, $property);    }    /**     * Set Glow Color     *     * @param float $size     *     * @return PHPExcel_Chart_Axis     */    private function setGlowSize($size)    {        if (!is_null($size)) {            $this->glowProperties['size'] = $this->getExcelPointsWidth($size);        }        return $this;    }    /**     * Set Glow Color     *     * @param string $color     * @param int $alpha     * @param string $type     *     * @return PHPExcel_Chart_Axis     */    private function setGlowColor($color, $alpha, $type)    {        $this->glowProperties['color'] = $this->setColorProperties($color, $alpha, $type);        return $this;    }    /**     * Set Soft Edges Size     *     * @param float $size     */    public function setSoftEdges($size)    {        if (!is_null($size)) {            $softEdges['size'] = (string) $this->getExcelPointsWidth($size);        }    }    /**     * Get Soft Edges Size     *     * @return string     */    public function getSoftEdgesSize()    {        return $this->softEdges['size'];    }}
 |