26 #include <boost/archive/xml_iarchive.hpp>
27 #include <boost/archive/xml_oarchive.hpp>
28 #include <boost/serialization/access.hpp>
29 #include <boost/serialization/nvp.hpp>
30 #include <boost/serialization/list.hpp>
31 #include <boost/serialization/map.hpp>
32 #include <boost/serialization/vector.hpp>
33 #include <boost/serialization/string.hpp>
35 #include <vlutil/vlSmartPointers.h>
69 virtual void createSelectionGroup(
const std::string&,
bool signal =
true);
74 virtual void createSelectionGroupFromCurrentSelection(
const std::string& groupName,
bool select =
false);
77 virtual void clearSelectionGroup(
const std::string&);
80 virtual void removeSelectionGroup(
const std::string&);
83 virtual bool hasSelectionGroup(
const std::string&)
const;
87 virtual void renameSelectionGroup(
const std::string& from,
const std::string& to);
90 virtual void addItemToSelectionGroup(
const std::string&,
const DtUUID&,
bool signal =
true);
93 virtual bool atLeastOneItemNotInSelectionGroup(
const std::string&,
const GroupItems& names)
const;
94 virtual bool atLeastOneItemNotInSelectionGroup(
const std::string&,
const std::vector<DtUUID>& names)
const;
97 virtual bool anyItemsInSelectionGroup(
const std::string&,
const GroupItems& names)
const;
98 virtual bool anyItemsInSelectionGroup(
const std::string&,
const std::vector<DtUUID>& names)
const;
101 virtual void addItemsToSelectionGroup(
const std::string&,
const GroupItems& names,
bool signal =
true);
102 virtual void addItemsToSelectionGroup(
const std::string&,
const std::vector<DtUUID>& names,
bool signal =
true);
105 virtual bool itemInAnySelectionGroup(
const DtUUID&)
const;
108 virtual void removeItemFromSelectionGroup(
const std::string&,
const DtUUID&);
111 virtual void removeItemsFromSelectionGroup(
const std::string&,
const GroupItems& names);
112 virtual void removeItemsFromSelectionGroup(
const std::string&,
const std::vector<DtUUID>& names);
118 virtual bool load(
const std::string&);
121 virtual bool save(
const std::string&);
124 virtual std::string toStringBuffer();
127 virtual bool fromStringBuffer(
const std::string&);
130 virtual void removeAll();
133 virtual GroupItems itemsInSelectionGroup(
const std::string&)
const;
136 virtual bool itemIsInSelectionGroup(
const std::string& group,
const DtUUID&)
const;
140 virtual void selectItemsInSelectionGroup(
const std::string&);
143 virtual const std::string& selectedSelectionGroup()
const;
146 virtual void processCreateSelectionGroup(
DtSimMessage*);
150 virtual bool canRenameSelectionGroup(
const std::string&)
const;
153 virtual void allScenarioObjectsDiscovered();
203 friend class boost::serialization::access;
208 template<
class Archive>
209 void serialize(Archive & ar,
const unsigned int version)
213 ar & BOOST_SERIALIZATION_NVP(mySelectionGroupsUUID);
217 typedef std::set<std::string> OldGroupItems;
218 typedef std::map<std::string, OldGroupItems> OldSelectionGroups;
220 OldSelectionGroups mySelectionGroups;
222 ar & BOOST_SERIALIZATION_NVP(mySelectionGroups);
224 if (Archive::is_loading::value)
226 OldSelectionGroups::const_iterator iter = mySelectionGroups.begin();
227 bool hasItems =
false;
229 while (iter != mySelectionGroups.end())
232 OldGroupItems::const_iterator oldIter = iter->second.begin();
234 while (oldIter != iter->second.end())
239 newGroupItems.insert(uuid);
243 hasItems |= (newGroupItems.size() != 0);
244 mySelectionGroupsUUID[iter->first] = newGroupItems;
250 myWaitingForDiscovery =
true;
278 virtual void setForce(
int)