Commit 7d84634e49761091d7cdd099c471635254dbdba0

Authored by Benjamin Renard
1 parent 86756f46

Fix plot request with new plot object

src/InputOutput/IHMImpl/Params/PlotImpl/IHMInputOutputParamsPlotClass.php
@@ -15,8 +15,6 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -15,8 +15,6 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
15 15
16 private $isInstantPlot = false; 16 private $isInstantPlot = false;
17 17
18 - private $interactiveRequestRealIndexes = array();  
19 - private $interactiveMultiPlotState = array();  
20 private $interactiveTimeSelectionState = array(); 18 private $interactiveTimeSelectionState = array();
21 private $interactiveCrtTTFileIndex = -1; 19 private $interactiveCrtTTFileIndex = -1;
22 private $interactivePreview = false; 20 private $interactivePreview = false;
@@ -26,8 +24,6 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -26,8 +24,6 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
26 */ 24 */
27 protected function unmarshallRequest($input) 25 protected function unmarshallRequest($input)
28 { 26 {
29 - $this->interactiveRequestRealIndexes = array();  
30 -  
31 $forceTimeZoomReset = false; 27 $forceTimeZoomReset = false;
32 28
33 if (isset($input->{'action'})) 29 if (isset($input->{'action'}))
@@ -43,251 +39,189 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -43,251 +39,189 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
43 } 39 }
44 40
45 //Request 41 //Request
46 - $requestIndexInParamData = 0;  
47 - $tabRequestIndex = 0;  
48 $this->isInteractiveRequest = ($input->{'file-output'} == 'INTERACTIVE'); 42 $this->isInteractiveRequest = ($input->{'file-output'} == 'INTERACTIVE');
49 $this->isFromWS = ($input->{'file-output'} == 'WS'); 43 $this->isFromWS = ($input->{'file-output'} == 'WS');
50 $postProcessCmd = ""; 44 $postProcessCmd = "";
51 - foreach ($input->tabs as $tab)  
52 - {  
53 - if (isset($activeTab))  
54 - {  
55 - if ($this->isInteractiveRequest)  
56 - {  
57 - if ($activeTab->{'multi-plot-linked'} && !$tab->{'multi-plot-linked'})  
58 - {  
59 - ++$tabRequestIndex;  
60 - //Tab is not linked to the Multi Plot Mode  
61 - continue;  
62 - }  
63 - else if (!$activeTab->{'multi-plot-linked'} && ($tab->{'id'} != $activeTab->{'id'}))  
64 - {  
65 - ++$tabRequestIndex;  
66 - //Plot only current active tab  
67 - continue;  
68 - }  
69 - else if (isset($input->{'force-single-replot'}) && $input->{'force-single-replot'} && ($tab->{'id'} != $activeTab->{'id'}))  
70 - {  
71 - ++$tabRequestIndex;  
72 - //Plot only current active tab when 'force-single-replot' is active  
73 - continue;  
74 - }  
75 - //Reset zoom list if needed  
76 - if ($forceTimeZoomReset)  
77 - $this->resetZoomListForTab($tab->{'id'}, $forceTimeZoomReset);  
78 - }  
79 - else  
80 - {  
81 - if ($tab->{'id'} != $activeTab->{'id'})  
82 - {  
83 - ++$tabRequestIndex;  
84 - //In no interactive request, plot only active tab  
85 - continue;  
86 - }  
87 - //Reset zoom list if needed  
88 - if ($forceTimeZoomReset)  
89 - $this->resetZoomListForTab($tab->{'id'}, $forceTimeZoomReset);  
90 - }  
91 - } 45 +
  46 + if ($forceTimeZoomReset)
  47 + $this->resetZoomListForTab($input->{'id'}, $forceTimeZoomReset);
92 48
93 - $requestNode = $this->paramsData->addRequestNode();  
94 - $requestNode->setRealIndex($tabRequestIndex);  
95 - $outputsNode = $requestNode->getOutputsNode();  
96 - $paramsNode = $requestNode->getParamsNode(); 49 + $requestNode = $this->paramsData->addRequestNode();
  50 + $outputsNode = $requestNode->getOutputsNode();
  51 + $paramsNode = $requestNode->getParamsNode();
97 52
98 - //unmarshall time definition  
99 - if ($tab->{'multi-plot-linked'})  
100 - {  
101 - $isIntervalRequest = ($input->timesrc == 'Interval');  
102 - $ttFileIndex = -1;  
103 - $ttIntIndex = -1;  
104 - if ($this->isInteractiveRequest && !$isIntervalRequest && !$tab->{'page-superpose-mode'})  
105 - {  
106 - $ttFileIndex = !isset($input->{'ttFileIndex'}) ? 0 : $input->{'ttFileIndex'};  
107 - $ttIntIndex = !isset($input->{'intIndex'}) ? 0 : $input->{'intIndex'};  
108 - }  
109 - $this->unmarshallTimeDefinition($input, $requestIndexInParamData, $ttFileIndex, $ttIntIndex);  
110 - }  
111 - else  
112 - {  
113 - $isIntervalRequest = ($tab->timesrc == 'Interval');  
114 - $ttFileIndex = -1;  
115 - $ttIntIndex = -1;  
116 - if ($this->isInteractiveRequest && !$isIntervalRequest && !$tab->{'page-superpose-mode'})  
117 - {  
118 - $ttFileIndex = !isset($activeTab->{'ttFileIndex'}) ? 0 : $activeTab->{'ttFileIndex'};  
119 - $ttIntIndex = !isset($activeTab->{'intIndex'}) ? 0 : $activeTab->{'intIndex'};  
120 - }  
121 - $this->unmarshallTimeDefinition($tab, $requestIndexInParamData, $ttFileIndex, $ttIntIndex);  
122 - } 53 + //unmarshall time definition
  54 + $isIntervalRequest = ($input->timesrc == 'Interval');
  55 + $ttFileIndex = -1;
  56 + $ttIntIndex = -1;
  57 + if ($this->isInteractiveRequest && !$isIntervalRequest && !$input->{'page-superpose-mode'})
  58 + {
  59 + $ttFileIndex = !isset($input->{'ttFileIndex'}) ? 0 : $input->{'ttFileIndex'};
  60 + $ttIntIndex = !isset($input->{'intIndex'}) ? 0 : $input->{'intIndex'};
  61 + }
  62 + $this->unmarshallTimeDefinition($input, 0, $ttFileIndex, $ttIntIndex);
123 63
124 - $this->interactiveCrtTTFileIndex = $ttFileIndex; 64 + $this->interactiveCrtTTFileIndex = $ttFileIndex;
125 65
126 - $plotOutputNode = $outputsNode->addNewOutput(RequestOutputTypeEnum::PLOT); 66 + $plotOutputNode = $outputsNode->addNewOutput(RequestOutputTypeEnum::PLOT);
127 67
128 - $plotOutputNode->setWriteContextFile($this->isInteractiveRequest ? "true" : "false"); 68 + $plotOutputNode->setWriteContextFile($this->isInteractiveRequest ? "true" : "false");
129 69
130 - $compression = "";  
131 - if (!$this->isInteractiveRequest && !$this->isFromWS) 70 + $compression = "";
  71 + if (!$this->isInteractiveRequest && !$this->isFromWS)
  72 + {
  73 + switch ($input->{'file-output'})
132 { 74 {
133 - switch ($input->{'file-output'})  
134 - {  
135 - case 'TGZ' :  
136 - $plotOutputNode->addPostProcessing(RequestOutputPostProcessingEnumClass::TAR);  
137 - $plotOutputNode->addPostProcessing(RequestOutputPostProcessingEnumClass::GZIP);  
138 - $compression = ".tar.gz";  
139 - break;  
140 - case 'ZIP' :  
141 - $plotOutputNode->addPostProcessing(RequestOutputPostProcessingEnumClass::ZIP);  
142 - $compression = ".zip";  
143 - break;  
144 - default:  
145 - throw new Exception('Compression not implemented.');  
146 - } 75 + case 'TGZ' :
  76 + $plotOutputNode->addPostProcessing(RequestOutputPostProcessingEnumClass::TAR);
  77 + $plotOutputNode->addPostProcessing(RequestOutputPostProcessingEnumClass::GZIP);
  78 + $compression = ".tar.gz";
  79 + break;
  80 + case 'ZIP' :
  81 + $plotOutputNode->addPostProcessing(RequestOutputPostProcessingEnumClass::ZIP);
  82 + $compression = ".zip";
  83 + break;
  84 + default:
  85 + throw new Exception('Compression not implemented.');
147 } 86 }
  87 + }
148 88
149 - if ($input->{'one-file-per-interval'})  
150 - $plotOutputNode->setStructure(RequestOutputPlotStructureEnum::ONE_FILE_PER_INTERVAL);  
151 - else  
152 - $plotOutputNode->setStructure(RequestOutputPlotStructureEnum::ONE_FILE); 89 + if ($input->{'one-file-per-interval'})
  90 + $plotOutputNode->setStructure(RequestOutputPlotStructureEnum::ONE_FILE_PER_INTERVAL);
  91 + else
  92 + $plotOutputNode->setStructure(RequestOutputPlotStructureEnum::ONE_FILE);
153 93
154 - //prefix  
155 - $filePrefix = "plot_";  
156 - if ($input->{'file-prefix'} && ($input->{'file-prefix'} != ""))  
157 - $filePrefix = $input->{'file-prefix'};  
158 - $filePrefix .= $tab->{'id'}; 94 + //prefix
  95 + $filePrefix = "plot_";
  96 + if ($input->{'file-prefix'} && ($input->{'file-prefix'} != ""))
  97 + $filePrefix = $input->{'file-prefix'};
  98 + $filePrefix .= $input->{'id'};
159 99
160 - $plotOutputNode->setFilePrefix($filePrefix); 100 + $plotOutputNode->setFilePrefix($filePrefix);
161 101
162 - //page  
163 - $pageNode = $plotOutputNode->getPage(); 102 + //page
  103 + $pageNode = $plotOutputNode->getPage();
164 104
165 - $fileFormat = RequestOutputPlotPageFormatEnum::PNG;  
166 - $extension = ".png";  
167 - switch ($input->{'file-format'})  
168 - {  
169 - case 'PNG' :  
170 - $fileFormat = RequestOutputPlotPageFormatEnum::PNG;  
171 - $extension = ".png";  
172 - break;  
173 - case 'PDF' :  
174 - $fileFormat = RequestOutputPlotPageFormatEnum::PDF;  
175 - $extension = ".pdf";  
176 - break;  
177 - case 'PS' :  
178 - $fileFormat = RequestOutputPlotPageFormatEnum::PS;  
179 - $extension = ".ps";  
180 - break;  
181 - case 'SVG' :  
182 - $fileFormat = RequestOutputPlotPageFormatEnum::SVG;  
183 - $extension = ".svg";  
184 - break;  
185 - default:  
186 - throw new Exception('File format not implemented.');  
187 - } 105 + $fileFormat = RequestOutputPlotPageFormatEnum::PNG;
  106 + $extension = ".png";
  107 + switch ($input->{'file-format'})
  108 + {
  109 + case 'PNG' :
  110 + $fileFormat = RequestOutputPlotPageFormatEnum::PNG;
  111 + $extension = ".png";
  112 + break;
  113 + case 'PDF' :
  114 + $fileFormat = RequestOutputPlotPageFormatEnum::PDF;
  115 + $extension = ".pdf";
  116 + break;
  117 + case 'PS' :
  118 + $fileFormat = RequestOutputPlotPageFormatEnum::PS;
  119 + $extension = ".ps";
  120 + break;
  121 + case 'SVG' :
  122 + $fileFormat = RequestOutputPlotPageFormatEnum::SVG;
  123 + $extension = ".svg";
  124 + break;
  125 + default:
  126 + throw new Exception('File format not implemented.');
  127 + }
188 128
189 - $pageNode->setFormat($fileFormat); 129 + $pageNode->setFormat($fileFormat);
190 130
191 - $this->unmarshallTitle($tab, 'page-title', $pageNode->getTitle()); 131 + $this->unmarshallTitle($input, 'page-title', $pageNode->getTitle());
192 132
193 - $isPortrait = false;  
194 - switch ($tab->{'page-orientation'})  
195 - {  
196 - case 'landscape' :  
197 - $pageNode->setOrientation(RequestOutputPlotPageOrientationEnum::LANDSCAPE);  
198 - break;  
199 - case 'portrait' :  
200 - $pageNode->setOrientation(RequestOutputPlotPageOrientationEnum::PORTRAIT);  
201 - $isPortrait = true;  
202 - break;  
203 - } 133 + $isPortrait = false;
  134 + switch ($input->{'page-orientation'})
  135 + {
  136 + case 'landscape' :
  137 + $pageNode->setOrientation(RequestOutputPlotPageOrientationEnum::LANDSCAPE);
  138 + break;
  139 + case 'portrait' :
  140 + $pageNode->setOrientation(RequestOutputPlotPageOrientationEnum::PORTRAIT);
  141 + $isPortrait = true;
  142 + break;
  143 + }
204 144
205 - switch ($tab->{'page-dimension'})  
206 - {  
207 - case 'ISO A4' :  
208 - $pageNode->setDimension(RequestOutputPlotPageDimensionEnum::ISO_A4);  
209 - break;  
210 - case 'US letter' :  
211 - $pageNode->setDimension(RequestOutputPlotPageDimensionEnum::US_LETTER);  
212 - break;  
213 - default:  
214 - throw new Exception('Page dimension not implemented.');  
215 - } 145 + switch ($input->{'page-dimension'})
  146 + {
  147 + case 'ISO A4' :
  148 + $pageNode->setDimension(RequestOutputPlotPageDimensionEnum::ISO_A4);
  149 + break;
  150 + case 'US letter' :
  151 + $pageNode->setDimension(RequestOutputPlotPageDimensionEnum::US_LETTER);
  152 + break;
  153 + default:
  154 + throw new Exception('Page dimension not implemented.');
  155 + }
216 156
217 - switch ($tab->{'page-mode'})  
218 - { 157 + switch ($input->{'page-mode'})
  158 + {
219 159
220 - case 'grayscale' :  
221 - $pageNode->setMode(RequestOutputPlotPageModeEnum::GRAYSCALE);  
222 - break;  
223 - case 'color' :  
224 - default:  
225 - $pageNode->setMode(RequestOutputPlotPageModeEnum::COLOR);  
226 - break;  
227 - }  
228 -  
229 - if ($tab->{'page-margins-activated'})  
230 - {  
231 - $pageNode->getMargins()->setHorizontal($tab->{'page-margin-x'});  
232 - $pageNode->getMargins()->setVertical($tab->{'page-margin-y'});  
233 - } 160 + case 'grayscale' :
  161 + $pageNode->setMode(RequestOutputPlotPageModeEnum::GRAYSCALE);
  162 + break;
  163 + case 'color' :
  164 + default:
  165 + $pageNode->setMode(RequestOutputPlotPageModeEnum::COLOR);
  166 + break;
  167 + }
234 168
235 - if ($tab->{'page-font-activated'})  
236 - $this->unmarshallFont($tab, 'page-font', $pageNode->getFont()); 169 + if ($input->{'page-margins-activated'})
  170 + {
  171 + $pageNode->getMargins()->setHorizontal($input->{'page-margin-x'});
  172 + $pageNode->getMargins()->setVertical($input->{'page-margin-y'});
  173 + }
237 174
238 - //Superpose mode  
239 - $pageNode->setSuperposeMode($tab->{'page-superpose-mode'} ? "true": "false"); 175 + if ($input->{'page-font-activated'})
  176 + $this->unmarshallFont($input, 'page-font', $pageNode->getFont());
240 177
241 - //Layout  
242 - $this->unmarshallLayout($tab, $pageNode); 178 + //Superpose mode
  179 + $pageNode->setSuperposeMode($input->{'page-superpose-mode'} ? "true": "false");
243 180
244 - foreach ($tab->{'panels'} as $panelData)  
245 - $this->unmarshallPanel($panelData, $pageNode, $paramsNode); 181 + //Layout
  182 + $this->unmarshallLayout($input, $pageNode);
246 183
247 - if ($this->isInteractiveRequest || $this->isFromWS)  
248 - {  
249 - $resultFile = $filePrefix."_*".$extension;  
250 - $waitingResultFile = $filePrefix.$extension;  
251 - }  
252 - else  
253 - {  
254 - $resultFile = $filePrefix."_*".$compression;  
255 - $waitingResultFile = $filePrefix.$compression;  
256 - } 184 + foreach ($input->{'panels'} as $panelData)
  185 + $this->unmarshallPanel($panelData, $pageNode, $paramsNode);
257 186
258 - if ($this->isInteractiveRequest)  
259 - {  
260 - $this->interactiveRequestRealIndexes[PLOT_RESULT_FILE_KEY."_".$tab->{'id'}] = $tabRequestIndex;  
261 - $this->interactiveMultiPlotState[PLOT_RESULT_FILE_KEY."_".$tab->{'id'}] = $tab->{'multi-plot-linked'};  
262 - $this->interactiveTimeSelectionState[PLOT_RESULT_FILE_KEY."_".$tab->{'id'}] = $isIntervalRequest;  
263 - $this->interactivePreview = isset($input->{'interactive-preview'}) && ($input->{'interactive-preview'});  
264 - $this->paramsData->addWaitingResult(PLOT_RESULT_FILE_KEY."_".$tab->{'id'}, $waitingResultFile);  
265 - }  
266 - else  
267 - $this->paramsData->addWaitingResult(PLOT_RESULT_FILE_KEY, $waitingResultFile); 187 + if ($this->isInteractiveRequest || $this->isFromWS)
  188 + {
  189 + $resultFile = $filePrefix."_*".$extension;
  190 + $waitingResultFile = $filePrefix.$extension;
  191 + }
  192 + else
  193 + {
  194 + $resultFile = $filePrefix."_*".$compression;
  195 + $waitingResultFile = $filePrefix.$compression;
  196 + }
268 197
269 - //Remove old result files  
270 - foreach (glob($this->paramsData->getWorkingPath().$resultFile) as $oldFile) {  
271 - unlink($oldFile);  
272 - } 198 + if ($this->isInteractiveRequest)
  199 + {
  200 + $this->interactiveTimeSelectionState[PLOT_RESULT_FILE_KEY."_".$input->{'id'}] = $isIntervalRequest;
  201 + $this->interactivePreview = isset($input->{'interactive-preview'}) && ($input->{'interactive-preview'});
  202 + $this->paramsData->addWaitingResult(PLOT_RESULT_FILE_KEY."_".$input->{'id'}, $waitingResultFile);
  203 + }
  204 + else
  205 + $this->paramsData->addWaitingResult(PLOT_RESULT_FILE_KEY, $waitingResultFile);
273 206
274 - //Post process command to apply to the result file  
275 - if ($postProcessCmd != "")  
276 - $postProcessCmd .= " | ";  
277 - $postProcessCmd .= "mv ".$resultFile." ".$waitingResultFile; 207 + //Remove old result files
  208 + foreach (glob($this->paramsData->getWorkingPath().$resultFile) as $oldFile) {
  209 + unlink($oldFile);
  210 + }
278 211
279 - if (($this->isInteractiveRequest) && $isPortrait)  
280 - $postProcessCmd .= " | convert ".$waitingResultFile." -rotate -90 ".$waitingResultFile;  
281 - else if ($this->isFromWS)  
282 - {  
283 - if ($isPortrait)  
284 - $postProcessCmd .= " | convert ".$waitingResultFile." -rotate -90 ".$input->{"ws-result-file"};  
285 - else  
286 - $postProcessCmd .= " | mv ".$waitingResultFile." ".$input->{"ws-result-file"};  
287 - } 212 + //Post process command to apply to the result file
  213 + if ($postProcessCmd != "")
  214 + $postProcessCmd .= " | ";
  215 + $postProcessCmd .= "mv ".$resultFile." ".$waitingResultFile;
288 216
289 - ++$tabRequestIndex;  
290 - ++$requestIndexInParamData; 217 + if (($this->isInteractiveRequest) && $isPortrait)
  218 + $postProcessCmd .= " | convert ".$waitingResultFile." -rotate -90 ".$waitingResultFile;
  219 + else if ($this->isFromWS)
  220 + {
  221 + if ($isPortrait)
  222 + $postProcessCmd .= " | convert ".$waitingResultFile." -rotate -90 ".$input->{"ws-result-file"};
  223 + else
  224 + $postProcessCmd .= " | mv ".$waitingResultFile." ".$input->{"ws-result-file"};
291 } 225 }
292 226
293 $this->paramsData->setBatchEnable(!(($fileFormat == RequestOutputPlotPageFormatEnum::PNG) && $this->isInteractiveRequest)); 227 $this->paramsData->setBatchEnable(!(($fileFormat == RequestOutputPlotPageFormatEnum::PNG) && $this->isInteractiveRequest));
@@ -296,39 +230,39 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -296,39 +230,39 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
296 return $this->paramsData; 230 return $this->paramsData;
297 } 231 }
298 232
299 - protected function unmarshallLayout($tab, $pageNode) 233 + protected function unmarshallLayout($request, $pageNode)
300 { 234 {
301 - switch ($tab->{'page-layout-type'}) 235 + switch ($request->{'page-layout-type'})
302 { 236 {
303 case 'vertical' : 237 case 'vertical' :
304 $pageNode->getLayout()->setType(RequestOutputPlotLayoutTypeEnum::VERTICAL); 238 $pageNode->getLayout()->setType(RequestOutputPlotLayoutTypeEnum::VERTICAL);
305 - $pageNode->getLayout()->setPanelHeight($tab->{'page-layout-object'}->{'layout-panel-height'});  
306 - $pageNode->getLayout()->setPanelSpacing($tab->{'page-layout-object'}->{'layout-panel-spacing'});  
307 - $pageNode->getLayout()->setExpand($tab->{'page-layout-object'}->{'layout-expand'} ? "true" : "false");  
308 - $pageNode->getLayout()->setOnlyLowerTimeAxesLegend($tab->{'page-layout-object'}->{'layout-timeaxes-legend-lowerone'} ? "true" : "false");  
309 - //if ($tab->{'page-layout-object'}->{'layout-timeplot-width'} > 0)  
310 - // $pageNode->setDefaultTimePlotWidth($tab->{'page-layout-object'}->{'layout-timeplot-width'});  
311 - if ($tab->{'page-layout-object'}->{'layout-timeplot-height'} > 0)  
312 - $pageNode->setDefaultTimePlotHeight($tab->{'page-layout-object'}->{'layout-timeplot-height'});  
313 - if ($tab->{'page-layout-object'}->{'layout-xyplot-width'} > 0)  
314 - $pageNode->setDefaultXYPlotWidth($tab->{'page-layout-object'}->{'layout-xyplot-width'});  
315 - if ($tab->{'page-layout-object'}->{'layout-xyplot-height'} > 0)  
316 - $pageNode->setDefaultXYPlotHeight($tab->{'page-layout-object'}->{'layout-xyplot-height'}); 239 + $pageNode->getLayout()->setPanelHeight($request->{'page-layout-object'}->{'layout-panel-height'});
  240 + $pageNode->getLayout()->setPanelSpacing($request->{'page-layout-object'}->{'layout-panel-spacing'});
  241 + $pageNode->getLayout()->setExpand($request->{'page-layout-object'}->{'layout-expand'} ? "true" : "false");
  242 + $pageNode->getLayout()->setOnlyLowerTimeAxesLegend($request->{'page-layout-object'}->{'layout-timeaxes-legend-lowerone'} ? "true" : "false");
  243 + //if ($request->{'page-layout-object'}->{'layout-timeplot-width'} > 0)
  244 + // $pageNode->setDefaultTimePlotWidth($request->{'page-layout-object'}->{'layout-timeplot-width'});
  245 + if ($request->{'page-layout-object'}->{'layout-timeplot-height'} > 0)
  246 + $pageNode->setDefaultTimePlotHeight($request->{'page-layout-object'}->{'layout-timeplot-height'});
  247 + if ($request->{'page-layout-object'}->{'layout-xyplot-width'} > 0)
  248 + $pageNode->setDefaultXYPlotWidth($request->{'page-layout-object'}->{'layout-xyplot-width'});
  249 + if ($request->{'page-layout-object'}->{'layout-xyplot-height'} > 0)
  250 + $pageNode->setDefaultXYPlotHeight($request->{'page-layout-object'}->{'layout-xyplot-height'});
317 break; 251 break;
318 case 'auto' : 252 case 'auto' :
319 $pageNode->getLayout()->setType(RequestOutputPlotLayoutTypeEnum::AUTO); 253 $pageNode->getLayout()->setType(RequestOutputPlotLayoutTypeEnum::AUTO);
320 - $pageNode->getLayout()->setPanelHeight($tab->{'page-layout-object'}->{'layout-panel-height'});  
321 - $pageNode->getLayout()->setPanelSpacing($tab->{'page-layout-object'}->{'layout-panel-spacing'});  
322 - $pageNode->getLayout()->setExpand($tab->{'page-layout-object'}->{'layout-expand'} ? "true" : "false");  
323 - $pageNode->getLayout()->setOnlyLowerTimeAxesLegend($tab->{'page-layout-object'}->{'layout-timeaxes-legend-lowerone'} ? "true" : "false"); 254 + $pageNode->getLayout()->setPanelHeight($request->{'page-layout-object'}->{'layout-panel-height'});
  255 + $pageNode->getLayout()->setPanelSpacing($request->{'page-layout-object'}->{'layout-panel-spacing'});
  256 + $pageNode->getLayout()->setExpand($request->{'page-layout-object'}->{'layout-expand'} ? "true" : "false");
  257 + $pageNode->getLayout()->setOnlyLowerTimeAxesLegend($request->{'page-layout-object'}->{'layout-timeaxes-legend-lowerone'} ? "true" : "false");
324 break; 258 break;
325 case 'manual' : 259 case 'manual' :
326 $pageNode->getLayout()->setType(RequestOutputPlotLayoutTypeEnum::MANUAL); 260 $pageNode->getLayout()->setType(RequestOutputPlotLayoutTypeEnum::MANUAL);
327 - $timePlotLeftMargin = $tab->{'page-layout-object'}->{'layout-timeplot-margin-left'} ? $tab->{'page-layout-object'}->{'layout-timeplot-margin-left'} : -1;  
328 - $timePlotRightMargin = $tab->{'page-layout-object'}->{'layout-timeplot-margin-right'} ? $tab->{'page-layout-object'}->{'layout-timeplot-margin-right'} : -1; 261 + $timePlotLeftMargin = $request->{'page-layout-object'}->{'layout-timeplot-margin-left'} ? $request->{'page-layout-object'}->{'layout-timeplot-margin-left'} : -1;
  262 + $timePlotRightMargin = $request->{'page-layout-object'}->{'layout-timeplot-margin-right'} ? $request->{'page-layout-object'}->{'layout-timeplot-margin-right'} : -1;
329 $pageNode->setDefaultTimePlotXMargin($timePlotLeftMargin, $timePlotRightMargin); 263 $pageNode->setDefaultTimePlotXMargin($timePlotLeftMargin, $timePlotRightMargin);
330 - $xyPlotLeftMargin = $tab->{'page-layout-object'}->{'layout-xyplot-margin-left'} ? $tab->{'page-layout-object'}->{'layout-xyplot-margin-left'} : -1;  
331 - $xyPlotRightMargin = $tab->{'page-layout-object'}->{'layout-xyplot-margin-right'} ? $tab->{'page-layout-object'}->{'layout-xyplot-margin-right'} : -1; 264 + $xyPlotLeftMargin = $request->{'page-layout-object'}->{'layout-xyplot-margin-left'} ? $request->{'page-layout-object'}->{'layout-xyplot-margin-left'} : -1;
  265 + $xyPlotRightMargin = $request->{'page-layout-object'}->{'layout-xyplot-margin-right'} ? $request->{'page-layout-object'}->{'layout-xyplot-margin-right'} : -1;
332 $pageNode->setDefaultXYPlotXMargin($xyPlotLeftMargin, $xyPlotRightMargin); 266 $pageNode->setDefaultXYPlotXMargin($xyPlotLeftMargin, $xyPlotRightMargin);
333 break; 267 break;
334 default: 268 default:
@@ -1470,8 +1404,6 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -1470,8 +1404,6 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
1470 1404
1471 $result[] = array( 1405 $result[] = array(
1472 "id" => $key, 1406 "id" => $key,
1473 - "index" => $this->interactiveRequestRealIndexes[$key],  
1474 - "multiplot" => $this->interactiveMultiPlotState[$key],  
1475 "preview" => $this->interactivePreview, 1407 "preview" => $this->interactivePreview,
1476 "isInterval" => $this->interactiveTimeSelectionState[$key], 1408 "isInterval" => $this->interactiveTimeSelectionState[$key],
1477 "ttFileIndex" => $this->interactiveCrtTTFileIndex, 1409 "ttFileIndex" => $this->interactiveCrtTTFileIndex,
@@ -1709,43 +1641,21 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -1709,43 +1641,21 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
1709 if ($input->{'axeId'} == 'timeAxis') 1641 if ($input->{'axeId'} == 'timeAxis')
1710 { 1642 {
1711 //Zoom on Time Axis 1643 //Zoom on Time Axis
1712 - if ($crtTab->{'multi-plot-linked'}) 1644 + if ($crtTab->{'timesrc'} != 'Interval')
1713 { 1645 {
1714 - //Update multi plot time definition  
1715 - if ($plotInput->{'timesrc'} != 'Interval')  
1716 - {  
1717 - $plotInput->{'timesrc'} = 'Interval';  
1718 - if (!$isUndo)  
1719 - $this->addZoomInList($input,false,  
1720 - isset($plotInput->{'ttFileIndex'}) ? $plotInput->{'ttFileIndex'}: 0,  
1721 - isset($plotInput->{'intIndex'}) ? $plotInput->{'intIndex'}: 0);  
1722 - }  
1723 - else  
1724 - {  
1725 - if (!$isUndo)  
1726 - $this->addZoomInList($input,true,$plotInput->{'startDate'},$plotInput->{'stopDate'});  
1727 - }  
1728 - $plotInput->{'startDate'} = $input->{'min'};  
1729 - $plotInput->{'stopDate'} = $input->{'max'}; 1646 + $crtTab->{'timesrc'} = 'Interval';
  1647 + if (!$isUndo)
  1648 + $this->addZoomInList($input,false,
  1649 + isset($crtTab->{'ttFileIndex'}) ? $crtTab->{'ttFileIndex'} : 0,
  1650 + isset($crtTab->{'intIndex'}) ? $crtTab->{'intIndex'} : 0);
1730 } 1651 }
1731 else 1652 else
1732 { 1653 {
1733 - if ($crtTab->{'timesrc'} != 'Interval')  
1734 - {  
1735 - $crtTab->{'timesrc'} = 'Interval';  
1736 - if (!$isUndo)  
1737 - $this->addZoomInList($input,false,  
1738 - isset($crtTab->{'ttFileIndex'}) ? $crtTab->{'ttFileIndex'} : 0,  
1739 - isset($crtTab->{'intIndex'}) ? $crtTab->{'intIndex'} : 0);  
1740 - }  
1741 - else  
1742 - {  
1743 - if (!$isUndo)  
1744 - $this->addZoomInList($input,true,$crtTab->{'startDate'},$crtTab->{'stopDate'});  
1745 - }  
1746 - $crtTab->{'startDate'} = $input->{'min'};  
1747 - $crtTab->{'stopDate'} = $input->{'max'}; 1654 + if (!$isUndo)
  1655 + $this->addZoomInList($input,true,$crtTab->{'startDate'},$crtTab->{'stopDate'});
1748 } 1656 }
  1657 + $crtTab->{'startDate'} = $input->{'min'};
  1658 + $crtTab->{'stopDate'} = $input->{'max'};
1749 1659
1750 $plotInput->{'last-plotted-tab'} = $crtTab->{'id'}; 1660 $plotInput->{'last-plotted-tab'} = $crtTab->{'id'};
1751 $plotInput->{'force-time-zoom-reset'} = false; 1661 $plotInput->{'force-time-zoom-reset'} = false;
@@ -1820,16 +1730,8 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -1820,16 +1730,8 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
1820 if (!$crtTab) 1730 if (!$crtTab)
1821 throw new Exception('Cannot retrieve plot tab for navigation action.'); 1731 throw new Exception('Cannot retrieve plot tab for navigation action.');
1822 1732
1823 - if ($crtTab->{'multi-plot-linked'})  
1824 - {  
1825 - $startTime = $plotInput->{'startDate'};  
1826 - $stopTime = $plotInput->{'stopDate'};  
1827 - }  
1828 - else  
1829 - {  
1830 - $startTime = $crtTab->{'startDate'};  
1831 - $stopTime = $crtTab->{'stopDate'};  
1832 - } 1733 + $startTime = $crtTab->{'startDate'};
  1734 + $stopTime = $crtTab->{'stopDate'};
1833 1735
1834 //Compute new start / stop time 1736 //Compute new start / stop time
1835 date_default_timezone_set('UTC'); 1737 date_default_timezone_set('UTC');
@@ -1872,16 +1774,8 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -1872,16 +1774,8 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
1872 $stopTime = date("Y-m-d\TH:i:s",$stopTimeStamp); 1774 $stopTime = date("Y-m-d\TH:i:s",$stopTimeStamp);
1873 1775
1874 //Update request 1776 //Update request
1875 - if ($crtTab->{'multi-plot-linked'})  
1876 - {  
1877 - $plotInput->{'startDate'} = $startTime;  
1878 - $plotInput->{'stopDate'} = $stopTime;  
1879 - }  
1880 - else  
1881 - {  
1882 - $crtTab->{'startDate'} = $startTime;  
1883 - $crtTab->{'stopDate'} = $stopTime;  
1884 - } 1777 + $crtTab->{'startDate'} = $startTime;
  1778 + $crtTab->{'stopDate'} = $stopTime;
1885 1779
1886 $plotInput->{'last-plotted-tab'} = $crtTab->{'id'}; 1780 $plotInput->{'last-plotted-tab'} = $crtTab->{'id'};
1887 $plotInput->{'force-time-zoom-reset'} = true; 1781 $plotInput->{'force-time-zoom-reset'} = true;
@@ -1907,18 +1801,9 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -1907,18 +1801,9 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
1907 1801
1908 $plotInput->{'last-plotted-tab'} = $crtTab->{'id'}; 1802 $plotInput->{'last-plotted-tab'} = $crtTab->{'id'};
1909 1803
1910 - if ($crtTab->{'multi-plot-linked'})  
1911 - {  
1912 - $plotInput->{'timesrc'} = 'TimeTable';  
1913 - $plotInput->{'ttFileIndex'} = $input->{'ttFileIndex'};  
1914 - $plotInput->{'intIndex'} = $input->{'intIndex'};  
1915 - }  
1916 - else  
1917 - {  
1918 - $crtTab->{'timesrc'} = 'TimeTable';  
1919 - $crtTab->{'ttFileIndex'} = $input->{'ttFileIndex'};  
1920 - $crtTab->{'intIndex'} = $input->{'intIndex'};  
1921 - } 1804 + $crtTab->{'timesrc'} = 'TimeTable';
  1805 + $crtTab->{'ttFileIndex'} = $input->{'ttFileIndex'};
  1806 + $crtTab->{'intIndex'} = $input->{'intIndex'};
1922 1807
1923 $plotInput->{'force-time-zoom-reset'} = true; 1808 $plotInput->{'force-time-zoom-reset'} = true;
1924 $this->saveIHMRequest($plotInput); 1809 $this->saveIHMRequest($plotInput);
@@ -2017,7 +1902,6 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -2017,7 +1902,6 @@ class IHMInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
2017 1902
2018 $instantTab = (Object)array( 1903 $instantTab = (Object)array(
2019 "id" => 1, 1904 "id" => 1,
2020 - "multi-plot-linked" => true,  
2021 "page-margins-activated" => $crtTab->{"page-margins-activated"}, 1905 "page-margins-activated" => $crtTab->{"page-margins-activated"},
2022 "page-margin-x" => $crtTab->{"page-margin-x"}, 1906 "page-margin-x" => $crtTab->{"page-margin-x"},
2023 "page-margin-y" => $crtTab->{"page-margin-y"}, 1907 "page-margin-y" => $crtTab->{"page-margin-y"},
src/InputOutput/WSImpl/Params/PlotImpl/WSInputOutputParamsPlotClass.php
@@ -22,12 +22,10 @@ class WSInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass @@ -22,12 +22,10 @@ class WSInputOutputParamsPlotClass extends IHMInputOutputParamsAbstractClass
22 { 22 {
23 //Request 23 //Request
24 $requestIndexInParamData = 0; 24 $requestIndexInParamData = 0;
25 - $tabRequestIndex = 1;  
26 25
27 $postProcessCmd = ""; 26 $postProcessCmd = "";
28 27
29 $requestNode = $this->paramsData->addRequestNode(); 28 $requestNode = $this->paramsData->addRequestNode();
30 - $requestNode->setRealIndex($tabRequestIndex);  
31 $outputsNode = $requestNode->getOutputsNode(); 29 $outputsNode = $requestNode->getOutputsNode();
32 $paramsNode = $requestNode->getParamsNode(); 30 $paramsNode = $requestNode->getParamsNode();
33 31
src/Request/ParamsRequestImpl/Nodes/Requests/RequestNodeClass.php
@@ -82,8 +82,6 @@ define ("REQUEST_NAME", "request"); @@ -82,8 +82,6 @@ define ("REQUEST_NAME", "request");
82 */ 82 */
83 class RequestNodeClass extends NodeClass 83 class RequestNodeClass extends NodeClass
84 { 84 {
85 - private $realIndex = 0;  
86 -  
87 public function __construct() 85 public function __construct()
88 { 86 {
89 parent::__construct(REQUEST_NAME); 87 parent::__construct(REQUEST_NAME);
@@ -108,16 +106,6 @@ class RequestNodeClass extends NodeClass @@ -108,16 +106,6 @@ class RequestNodeClass extends NodeClass
108 return $this->getFirstChildByName(REQUESTOUTPUTS_NAME); 106 return $this->getFirstChildByName(REQUESTOUTPUTS_NAME);
109 } 107 }
110 108
111 - public function setRealIndex($index)  
112 - {  
113 - $this->realIndex = $index;  
114 - }  
115 -  
116 - public function getRealIndex()  
117 - {  
118 - return $this->realIndex;  
119 - }  
120 -  
121 public function loadFromNode($xmlNode) 109 public function loadFromNode($xmlNode)
122 { 110 {
123 $paramsXmlNode = $this->getXmlNodeChildByTagName($xmlNode, REQUESTPARAMS_NAME); 111 $paramsXmlNode = $this->getXmlNodeChildByTagName($xmlNode, REQUESTPARAMS_NAME);
@@ -135,4 +123,4 @@ class RequestNodeClass extends NodeClass @@ -135,4 +123,4 @@ class RequestNodeClass extends NodeClass
135 } 123 }
136 } 124 }
137 125
138 -?>  
139 \ No newline at end of file 126 \ No newline at end of file
  127 +?>
src/Request/ParamsRequestImpl/ParamsRequestClass.php
@@ -27,7 +27,7 @@ class ParamsRequestClass extends ProcessRequestClass @@ -27,7 +27,7 @@ class ParamsRequestClass extends ProcessRequestClass
27 { 27 {
28 if ($cmd != "") 28 if ($cmd != "")
29 $cmd .= " && "; 29 $cmd .= " && ";
30 - $cmd .= KernelConfigClass::getKernelBinPath()."amdaXMLRequestorTool ".$this->getRequestFilePath($requestNode->getRealIndex()); 30 + $cmd .= KernelConfigClass::getKernelBinPath()."amdaXMLRequestorTool ".$this->getRequestFilePath(0);
31 } 31 }
32 $this->requestData->setCmd($cmd); 32 $this->requestData->setCmd($cmd);
33 break; 33 break;
@@ -72,15 +72,15 @@ class ParamsRequestClass extends ProcessRequestClass @@ -72,15 +72,15 @@ class ParamsRequestClass extends ProcessRequestClass
72 72
73 if (!$xmlNode = $requestNode->toXMLNode($doc)) 73 if (!$xmlNode = $requestNode->toXMLNode($doc))
74 { 74 {
75 - $this->requestData->setLastErrorMessage('Cannot create params request XML file for request '.$requestNode->getRealIndex()); 75 + $this->requestData->setLastErrorMessage('Cannot create params request XML file for request');
76 return false; 76 return false;
77 } 77 }
78 78
79 $doc->appendChild($xmlNode); 79 $doc->appendChild($xmlNode);
80 80
81 - if (!$doc->save($this->getRequestFilePath($requestNode->getRealIndex()))) 81 + if (!$doc->save($this->getRequestFilePath(0)))
82 { 82 {
83 - $this->requestData->setLastErrorMessage('Cannot save params request XML file for request '.$requestNode->getRealIndex()); 83 + $this->requestData->setLastErrorMessage('Cannot save params request XML file for request');
84 return false; 84 return false;
85 } 85 }
86 86
@@ -96,7 +96,7 @@ class ParamsRequestClass extends ProcessRequestClass @@ -96,7 +96,7 @@ class ParamsRequestClass extends ProcessRequestClass
96 //} 96 //}
97 //libxml_clear_errors(); 97 //libxml_clear_errors();
98 98
99 - $this->requestData->setLastErrorMessage('Params request XML file not valid for request '.$requestNode->getRealIndex()/*.' ('.$error_msg.')'*/); 99 + $this->requestData->setLastErrorMessage('Params request XML file not valid for request'/*.' ('.$error_msg.')'*/);
100 return false; 100 return false;
101 } 101 }
102 //libxml_use_internal_errors(false); 102 //libxml_use_internal_errors(false);