Commit 70646e70a1c37997b12fe5256e58f5cbc04ffa72

Authored by Benjamin Renard
1 parent c958695a

Add text legend definition

src/InputOutput/IHMImpl/Params/PlotImpl/IHMInputOutputParamsPlotClass.php
@@ -357,10 +357,14 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -357,10 +357,14 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
357 throw new Exception('Plot type not implemented.'); 357 throw new Exception('Plot type not implemented.');
358 } 358 }
359 359
360 - //Params Legends 360 + //Params Legend
361 if (isset($panelData->{'panel-series-legend'}) && $panelData->{'panel-series-legend'}->{'legend-series-activated'}) 361 if (isset($panelData->{'panel-series-legend'}) && $panelData->{'panel-series-legend'}->{'legend-series-activated'})
362 $this->unmarshallParamsLegend($panelData->{'panel-series-legend'}, $plotNode->getLegends()->getParamsLegend()); 362 $this->unmarshallParamsLegend($panelData->{'panel-series-legend'}, $plotNode->getLegends()->getParamsLegend());
363 363
  364 + //Text Legends
  365 + foreach ($panelData->{'text-legends'} as $textLegendData)
  366 + $this->unmarshallTextLegend($textLegendData, $plotNode->getLegends());
  367 +
364 return $plotNode; 368 return $plotNode;
365 } 369 }
366 370
@@ -746,6 +750,38 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -746,6 +750,38 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
746 $this->unmarshallFont($paramsLegendData, 'legend-series-font', $paramsLegendNode->getFont()); 750 $this->unmarshallFont($paramsLegendData, 'legend-series-font', $paramsLegendNode->getFont());
747 } 751 }
748 752
  753 + protected function unmarshallTextLegend($textLegendData, $legendsNode)
  754 + {
  755 + $legendNode = $legendsNode->addTextLegend();
  756 +
  757 + //Legend text
  758 + $legendNode->setText($textLegendData->{'legend-text-value'});
  759 +
  760 + //Legend position
  761 + switch ($textLegendData->{'legend-text-position'})
  762 + {
  763 + case 'top' :
  764 + $legendNode->setPosition(RequestOutputPlotTextLegendPositionEnum::TOP);
  765 + break;
  766 + case 'bottom' :
  767 + $legendNode->setPosition(RequestOutputPlotTextLegendPositionEnum::BOTTOM);
  768 + break;
  769 + case 'left' :
  770 + $legendNode->setPosition(RequestOutputPlotTextLegendPositionEnum::LEFT);
  771 + break;
  772 + case 'right' :
  773 + default :
  774 + $legendNode->setPosition(RequestOutputPlotTextLegendPositionEnum::RIGHT);
  775 + }
  776 +
  777 + //Legend text color
  778 + $legendNode->setColor($this->hexColor2KernelColor($textLegendData->{'legend-text-color'}));
  779 +
  780 + //Font
  781 + if ($textLegendData->{'legend-text-font-activated'})
  782 + $this->unmarshallFont($textLegendData, 'legend-text-font', $legendNode->getFont());
  783 + }
  784 +
749 protected function unmarshallTitle($inputData, $keyPrefix, $titleNode) 785 protected function unmarshallTitle($inputData, $keyPrefix, $titleNode)
750 { 786 {
751 if ($inputData->{$keyPrefix.'-text'} != '') 787 if ($inputData->{$keyPrefix.'-text'} != '')
src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputPlotLegendsNodeClass.php
@@ -26,6 +26,13 @@ class RequestOutputPlotLegendsNodeClass extends NodeClass @@ -26,6 +26,13 @@ class RequestOutputPlotLegendsNodeClass extends NodeClass
26 26
27 return $node; 27 return $node;
28 } 28 }
  29 +
  30 + public function addTextLegend()
  31 + {
  32 + $node = new RequestOutputPlotTextLegendNodeClass();
  33 + $this->addChild($node);
  34 + return $node;
  35 + }
29 } 36 }
30 37
31 ?> 38 ?>
32 \ No newline at end of file 39 \ No newline at end of file
src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputPlotTextLegendNodeClass.php 0 → 100644
@@ -0,0 +1,72 @@ @@ -0,0 +1,72 @@
  1 +<?php
  2 +
  3 +define ("REQUESTOUTPUTPLOTTEXTLEGEND_NAME", "textLegend");
  4 +define ("REQUESTOUTPUTPLOTTEXTLEGEND_TEXT", "text");
  5 +define ("REQUESTOUTPUTPLOTTEXTLEGEND_POSITION", "position");
  6 +define ("REQUESTOUTPUTPLOTTEXTLEGEND_COLOR", "color");
  7 +
  8 +abstract class RequestOutputPlotTextLegendPositionEnum
  9 +{
  10 + const LEFT = "left";
  11 + const RIGHT = "right";
  12 + const BOTTOM = "bottom";
  13 + const TOP = "top";
  14 +}
  15 +
  16 +/**
  17 + * @class RequestOutputPlotTextLegendNodeClass
  18 + * @brief Definition of a "text legend" element for a plot
  19 + * @details
  20 + */
  21 +class RequestOutputPlotTextLegendNodeClass extends NodeClass
  22 +{
  23 + public function __construct()
  24 + {
  25 + parent::__construct(REQUESTOUTPUTPLOTTEXTLEGEND_NAME);
  26 + }
  27 +
  28 + public function setText($text)
  29 + {
  30 + $this->setAttribute(REQUESTOUTPUTPLOTTEXTLEGEND_TEXT, $text);
  31 + }
  32 +
  33 + public function getText()
  34 + {
  35 + return $this->getAttribute(REQUESTOUTPUTPLOTTEXTLEGEND_TEXT);
  36 + }
  37 +
  38 + public function setPosition($position)
  39 + {
  40 + $this->setAttribute(REQUESTOUTPUTPLOTTEXTLEGEND_POSITION, $position);
  41 + }
  42 +
  43 + public function getPosition()
  44 + {
  45 + return $this->getAttribute(REQUESTOUTPUTPLOTTEXTLEGEND_POSITION);
  46 + }
  47 +
  48 + public function setColor($color)
  49 + {
  50 + $this->setAttribute(REQUESTOUTPUTPLOTTEXTLEGEND_COLOR, $color);
  51 + }
  52 +
  53 + public function getColor()
  54 + {
  55 + return $this->getAttribute(REQUESTOUTPUTPLOTTEXTLEGEND_COLOR);
  56 + }
  57 +
  58 + public function getFont()
  59 + {
  60 + $node = $this->getFirstChildByName(REQUESTOUTPUTPLOTPARAMSLEGEND_FONT);
  61 +
  62 + if (!isset($node))
  63 + {
  64 + $node = new RequestOutputPlotFontNodeClass();
  65 + $this->addChild($node);
  66 + }
  67 +
  68 + return $node;
  69 + }
  70 +}
  71 +
  72 +?>
0 \ No newline at end of file 73 \ No newline at end of file