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 std::string toStringBuffer();
128 virtual bool fromStringBuffer(
const std::string&);
131 virtual void removeAll();
134 virtual GroupItems itemsInSelectionGroup(
const std::string&)
const;
137 virtual bool itemIsInSelectionGroup(
const std::string& group,
const DtUUID&)
const;
141 virtual void selectItemsInSelectionGroup(
const std::string&);
144 virtual const std::string& selectedSelectionGroup()
const;
147 virtual void processCreateSelectionGroup(
DtSimMessage*);
151 virtual bool canRenameSelectionGroup(
const std::string&)
const;
154 virtual void allScenarioObjectsDiscovered();
204 friend class boost::serialization::access;
209 template<
class Archive>
210 void serialize(Archive & ar,
const unsigned int version)
214 ar & BOOST_SERIALIZATION_NVP(mySelectionGroupsUUID);
218 typedef std::set<std::string> OldGroupItems;
219 typedef std::map<std::string, OldGroupItems> OldSelectionGroups;
221 OldSelectionGroups mySelectionGroups;
223 ar & BOOST_SERIALIZATION_NVP(mySelectionGroups);
225 if (Archive::is_loading::value)
227 OldSelectionGroups::const_iterator iter = mySelectionGroups.begin();
228 bool hasItems =
false;
230 while (iter != mySelectionGroups.end())
233 OldGroupItems::const_iterator oldIter = iter->second.begin();
235 while (oldIter != iter->second.end())
240 newGroupItems.insert(uuid);
244 hasItems |= (newGroupItems.size() != 0);
245 mySelectionGroupsUUID[iter->first] = newGroupItems;
251 myWaitingForDiscovery =
true;
279 virtual void setForce(
int)