Antares Simulator
Power System Simulator
Loading...
Searching...
No Matches
hour.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_HOUR_H__
22#define __ANTARES_TOOLBOX_COMPONENTS_DATAGRID_FILTER_ALL_HOUR_H__
23
24#include "../filter.h"
25#include <antares/date/date.h>
26
27namespace Antares
28{
29namespace Toolbox
30{
31namespace Filter
32{
33class Hour : public AFilterBase
34{
35public:
36 static const wxChar* Name()
37 {
38 return wxT("hour");
39 }
40 static const wxChar* Caption()
41 {
42 return wxT("Day Hour");
43 }
44 static Date::Precision Precision()
45 {
46 return Date::hourly;
47 }
48
49public:
50 Hour(Input* parent) : AFilterBase(parent)
51 {
52 operators.addStdArithmetic();
53 }
54
55 virtual ~Hour()
56 {
57 }
58
59 virtual Date::Precision precision() const
60 {
61 return Hour::Precision();
62 }
63
64 virtual bool checkOnRowsLabels() const
65 {
66 return true;
67 }
68
69 virtual const wxChar* name() const
70 {
71 return Hour::Name();
72 }
73 virtual const wxChar* caption() const
74 {
75 return Hour::Caption();
76 }
77
78 virtual bool rowIsValid(int row) const
79 {
80 // TODO Do not use global study
81 auto studyptr = GetCurrentStudy();
82 if (!(!studyptr) && row < studyptr->calendar.maxHoursInYear)
83 return currentOperator->compute((int)studyptr->calendar.hours[row].dayHour + 1);
84 return false;
85 }
86
87}; // class Hour
88
89} // namespace Filter
90} // namespace Toolbox
91} // namespace Antares
92
93#endif // __ANTARES_TOOLBOX_COMPONENTS_DATAGRID_FILTER_ALL_HOUR_H__
Abstract Filter.
Definition filter.h:52
Operator::AOperator * currentOperator
The current selected operator for the filter.
Definition filter.h:195
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 hour.h:34
virtual const wxChar * name() const
Get the name of the filter.
Definition hour.h:69
virtual const wxChar * caption() const
Get the caption of the filter.
Definition hour.h:73
Definition input.h:38