VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
selectionGroupManager.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2013 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 #pragma once
9 
10 #include <vrvUtil/signalslib.h>
11 #include <vrfGuiCore/vrfGuiCore.h>
15 #include <vrvCore/DtElementData.h>
16 #include <vrvCore/DtUniqueID.h>
19 
20 #include <map>
21 #include <set>
22 
23 #include <boost/archive/xml_iarchive.hpp>
24 #include <boost/archive/xml_oarchive.hpp>
25 #include <boost/serialization/access.hpp>
26 #include <boost/serialization/nvp.hpp>
27 #include <boost/serialization/list.hpp>
28 #include <boost/serialization/map.hpp>
29 #include <boost/serialization/vector.hpp>
30 #include <boost/serialization/string.hpp>
31 
32 #include <vlutil/vlSmartPointers.h>
33 
34 namespace makVrv
35 {
36  class DtDe;
37 }
38 
39 class DtSimMessage;
40 
41 namespace makVrf
42 {
45 
50  {
51  public:
52  typedef std::set<std::string> GroupItems;
53  typedef std::map<std::string, GroupItems> SelectionGroups;
54 
55  public:
58 
60  virtual ~DtSelectionGroupManager();
61 
62  static DtSelectionGroupManager& instance(makVrv::DtDe& de);
63  static void registerInstance(makVrv::DtDe& de, DtSelectionGroupManager*);
64 
66  virtual void createSelectionGroup(const std::string&);
67 
71  virtual void createSelectionGroupFromCurrentSelection(const std::string& groupName, bool select = false);
72 
74  virtual void clearSelectionGroup(const std::string&);
75 
77  virtual void removeSelectionGroup(const std::string&);
78 
80  virtual bool hasSelectionGroup(const std::string&) const;
81 
84  virtual void renameSelectionGroup(const std::string& from, const std::string& to);
85 
87  virtual void addItemToSelectionGroup(const std::string&, const std::string& name);
88 
90  virtual bool atLeastOneItemNotInSelectionGroup(const std::string&, const GroupItems& names) const;
91  virtual bool atLeastOneItemNotInSelectionGroup(const std::string&, const std::vector<std::string>& names) const;
92 
94  virtual bool anyItemsInSelectionGroup(const std::string&, const GroupItems& names) const;
95  virtual bool anyItemsInSelectionGroup(const std::string&, const std::vector<std::string>& names) const;
96 
98  virtual void addItemsToSelectionGroup(const std::string&, const GroupItems& names);
99  virtual void addItemsToSelectionGroup(const std::string&, const std::vector<std::string>& names);
100 
102  virtual bool itemInAnySelectionGroup(const std::string&) const;
103 
105  virtual void removeItemFromSelectionGroup(const std::string&, const std::string& name);
106 
108  virtual void removeItemsFromSelectionGroup(const std::string&, const GroupItems& names);
109  virtual void removeItemsFromSelectionGroup(const std::string&, const std::vector<std::string>& names);
110 
112  virtual const SelectionGroups& selectionGroups() const;
113 
115  virtual makVrv::DtUniqueID markingTextToId(const std::string& markingText) const;
116 
118  virtual bool load(const std::string&);
119 
121  virtual bool save(const std::string&);
122 
124  virtual void removeAll();
125 
127  virtual GroupItems itemsInSelectionGroup(const std::string&) const;
128 
130  virtual bool itemIsInSelectionGroup(const std::string& group, const std::string& item) const;
131 
134  virtual void selectItemsInSelectionGroup(const std::string&);
135 
137  virtual const std::string& selectedSelectionGroup() const;
138 
141  virtual void slot_elementAttributeChangeRequested(
142  makVrv::DtUniqueID id, makVrv::DtUniqueID parentId, DtBoost::shared_ptr<const makVrv::DtElementAttribute> atr );
143 
146  virtual void addNamesToInternalMaps(const GroupItems&);
147 
149  virtual void removeNamesFromInternalMaps(const GroupItems&);
150 
152  virtual void renameItemInAllSelectionGroups(const std::string& from, const std::string& to);
153 
155  virtual void slot_onAttributesChanged(const makVrv::DtElementData::EntryAttributesList& signalList);
156 
158  virtual void handleAttribute(makVrv::DtUniqueID id, const makVrv::DtElementAttribute* atr);
159 
161  virtual void processCreateSelectionGroup(DtSimMessage*);
162 
165  virtual bool canRenameSelectionGroup(const std::string&) const;
166 
167  public:
172  boost::signal<void (std::string)> signal_selectionGroupAdded;
173 
175  boost::signal<void (std::string, std::string)> signal_selectionGroupRenamed;
176 
178  boost::signal<void (std::string)> signal_selectionGroupRemoved;
179 
181  boost::signal<void (std::string)> signal_selectionGroupCleared;
182 
184  boost::signal<void (std::string, GroupItems)> signal_itemsAddedToSelectionGroup;
185 
187  boost::signal<void (std::string, GroupItems)> signal_itemsRemovedFromSelectionGroup;
188 
190  boost::signal<void ()> signal_loading;
191 
193  boost::signal<void ()> signal_loaded;
194 
196  boost::signal<void ()> signal_selectionGroupsCleared;
197 
199  boost::signal<void (std::string, std::string)> signal_itemRenamed;
200 
202  boost::signal<void (std::string)> signal_selectionGroupSelected;
203 
205 
206  protected:
207  friend class boost::serialization::access;
208 
212  template<class Archive>
213  void serialize(Archive & ar, const unsigned int version)
214  {
215  ar & BOOST_SERIALIZATION_NVP(mySelectionGroups);
216  }
217 
218  protected:
222 
223  typedef std::map<std::string, makVrv::DtUniqueID> NameToIdMap;
224  typedef std::map<makVrv::DtUniqueID, std::string> IdToNameMap;
225 
228 
230  };
234  {
235  public:
238 
240  virtual ~DtVrfSelectionGroupFilter();
241 
242  protected:
243  virtual DtVrfSelectionFilter* clone() const;
244 
245  virtual void setForce(int)
246  {
247  };
248 
249  virtual bool isValid(const makVrv::DtVrlinkSimulatedBaseState*) const;
250 
251  protected:
253  };
254 }
255 

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)