Antares Simulator
Power System Simulator
provider.h
1 /*
2 ** Copyright 2007-2025, 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_UI_COMMON_COMPONENT_SPOTLIGHT_SPOTLIGHT_PROVIDER_HXX__
22 #define __ANTARES_UI_COMMON_COMPONENT_SPOTLIGHT_SPOTLIGHT_PROVIDER_HXX__
23 
24 #include <memory>
25 
29 class IProvider : public Yuni::IEventObserver<Spotlight>
30 {
31 public:
33  using Ptr = std::shared_ptr<IProvider>;
34 
35 public:
37 
38 
42  {
43  }
45  virtual ~IProvider();
47 
49 
50 
53  virtual void search(IItem::Vector& out,
54  const SearchToken::Vector& tokens,
55  const Yuni::String& text = "")
56  = 0;
57 
61  void redoResearch();
63 
65 
66  virtual bool onSelect(IItem::Ptr& item);
69  virtual bool onSelect(const IItem::Vector& items);
70 
72  virtual bool onDoubleClickSelect(IItem::Ptr& item);
74 
76 
77  Spotlight* component() const;
80 
81 protected:
83  Spotlight* pSpotlightComponent;
84  friend class Spotlight;
85 
86 }; // class IProvider
87 
88 #endif // __ANTARES_UI_COMMON_COMPONENT_SPOTLIGHT_SPOTLIGHT_PROVIDER_HXX__
std::vector< Ptr > Vector
Vector of items.
Definition: iitem.h:32
std::shared_ptr< IItem > Ptr
Ptr.
Definition: iitem.h:30
Data Provider.
Definition: provider.h:30
virtual void search(IItem::Vector &out, const SearchToken::Vector &tokens, const Yuni::String &text="")=0
Rebuild the result list from a list of tokens.
std::shared_ptr< IProvider > Ptr
ptr
Definition: provider.h:33
Spotlight * component() const
Get the pointer of the attached component (can be null)
virtual bool onSelect(const IItem::Vector &items)
Event: a list of items have been selected (more than one)
virtual bool onSelect(IItem::Ptr &item)
Event: an item has been selected.
virtual bool onDoubleClickSelect(IItem::Ptr &item)
Event: an item has been selected.
IProvider()
Default constructor.
Definition: provider.h:41
void redoResearch()
Redo the research.
Spotlight * pSpotlightComponent
The parent component (can be null)
Definition: provider.h:83
virtual ~IProvider()
Destructor.
std::vector< Ptr > Vector
Vector of search tokens.
Definition: searchtoken.h:33