Antares Simulator
Power System Simulator
Loading...
Searching...
No Matches
weekday.h
1/*
2** Copyright 2007-2024, RTE (https://www.rte-france.com)
3** See AUTHORS.txt
4** SPDX-License-Identifier: MPL-2.0
5** This file is part of Antares-Simulator,
6** Adequacy and Performance assessment for interconnected energy networks.
7**
8** Antares_Simulator is free software: you can redistribute it and/or modify
9** it under the terms of the Mozilla Public Licence 2.0 as published by
10** the Mozilla Foundation, either version 2 of the License, or
11** (at your option) any later version.
12**
13** Antares_Simulator is distributed in the hope that it will be useful,
14** but WITHOUT ANY WARRANTY; without even the implied warranty of
15** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16** Mozilla Public Licence 2.0 for more details.
17**
18** You should have received a copy of the Mozilla Public Licence 2.0
19** along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
20*/
21#ifndef __ANTARES_TOOLBOX_COMPONENTS_DATAGRID_FILTER_ALL_WEEKDAY_H__
22#define __ANTARES_TOOLBOX_COMPONENTS_DATAGRID_FILTER_ALL_WEEKDAY_H__
23
24#include "../filter.h"
25#include <antares/date/date.h>
26#include <antares/study/study.h>
27#include "application/study.h"
28
29namespace Antares
30{
31namespace Toolbox
32{
33namespace Filter
34{
35class Weekday : public AFilterBase
36{
37public:
38 static const wxChar* Name()
39 {
40 return wxT("weekday");
41 }
42 static const wxChar* Caption()
43 {
44 return wxT("WeekDay");
45 }
46 static Date::Precision Precision()
47 {
48 return Date::daily;
49 }
50
51public:
52 Weekday(Input* parent) : AFilterBase(parent)
53 {
54 operators.addStdWeekday();
55 }
56
57 virtual ~Weekday()
58 {
59 }
60
61 virtual Date::Precision precision() const
62 {
63 return Weekday::Precision();
64 }
65
66 virtual bool checkOnRowsLabels() const
67 {
68 return true;
69 }
70
71 virtual const wxChar* name() const
72 {
73 return Weekday::Name();
74 }
75 virtual const wxChar* caption() const
76 {
77 return Weekday::Caption();
78 }
79
80 virtual bool rowIsValid(int row) const
81 {
82 // TODO Do not use global study
83 auto studyptr = GetCurrentStudy();
84 if (!studyptr)
85 return false;
86 auto& study = *studyptr;
87 auto& calendar = study.calendar;
88
89 switch (pDataGridPrecision)
90 {
91 case Date::hourly:
92 {
93 if (row < study.calendar.maxHoursInYear)
94 {
95 uint w = calendar.hours[row].weekday;
96 return currentOperator->compute((int)w);
97 }
98 break;
99 }
100 case Date::daily:
101 {
102 if (row < study.calendar.maxDaysInYear)
103 {
104 uint w = calendar.days[row].weekday;
105 return currentOperator->compute((int)w);
106 }
107 break;
108 }
109 default:
110 break;
111 }
112 return false;
113 }
114
115}; // class HourYear
116
117} // namespace Filter
118} // namespace Toolbox
119} // namespace Antares
120
121#endif // __ANTARES_TOOLBOX_COMPONENTS_DATAGRID_FILTER_ALL_WEEKDAY_H__
Abstract Filter.
Definition filter.h:52
Operator::AOperator * currentOperator
The current selected operator for the filter.
Definition filter.h:195
Date::Precision pDataGridPrecision
Precision.
Definition filter.h:199
Operator::List operators
List of all possible operations for the filter.
Definition filter.h:193
AFilterBase(Input *parent)
Default constructor.
Definition filter.cpp:38
Definition input.h:38
Definition weekday.h:36
virtual const wxChar * name() const
Get the name of the filter.
Definition weekday.h:71
virtual const wxChar * caption() const
Get the caption of the filter.
Definition weekday.h:75