Antares Simulator
Power System Simulator
Loading...
Searching...
No Matches
cluster-order.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
22#pragma once
23
24#include "datasource.h"
25#include <yuni/core/event.h>
26#include <antares/study/study.h>
27#include "../item/cluster-item.h"
28
29using namespace Antares::Component::HTMLListbox::Item;
30
31namespace Antares
32{
33namespace Component
34{
35namespace HTMLListbox
36{
37namespace Datasource
38{
40{
41 inline bool operator()(const Data::Cluster* a, const Data::Cluster* b)
42 {
43 return a->name() < b->name();
44 }
45};
46
48{
49 inline bool operator()(const Data::Cluster* a, const Data::Cluster* b)
50 {
51 return a->name() > b->name();
52 }
53};
54
55wxString groupNameToGroupTitle(Data::Area* area, wxString& groupName);
56
57class ClustersByOrder : public Yuni::IEventObserver<ClustersByOrder>, public IDatasource
58{
59public:
61
62
65 virtual ~ClustersByOrder();
67
68 virtual wxString name() const = 0;
69
70 virtual const char* icon() const = 0;
71
72 virtual void refresh(const wxString& search = wxEmptyString);
73
74 void onAreaChanged(Data::Area* area);
75 void onInvalidateAllAreas();
76
77 void hasGroupChanged(bool b);
78 bool hasGroupChanged() const;
79
80private:
81 virtual void reorderItemsList(const wxString& search) = 0;
82 virtual void rebuildItemsList(const wxString& search) = 0;
83
84protected:
85 Data::Area* pArea;
86 bool hasGroupJustChanged_;
87 std::map<wxString, IItem::Ptr> groups_to_items_;
88 std::map<Data::Cluster*, ClusterItem::Ptr> pClustersToItems;
89
90}; // class ClustersByOrder
91
92} // namespace Datasource
93} // namespace HTMLListbox
94} // namespace Component
95} // namespace Antares
Listbox with HTML content.
Definition component.h:50
virtual wxString name() const =0
Get the name of the datasource.
virtual ~ClustersByOrder()
Destructor.
Definition cluster-order.cpp:63
virtual const char * icon() const =0
Get the relative path to the icon file.
virtual void refresh(const wxString &search=wxEmptyString)
Refresh the list.
Definition cluster-order.cpp:68
ClustersByOrder(HTMLListbox::Component &parent)
Default Constructor.
Definition cluster-order.cpp:54
Datasource for HTMLListbox::Component.
Definition datasource.h:45
Definition for a single area.
Definition area.h:52
Definition cluster.h:48