From 51cbca5cad0ce939cc453d6f33c1d2ea1492a97f Mon Sep 17 00:00:00 2001 From: Benjamin Renard <benjamin.renard@akka.eu> Date: Tue, 1 Sep 2015 15:22:39 +0200 Subject: [PATCH] Add constants definitions --- src/InputOutput/IHMImpl/Params/PlotImpl/IHMInputOutputParamsPlotClass.php | 54 ++++++++++++++++++++++++++++++++++++++++++------------ src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputPlotAxisElementNodeClass.php | 7 ++++++- src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputPlotConstantNodeClass.php | 29 +++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 13 deletions(-) create mode 100644 src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputPlotConstantNodeClass.php diff --git a/src/InputOutput/IHMImpl/Params/PlotImpl/IHMInputOutputParamsPlotClass.php b/src/InputOutput/IHMImpl/Params/PlotImpl/IHMInputOutputParamsPlotClass.php index 0a70809..cd1c462 100644 --- a/src/InputOutput/IHMImpl/Params/PlotImpl/IHMInputOutputParamsPlotClass.php +++ b/src/InputOutput/IHMImpl/Params/PlotImpl/IHMInputOutputParamsPlotClass.php @@ -303,7 +303,7 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass //Axes foreach ($panelData->{'axes'} as $axisData) - $this->unmarshallAxis($axisData, $plotNode); + $this->unmarshallAxis($axisData, $panelData->{'constants'}, $plotNode); //Params $this->unmarshallParams($panelData->{'params'}, $paramsNode, $plotNode, $panelNode, $statusPlotNode, $tickPlotNode); @@ -368,28 +368,34 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass return $plotNode; } - protected function unmarshallAxis($axisData, $plotNode) + protected function unmarshallAxis($axisData, $constantsData, $plotNode) { //axis type + $constantAxisId = ''; switch ($axisData->{'axis-type'}) { case 'time' : $axisNode = $plotNode->getTimeAxis(); $axisNode->setFormat($axisData->{'axis-time-format'}); + $constantAxisId = 'x'; break; case 'epoch' : $axisNode = $plotNode->getEpochAxis(); $axisNode->setNormalized($axisData->{'axis-epoch-normalized'} ? "true" : "false"); + $constantAxisId = 'x'; break; case 'x' : $axisNode = $plotNode->getXAxis(); + $constantAxisId = 'x'; break; case 'y-left' : $axisNode = $plotNode->addYAxis('y-left'); + $constantAxisId = 'y-left'; break; case 'y-right' : $axisNode = $plotNode->addYAxis('y-right'); $axisNode->setPosition(RequestOutputPlotAxisElementPosition::RIGHT); + $constantAxisId = 'y-right'; break; case 'color' : $axisNode = $plotNode->getZAxis(); @@ -452,6 +458,14 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass //Show tick marks $axisNode->setShowTickMarks($axisData->{'axis-tick-showmarks'} ? "true" : "false"); + + //Add constants + if ($constantAxisId != '') + { + foreach ($constantsData as $constantData) + if ($constantData->{'constant-axis-id'} == $constantAxisId) + $this->unmarshallConstant($constantData,$axisNode); + } } protected function unmarshallParams($paramsData, $requestParamsNode, $plotNode, $panelNode, $statusPlotNode, $tickPlotNode) @@ -597,7 +611,7 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass } } //Line - $this->unmarshallLine($paramDrawingData, 'serie', $serieNode->getLine()); + $this->unmarshallLine($paramDrawingData, 'serie', $serieNode->getLine(), $paramDrawingData->{"serie-lines-activated"} ? RequestOutputPlotLineTypeEnum::LINE : RequestOutputPlotLineTypeEnum::NO); //Symbol if (!$paramDrawingData->{"serie-symbols-activated"}) $serieNode->getSymbol()->setType(RequestOutputPlotSymbolTypeEnum::NO); @@ -649,7 +663,7 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass $iserieNode->setTableOnXAxis($paramDrawingData->{'iserie-tableonx'} ? "true" : "false"); //Line - $this->unmarshallLine($paramDrawingData, 'iserie', $iserieNode->getLine()); + $this->unmarshallLine($paramDrawingData, 'iserie', $iserieNode->getLine(), $paramDrawingData->{"iserie-lines-activated"} ? RequestOutputPlotLineTypeEnum::LINE : RequestOutputPlotLineTypeEnum::NO); //Symbol if (!$paramDrawingData->{"iserie-symbols-activated"}) @@ -782,6 +796,27 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass $this->unmarshallFont($textLegendData, 'legend-text-font', $legendNode->getFont()); } + protected function unmarshallConstant($constantData,$axisNode) + { + $constantNode = $axisNode->addConstant(); + + //Constant value + switch ($axisNode->getName()) + { + case REQUESTOUTPUTPLOTTIMEAXIS_NAME : + date_default_timezone_set('UTC'); + $timeStamp = strtotime($constantData->{'constant-time-value'}); + $time = CommonClass::timeStampToDDTime($timeStamp); + $constantNode->setConstantValue($time); + break; + default : + $constantNode->setConstantValue($constantData->{'constant-float-value'}); + } + + //Curve options + $this->unmarshallCurve($constantData, "constant-line", $constantNode); + } + protected function unmarshallTitle($inputData, $keyPrefix, $titleNode) { if ($inputData->{$keyPrefix.'-text'} != '') @@ -888,15 +923,10 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass $curveNode->setColor($this->hexColor2KernelColor($inputData->{$keyPrefix.'-color'})); } - protected function unmarshallLine($inputData, $keyPrefix, $lineNode) + protected function unmarshallLine($inputData, $keyPrefix, $lineNode, $lineType) { - if (!$inputData->{$keyPrefix."-lines-activated"}) - $lineNode->setType(RequestOutputPlotLineTypeEnum::NO); - else - { - $lineNode->setType(RequestOutputPlotLineTypeEnum::LINE); - $this->unmarshallCurve($inputData, $keyPrefix."-lines", $lineNode); - } + $lineNode->setType($lineType); + $this->unmarshallCurve($inputData, $keyPrefix."-lines", $lineNode); } protected function unmarshallSymbol($inputData, $keyPrefix, $symbolNode) diff --git a/src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputPlotAxisElementNodeClass.php b/src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputPlotAxisElementNodeClass.php index 858d555..b4ba789 100644 --- a/src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputPlotAxisElementNodeClass.php +++ b/src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputPlotAxisElementNodeClass.php @@ -188,7 +188,12 @@ class RequestOutputPlotAxisElementNodeClass extends NodeClass return $this->getFirstChildByName(REQUESTOUTPUTPLOTAXISELEMENTLEGEND_NAME); } - /* ToDo constantLine */ + public function addConstant() + { + $node = new RequestOutputPlotConstantNodeClass(); + $this->addChild($node); + return $node; + } /* ToDo origin */ diff --git a/src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputPlotConstantNodeClass.php b/src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputPlotConstantNodeClass.php new file mode 100644 index 0000000..90cd35e --- /dev/null +++ b/src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputPlotConstantNodeClass.php @@ -0,0 +1,29 @@ +<?php + +define ("REQUESTOUTPUTPLOTCONSTANT_NAME", "constantLine"); +define ("REQUESTOUTPUTPLOTCONSTANT_VALUE", "value"); + +/** + * @class RequestOutputPlotConstantNodeClass + * @brief Definition of a constant element for a plot + * @details + */ +class RequestOutputPlotConstantNodeClass extends RequestOutputPlotCurveNodeClass +{ + public function __construct() + { + parent::__construct(REQUESTOUTPUTPLOTCONSTANT_NAME); + } + + public function setConstantValue($value) + { + $this->setAttribute(REQUESTOUTPUTPLOTCONSTANT_VALUE, $value); + } + + public function getConstantValue() + { + return $this->getAttribute(REQUESTOUTPUTPLOTCONSTANT_VALUE); + } +} + +?> \ No newline at end of file -- libgit2 0.21.2