21#ifndef __ANTARES_TOOLBOX_COMPONENT_DATAGRID_RENDERER_AREA_XCAST_ALL_AREAS_HXX__
22#define __ANTARES_TOOLBOX_COMPONENT_DATAGRID_RENDERER_AREA_XCAST_ALL_AREAS_HXX__
24#include "../../../../../application/study.h"
25#include "../../component.h"
26#include <antares/study/xcast/xcast.h>
36template<enum Data::TimeSeriesType T>
38 pControl(parent), pNotifier(notifier)
43template<enum Data::TimeSeriesType T>
49template<enum Data::TimeSeriesType T>
55template<enum Data::TimeSeriesType T>
58 auto study = GetCurrentStudy();
59 return !study ? 0 : study->areas.size();
62template<enum Data::TimeSeriesType T>
65 auto study = GetCurrentStudy();
66 return !(!study) and study->areas.size() != 0;
69template<enum Data::TimeSeriesType T>
75 return wxT(
" Capacity ");
77 return wxT(
"Distribution");
79 return wxT(
"Conversion");
81 return wxT(
" Translation");
86template<enum Data::TimeSeriesType T>
89 auto study = GetCurrentStudy();
90 if (!study || (uint)rowIndx >= study->areas.size())
92 return wxStringFromUTF8(study->areas.byIndex[rowIndx]->name);
95template<enum Data::TimeSeriesType T>
98 auto study = GetCurrentStudy();
100 return IRenderer::cellStyleDefaultCenterDisabled;
102 auto& area = *(study->areas.byIndex[y]);
103 auto& xcastData = *area.xcastData<T>();
104 if (Yuni::Math::Zero(xcastData.capacity))
105 return IRenderer::cellStyleDefaultCenterDisabled;
109 return Yuni::Math::Zero(xcastData.capacity) ? IRenderer::cellStyleDefaultCenterDisabled
110 : IRenderer::cellStyleConstraintWeight;
112 return xcastData.useConversion ? IRenderer::cellStyleDefaultCenter
113 : IRenderer::cellStyleDefaultCenterDisabled;
116 switch (xcastData.useTranslation)
119 return IRenderer::cellStyleDefaultCenterDisabled;
121 return IRenderer::cellStyleDefaultCenter;
123 return IRenderer::cellStyleDefaultCenter;
126 return IRenderer::cellStyleDefaultCenter;
129template<enum Data::TimeSeriesType T>
130wxColour XCastAllAreas<T>::cellBackgroundColor(
int,
int y)
const
132 auto study = GetCurrentStudy();
134 return wxColour(0, 0, 0);
135 auto& area = *(study->areas.byIndex[y]);
136 return wxColor(area.ui->color[0], area.ui->color[1], area.ui->color[2]);
139template<enum Data::TimeSeriesType T>
142 auto study = GetCurrentStudy();
144 return wxEmptyString;
146 auto& area = *(study->areas.byIndex[y]);
147 auto& xcastData = *area.xcastData<T>();
151 return DoubleToWxString(xcastData.capacity);
155 return xcastData.useConversion ? wxT(
"Yes") : wxT(
"No");
158 switch (xcastData.useTranslation)
161 return wxT(
"BEFORE scaling");
163 return wxT(
"AFTER scaling");
170 return wxEmptyString;
173template<enum Data::TimeSeriesType T>
176 auto study = GetCurrentStudy();
179 auto& area = *(study->areas.byIndex[y]);
180 auto& xcastData = *area.xcastData<T>();
184 return xcastData.capacity;
186 return double(xcastData.distribution);
188 return xcastData.useConversion ? 1. : 0.;
191 switch (xcastData.useTranslation)
206template<enum Data::TimeSeriesType T>
209 auto study = GetCurrentStudy();
215 auto& area = *(study->areas.byIndex[y]);
216 auto& xcastData = *area.xcastData<T>();
222 if (v.to<
double>(d) and not Yuni::Math::Equals(d, xcastData.capacity))
224 xcastData.capacity = d;
225 if (&area == pNotifier->lastArea())
226 pNotifier->reloadLastArea();
236 xcastData.distribution = d;
237 if (&area == pNotifier->lastArea())
238 pNotifier->reloadLastArea();
245 bool b = v.to<
bool>();
246 if (b != xcastData.useConversion)
248 xcastData.useConversion = b;
249 if (&area == pNotifier->lastArea())
250 pNotifier->reloadLastArea();
257 auto t = Data::XCast::CStringToTSTranslationUse(v);
258 if (t != xcastData.useTranslation)
260 xcastData.useTranslation = t;
261 if (&area == pNotifier->lastArea())
262 pNotifier->reloadLastArea();
271template<enum Data::TimeSeriesType T>
Definition xcast-allareas.h:38
virtual ~XCastAllAreas()
Destructor.
Definition xcast-allareas.hxx:44
virtual wxString columnCaption(int colIndx) const
Get the caption of a column.
Definition xcast-allareas.hxx:70
virtual double cellNumericValue(int, int) const
Get the floating value of a Cell.
Definition xcast-allareas.hxx:174
virtual int width() const
The effective width of the grid.
Definition xcast-allareas.hxx:50
virtual int height() const
The effective height of the grid.
Definition xcast-allareas.hxx:56
virtual wxString cellValue(int, int) const
Get the string representation of a Cell.
Definition xcast-allareas.hxx:140
virtual wxString rowCaption(int rowIndx) const
Get the caption of a row.
Definition xcast-allareas.hxx:87
XCastAllAreas(wxWindow *parent, Toolbox::InputSelector::Area *notifier)
Constructor.
Definition xcast-allareas.hxx:37
Definition for a single area.
Definition area.h:52
@ dtNone
None.
Definition xcast.h:63
static const char * DistributionToCString(Distribution d)
Convert a distribution into its human readable representation.
Definition xcast.cpp:71
@ tsTranslationNone
Do not use the time-series average.
Definition xcast.h:87
@ tsTranslationBeforeConversion
Add the time-series average before computing the transfer function.
Definition xcast.h:89
@ tsTranslationAfterConversion
Add the time-series average after computing the transfer function.
Definition xcast.h:91
static Distribution StringToDistribution(AnyString str)
Convert a CString into a probability distribution.
Definition xcast.cpp:92