Antares Simulator
Power System Simulator
Loading...
Searching...
No Matches
management.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_APPLICATION_HYDROOW_HYDRO_MANAGEMENT_H__
22#define __ANTARES_APPLICATION_HYDROOW_HYDRO_MANAGEMENT_H__
23
24#include "../../toolbox/components/datagrid/component.h"
25#include "../../toolbox/input/area.h"
26#include <ui/common/component/panel.h>
27#include "../../toolbox/components/button.h"
28
29namespace Antares
30{
31namespace Window
32{
33namespace Hydro
34{
35class Management : public wxScrolledWindow, public Yuni::IEventObserver<Management>
36{
37public:
39
40
43 Management(wxWindow* parent, Toolbox::InputSelector::Area* notifier);
45 virtual ~Management();
47
48private:
49 void createComponents();
50 void onStudyClosed();
51 void onAreaChanged(Data::Area* area);
52
53 void onInterdailyBreakdownChanged(wxCommandEvent& evt);
54 void onIntradailyModulationChanged(wxCommandEvent& evt);
55 void onIntermonthlyBreakdownChanged(wxCommandEvent& evt);
56 void onReservoirCapacityChanged(wxCommandEvent& evt);
57 void onLeewayLowBoundChanged(wxCommandEvent& evt);
58 void onLeewayUpperBoundChanged(wxCommandEvent& evt);
59 void onPumpingEfficiencyChanged(wxCommandEvent& evt);
60 void onToggleReservoirManagement(Component::Button&, wxMenu& menu, void*);
61 void onToggleFollowLoad(Component::Button&, wxMenu& menu, void*);
62 void onToggleUseLeeway(Component::Button&, wxMenu& menu, void*);
63 void onToggleUseWaterValue(Component::Button&, wxMenu& menu, void*);
64 void onToggleHardBoundsOnRuleCurves(Component::Button&, wxMenu& menu, void*);
65 void onToggleInitializeReservoirLevelDate(Component::Button&, wxMenu& menu, void*);
66 void onToggleUseHeuristicTarget(Component::Button&, wxMenu& menu, void*);
67 void onTogglePowerToLevel(Component::Button&, wxMenu& menu, void*);
68
69 void onEnableReserveManagement(wxCommandEvent& evt);
70 void onDisableReserveManagement(wxCommandEvent& evt);
71
72 void onEnableUseLeeway(wxCommandEvent& evt);
73 void onDisableUseLeeway(wxCommandEvent& evt);
74
75 void onFollowingLoadModulations(wxCommandEvent& evt);
76 void onUnfollowingLoadModulations(wxCommandEvent& evt);
77
78 void onEnableUseWaterValue(wxCommandEvent& evt);
79 void onDisableUseWaterValue(wxCommandEvent& evt);
80
81 void onEnableHardBoundsOnRuleCurves(wxCommandEvent& evt);
82 void onDisableHardBoundsOnRuleCurves(wxCommandEvent& evt);
83
84 void onChangingInitializeReservoirLevelDate(wxCommandEvent& evt);
85
86 void onEnableUseHeuristicTarget(wxCommandEvent& evt);
87 void onDisableUseHeuristicTarget(wxCommandEvent& evt);
88
89 void onEnablePowerToLevel(wxCommandEvent& evt);
90 void onDisablePowerToLevel(wxCommandEvent& evt);
91
92private:
94 Toolbox::InputSelector::Area* pInputAreaSelector;
95 Data::Area* pArea = nullptr;
96 bool pComponentsAreReady = false;
97 Component::Panel* pSupport = nullptr;
98 wxTextCtrl* pIntermonthlyBreakdown = nullptr;
99 wxTextCtrl* pInterdailyBreakdown = nullptr;
100 wxTextCtrl* pIntradailyModulation = nullptr;
101 wxTextCtrl* pReservoirCapacity = nullptr;
102 wxTextCtrl* pLeewayUpperBound = nullptr;
103 wxTextCtrl* pLeewayLowerBound = nullptr;
104 wxTextCtrl* pPumpingEfficiency = nullptr;
105 wxWindow* pLabelReservoirCapacity = nullptr;
106 wxWindow* pLabelUseWaterValues = nullptr;
107 wxWindow* pLabelHardBounds = nullptr;
108 wxWindow* pLabelUseHeuristicTarget = nullptr;
109 wxWindow* pLabelLeewayLow = nullptr;
110 wxWindow* pLabelLeewayUp = nullptr;
111 wxWindow* pLabelUseLeeway = nullptr;
112 wxWindow* pLabelPowerToLevel = nullptr;
113
114 Component::Button* pReservoirManagement = nullptr;
115 Component::Button* pFollowLoad = nullptr;
116 Component::Button* pUseLeeway = nullptr;
117 Component::Button* pUseWaterValue = nullptr;
118 Component::Button* pHardBoundsOnRuleCurves = nullptr;
119 Component::Button* pInitializeReservoirLevelDate = nullptr;
120 Component::Button* pUseHeuristicTarget = nullptr;
121 Component::Button* pPowerToLevel = nullptr;
122
123}; // class Management
124
125} // namespace Hydro
126} // namespace Window
127} // namespace Antares
128
129#endif // __ANTARES_APPLICATION_HYDROOW_HYDRO_MANAGEMENT_H__
Definition button.h:34
Panel implementation.
Definition panel.h:36
Definition for a single area.
Definition area.h:52
Visual Component for displaying all available areas (and groups)
Definition area.h:41
Definition management.h:36
virtual ~Management()
Destructor.
Definition management.cpp:376
Management(wxWindow *parent, Toolbox::InputSelector::Area *notifier)
Constructor.
Definition management.cpp:36