27 #include <boost/archive/xml_iarchive.hpp>
28 #include <boost/archive/xml_oarchive.hpp>
29 #include <boost/serialization/access.hpp>
30 #include <boost/serialization/nvp.hpp>
31 #include <boost/serialization/list.hpp>
32 #include <boost/serialization/map.hpp>
33 #include <boost/serialization/vector.hpp>
34 #include <boost/serialization/string.hpp>
36 #include <vlutil/vlSmartPointers.h>
70 virtual void createSelectionGroup(
const std::string&,
bool signal =
true);
75 virtual void createSelectionGroupFromCurrentSelection(
const std::string& groupName,
bool select =
false);
78 virtual void clearSelectionGroup(
const std::string&);
81 virtual void removeSelectionGroup(
const std::string&);
84 virtual bool hasSelectionGroup(
const std::string&)
const;
88 virtual void renameSelectionGroup(
const std::string& from,
const std::string& to);
91 virtual void addItemToSelectionGroup(
const std::string&,
const DtUUID&,
bool signal =
true);
94 virtual bool atLeastOneItemNotInSelectionGroup(
const std::string&,
const GroupItems& names)
const;
95 virtual bool atLeastOneItemNotInSelectionGroup(
const std::string&,
const std::vector<DtUUID>& names)
const;
98 virtual bool anyItemsInSelectionGroup(
const std::string&,
const GroupItems& names)
const;
99 virtual bool anyItemsInSelectionGroup(
const std::string&,
const std::vector<DtUUID>& names)
const;
102 virtual void addItemsToSelectionGroup(
const std::string&,
const GroupItems& names,
bool signal =
true);
103 virtual void addItemsToSelectionGroup(
const std::string&,
const std::vector<DtUUID>& names,
bool signal =
true);
106 virtual bool itemInAnySelectionGroup(
const DtUUID&)
const;
109 virtual void removeItemFromSelectionGroup(
const std::string&,
const DtUUID&);
112 virtual void removeItemsFromSelectionGroup(
const std::string&,
const GroupItems& names);
113 virtual void removeItemsFromSelectionGroup(
const std::string&,
const std::vector<DtUUID>& names);
119 virtual bool load(
const std::string&);
122 virtual bool save(
const std::string&);
125 virtual void removeAll();
128 virtual GroupItems itemsInSelectionGroup(
const std::string&)
const;
131 virtual bool itemIsInSelectionGroup(
const std::string& group,
const DtUUID&)
const;
135 virtual void selectItemsInSelectionGroup(
const std::string&);
138 virtual const std::string& selectedSelectionGroup()
const;
141 virtual void processCreateSelectionGroup(
DtSimMessage*);
145 virtual bool canRenameSelectionGroup(
const std::string&)
const;
148 virtual void allScenarioObjectsDiscovered();
198 friend class boost::serialization::access;
203 template<
class Archive>
204 void serialize(Archive & ar,
const unsigned int version)
208 ar & BOOST_SERIALIZATION_NVP(mySelectionGroupsUUID);
212 typedef std::set<std::string> OldGroupItems;
213 typedef std::map<std::string, OldGroupItems> OldSelectionGroups;
215 OldSelectionGroups mySelectionGroups;
217 ar & BOOST_SERIALIZATION_NVP(mySelectionGroups);
219 if (Archive::is_loading::value)
221 OldSelectionGroups::const_iterator iter = mySelectionGroups.begin();
222 bool hasItems =
false;
224 while (iter != mySelectionGroups.end())
227 OldGroupItems::const_iterator oldIter = iter->second.begin();
229 while (oldIter != iter->second.end())
234 newGroupItems.insert(uuid);
238 hasItems |= (newGroupItems.size() != 0);
239 mySelectionGroupsUUID[iter->first] = newGroupItems;
245 myWaitingForDiscovery =
true;
273 virtual void setForce(
int)