Eclipse SUMO - Simulation of Urban MObility
GUISelectedStorage.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2022 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials are made available under the
5 // terms of the Eclipse Public License 2.0 which is available at
6 // https://www.eclipse.org/legal/epl-2.0/
7 // This Source Code may also be made available under the following Secondary
8 // Licenses when the conditions for such availability set forth in the Eclipse
9 // Public License 2.0 are satisfied: GNU General Public License, version 2
10 // or later which is available at
11 // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12 // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13 /****************************************************************************/
20 // Storage for "selected" objects
21 /****************************************************************************/
22 #pragma once
23 #include <config.h>
24 
25 #include <set>
26 #include <string>
27 #include <map>
28 #include <fstream>
32 
33 
34 // ===========================================================================
35 // class declarations
36 // ===========================================================================
37 class OutputDevice;
38 
39 
40 // ===========================================================================
41 // class definitions
42 // ===========================================================================
68 
69 public:
71  class UpdateTarget {
72 
73  public:
75  virtual ~UpdateTarget() {};
76 
78  virtual void selectionUpdated() = 0;
79  };
80 
81 public:
84 
87 
104  bool isSelected(GUIGlObjectType type, GUIGlID id);
105 
106  bool isSelected(const GUIGlObject* o);
107 
123  void select(GUIGlID id, bool update = true);
124 
140  void deselect(GUIGlID id);
141 
156  void toggleSelection(GUIGlID id);
157 
159  const std::set<GUIGlID>& getSelected() const;
160 
167  const std::set<GUIGlID>& getSelected(GUIGlObjectType type);
168 
175  void clear();
176 
183  std::string load(const std::string& filename, GUIGlObjectType type = GLO_MAX);
184 
194  std::set<GUIGlID> loadIDs(const std::string& filename, std::string& msgOut, GUIGlObjectType type = GLO_MAX, int maxErrors = 16);
195 
201  void save(GUIGlObjectType type, const std::string& filename);
202 
207  void save(const std::string& filename) const;
208 
212  void add2Update(UpdateTarget* updateTarget);
213 
215  void remove2Update();
216 
222 
223  public:
226 
229 
234  bool isSelected(GUIGlID id);
235 
239  void select(GUIGlID id);
240 
244  void deselect(GUIGlID id);
245 
247  void clear();
248 
252  void save(const std::string& filename);
253 
257  const std::set<GUIGlID>& getSelected() const;
258 
259  private:
261  std::set<GUIGlID> mySelected;
262 
263  };
264 
266  friend class SingleTypeSelections;
267 
268 
269 private:
271  std::map<GUIGlObjectType, SingleTypeSelections> mySelections;
272 
274  std::set<GUIGlID> myAllSelected;
275 
278 
280  std::string load(GUIGlObjectType type, const std::string& filename, bool restrictType, std::set<GUIGlID>& into);
281 
283  static void save(const std::string& filename, const std::set<GUIGlID>& ids);
284 };
unsigned int GUIGlID
Definition: GUIGlObject.h:40
GUIGlObjectType
@ GLO_MAX
empty max
A container for ids of selected objects of a certain type.
void clear()
Clears the list of selected objects.
void select(GUIGlID id)
Adds the object with the given id to the list of selected objects.
std::set< GUIGlID > mySelected
The list of selected ids.
const std::set< GUIGlID > & getSelected() const
Returns the list of selected ids.
void deselect(GUIGlID id)
Deselects the object with the given id from the list of selected objects.
void save(const std::string &filename)
Saves the list of selected objects to a file named as given.
bool isSelected(GUIGlID id)
Returns the information whether the object with the given id is qithin the selection.
virtual ~UpdateTarget()
virtual destructor
virtual void selectionUpdated()=0
called when selection is updated
Storage for "selected" objects.
void save(GUIGlObjectType type, const std::string &filename)
Saves a selection list.
std::map< GUIGlObjectType, SingleTypeSelections > mySelections
map with the selections
std::string load(const std::string &filename, GUIGlObjectType type=GLO_MAX)
Loads a selection list (optionally with restricted type)
std::set< GUIGlID > myAllSelected
List of selected objects.
~GUISelectedStorage()
Destructor.
void clear()
Clears the list of selected objects.
void toggleSelection(GUIGlID id)
Toggles selection of an object.
void select(GUIGlID id, bool update=true)
Adds the object with the given id.
UpdateTarget * myUpdateTarget
The dialog to be updated.
void add2Update(UpdateTarget *updateTarget)
Adds a dialog to be updated.
void remove2Update()
Removes the dialog to be updated.
std::set< GUIGlID > loadIDs(const std::string &filename, std::string &msgOut, GUIGlObjectType type=GLO_MAX, int maxErrors=16)
Loads a selection list (optionally with restricted type) and returns the ids of all active objects.
bool isSelected(GUIGlObjectType type, GUIGlID id)
Returns the information whether the object with the given type and id is selected.
GUISelectedStorage()
Constructor.
std::string load(GUIGlObjectType type, const std::string &filename, bool restrictType, std::set< GUIGlID > &into)
load items into the given set, optionally restricting to type
void deselect(GUIGlID id)
Deselects the object with the given id.
const std::set< GUIGlID > & getSelected() const
Returns the set of ids of all selected objects.
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:61