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>
28 namespace Antares::Component::Datagrid::Renderer
30 template<enum Data::TimeSeriesType T>
38 template<enum Data::TimeSeriesType T>
44 template<enum Data::TimeSeriesType T>
50 template<enum Data::TimeSeriesType T>
53 auto study = GetCurrentStudy();
54 return !study ? 0 : study->areas.size();
57 template<enum Data::TimeSeriesType T>
60 auto study = GetCurrentStudy();
61 return !(!study) and study->areas.size() != 0;
64 template<enum Data::TimeSeriesType T>
70 return wxT(
" Capacity ");
72 return wxT(
"Distribution");
74 return wxT(
"Conversion");
76 return wxT(
" Translation");
81 template<enum Data::TimeSeriesType T>
84 auto study = GetCurrentStudy();
85 if (!study || (uint)rowIndx >= study->areas.size())
89 return wxStringFromUTF8(study->areas.byIndex[rowIndx]->name);
92 template<enum Data::TimeSeriesType T>
95 auto study = GetCurrentStudy();
98 return IRenderer::cellStyleDefaultCenterDisabled;
101 auto& area = *(study->areas.byIndex[y]);
102 auto& xcastData = *area.xcastData<T>();
103 if (Yuni::Math::Zero(xcastData.capacity))
105 return IRenderer::cellStyleDefaultCenterDisabled;
110 return Yuni::Math::Zero(xcastData.capacity) ? IRenderer::cellStyleDefaultCenterDisabled
111 : IRenderer::cellStyleConstraintWeight;
113 return xcastData.useConversion ? IRenderer::cellStyleDefaultCenter
114 : IRenderer::cellStyleDefaultCenterDisabled;
117 switch (xcastData.useTranslation)
120 return IRenderer::cellStyleDefaultCenterDisabled;
122 return IRenderer::cellStyleDefaultCenter;
124 return IRenderer::cellStyleDefaultCenter;
127 return IRenderer::cellStyleDefaultCenter;
130 template<enum Data::TimeSeriesType T>
131 wxColour XCastAllAreas<T>::cellBackgroundColor(
int,
int y)
const
133 auto study = GetCurrentStudy();
136 return wxColour(0, 0, 0);
138 auto& area = *(study->areas.byIndex[y]);
139 return wxColor(area.ui->color[0], area.ui->color[1], area.ui->color[2]);
142 template<enum Data::TimeSeriesType T>
145 auto study = GetCurrentStudy();
148 return wxEmptyString;
151 auto& area = *(study->areas.byIndex[y]);
152 auto& xcastData = *area.xcastData<T>();
156 return DoubleToWxString(xcastData.capacity);
160 return xcastData.useConversion ? wxT(
"Yes") : wxT(
"No");
163 switch (xcastData.useTranslation)
166 return wxT(
"BEFORE scaling");
168 return wxT(
"AFTER scaling");
175 return wxEmptyString;
178 template<enum Data::TimeSeriesType T>
181 auto study = GetCurrentStudy();
186 auto& area = *(study->areas.byIndex[y]);
187 auto& xcastData = *area.xcastData<T>();
191 return xcastData.capacity;
193 return double(xcastData.distribution);
195 return xcastData.useConversion ? 1. : 0.;
198 switch (xcastData.useTranslation)
213 template<enum Data::TimeSeriesType T>
216 auto study = GetCurrentStudy();
224 auto& area = *(study->areas.byIndex[y]);
225 auto& xcastData = *area.xcastData<T>();
231 if (v.to<
double>(d) and not Yuni::Math::Equals(d, xcastData.capacity))
233 xcastData.capacity = d;
234 if (&area == pNotifier->lastArea())
236 pNotifier->reloadLastArea();
247 xcastData.distribution = d;
248 if (&area == pNotifier->lastArea())
250 pNotifier->reloadLastArea();
258 bool b = v.to<
bool>();
259 if (b != xcastData.useConversion)
261 xcastData.useConversion = b;
262 if (&area == pNotifier->lastArea())
264 pNotifier->reloadLastArea();
272 auto t = Data::XCast::CStringToTSTranslationUse(v);
273 if (t != xcastData.useTranslation)
275 xcastData.useTranslation = t;
276 if (&area == pNotifier->lastArea())
278 pNotifier->reloadLastArea();
288 template<enum Data::TimeSeriesType T>
Definition: xcast-allareas.h:32
virtual ~XCastAllAreas()
Destructor.
Definition: xcast-allareas.hxx:39
virtual wxString columnCaption(int colIndx) const
Get the caption of a column.
Definition: xcast-allareas.hxx:65
virtual double cellNumericValue(int, int) const
Get the floating value of a Cell.
Definition: xcast-allareas.hxx:179
virtual int width() const
The effective width of the grid.
Definition: xcast-allareas.hxx:45
virtual int height() const
The effective height of the grid.
Definition: xcast-allareas.hxx:51
virtual wxString cellValue(int, int) const
Get the string representation of a Cell.
Definition: xcast-allareas.hxx:143
virtual wxString rowCaption(int rowIndx) const
Get the caption of a row.
Definition: xcast-allareas.hxx:82
XCastAllAreas(wxWindow *parent, Toolbox::InputSelector::Area *notifier)
Constructor.
Definition: xcast-allareas.hxx:31
Definition for a single area.
Definition: area.h:51
@ 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