15 #include <boost/unordered_map.hpp>
19 class DtElementDefinitionRecord;
20 class DtElementsRecord;
24 class DtElementDefinition;
25 class DtElementDefinitionHierarchy;
26 class DtElementDefinitionNode;
27 class DtVisualAttributeInterface;
34 class DtBaseConnection;
35 class DtElementDefinitionNew;
37 class DtBackupInterface;
38 class DtVisualizerDefinitionValidator;
48 typedef std::map<DtUnicode, DtElementDefinitionNew*>
66 const std::string& name()
const;
73 unsigned int numberOfElementDefinitions()
const;
123 bool renameElementDefinition(
const DtUnicode& oldName,
130 void loadDefaults(
bool loadOnlyFactory);
135 virtual std::vector<std::string> retrieveHierFilesToMerge(
const std::string& type);
140 virtual std::vector<std::string> retrieveLeafFilesToMerge(
const std::string& type);
145 virtual bool shouldSkipDefLoading();
148 void revertSettings();
151 virtual void saveAsDefaults();
155 const std::string& existingDirName);
158 virtual void exportSettings(
const std::string& fileOrDirName);
161 virtual void exportSelectedSettings(
const std::vector<std::string>& names,
const std::string& fileName);
164 virtual void exportHierSettings(
const std::string& fileName);
170 virtual void exportLeafSettings(
const std::string& fileName, std::vector<std::string>& fileList);
173 virtual void exportSelectedLeafSettings(
const std::vector<std::string>& names,
const std::string& fileName);
178 void createFolderFromPathAndSplit(
const std::string &fileOrDirName,
179 std::string& newPath, std::string& dirName);
185 virtual void importSettings(
const std::string& fileName,
190 virtual void importSettings(
const std::string& fileName);
193 virtual void mergeHierSettings(
const std::string& hierFileOrDirName);
196 virtual void mergeHierSettings(
const std::string& hierFileOrDirName,
202 virtual void mergeLeafSettings(
const std::string& leafFileOrDirName);
205 virtual void mergeLeafSettings(
const std::string& fileOrDirName,
210 virtual void mergeSettings(
const std::string& fileName,
247 virtual void setFromRecords(std::map<std::string, makArchives::DtElementsRecord>& elemRecords,
255 virtual void mergeRecords(
256 std::map<std::string, makArchives::DtElementsRecord>& recordMap,
262 virtual void mergeHierRecord(
269 virtual void mergeLeafRecords(
270 std::map<std::string, makArchives::DtElementsRecord>& recordMap,
276 virtual void mergeLeafRecord(
293 virtual void getSplitRecord(std::vector<makArchives::DtElementsRecord>& rec,
294 std::vector<std::string>& fileNames);
310 virtual void setAutoSave(
bool enabled);
316 virtual bool validateElementAttribute(
const DtVisualizerDefinition::SortedAttributeMap::iterator& attr);
327 virtual bool canUseHierLeaf();
330 virtual bool modifiedSinceStartup();
333 virtual void resetModifiedSinceStartupFlag();
348 virtual void resetModifiedFlags();
361 virtual std::string getModelSetDisplayName(
int modelSet)
const;
384 typedef std::pair < std::string, const makArchives::DtElementDefinitionRecord*>
ElementPair;
399 virtual void buildElementVisualizersForModelSet(
405 virtual void buildElementChildren(
417 virtual void registerBackup();
420 virtual bool recordMatchesDefinition(
425 virtual bool recordMatchesDefinitionModelSet(
432 std::map<std::string, makArchives::DtElementsRecord>& rec);
436 std::map<std::string, makArchives::DtElementsRecord>& recordMap,
437 std::vector<std::string>& leafFiles);
440 virtual bool replaceMergeLeaves(
441 std::map<std::string, makArchives::DtElementsRecord>& firstRecMap,
442 std::map<std::string, makArchives::DtElementsRecord>& secondRecMap,
443 const std::vector<std::string>& leafFiles);
446 virtual bool loadDefaultsFromHierLeafDir(std::map<std::string, makArchives::DtElementsRecord>& recordMap);
450 virtual bool isEntityDefinitions();
454 virtual void checkDefinitionName(
const DtUnicode& definitionName);
549 virtual void registerElementType(ElementDefinitionType type,
550 const std::string& name,
const DtUnicode& typeScreenName,
551 bool proceduralOnly);
565 ElementDefinitionType type)
const;
568 virtual void loadDefaults();
576 template <
typename ManagerClass>
580 template <
typename ManagerClass>
600 typedef boost::unordered_map<unsigned int, DtElementDefinitionManager*>
622 boost::signal<void(const DtUnicode& oldName, const DtUnicode& newName)>
std::vector< DtUnicode > StringVector
Definition: DtVisualizerAttribute.h:110
BuiltInElementTypes
These types are all automatically registered when the manager is created.
Definition: DtElementDefinitionManager.h:505
ElementDefinitionsBackup * myBackup
Definition: DtElementDefinitionManager.h:483
DtDe * myOptionalDe
Definition: DtElementDefinitionManager.h:477
std::string myHierName
Definition: DtElementDefinitionManager.h:473
Virtual base class.
Definition: DtVirtualBaseClass.h:22
A unicode string.
Definition: DtUnicode.h:33
A signaler class which emits signals when element definitions change.
Definition: DtElementDefinitionManager.h:612
Definition: DtElementDefinitionManager.h:512
std::string myName
Definition: DtElementDefinitionManager.h:472
boost::signal< void(const DtUnicode &oldName, const DtUnicode &newName)> signal_elementRenamed
Definition: DtElementDefinitionManager.h:623
std::vector< std::string >::const_iterator ParentToElementIter
Iterator for parent to element names.
Definition: DtElementDefinitionManager.h:55
std::map< DtUnicode, ElementGroup > ParentToElementsMap
Map from parent element definition name to a group of elements Used to reconstruct the element hierar...
Definition: DtElementDefinitionManager.h:392
int myStartupNumOfDefinition
Definition: DtElementDefinitionManager.h:484
boost::signal< void()> signal_managerAboutTobeDeleted
Signals Signal sent when this manager is about to be deleted.
Definition: DtElementDefinitionManager.h:366
DtSignalConnectionManager myConnections
Definition: DtElementDefinitionManager.h:604
Manager which owns element definitions.for one type of element Use the makVrv::DtElementDefinitionTyp...
Definition: DtElementDefinitionManager.h:44
DefinitionMap myAddedDefinitions
Definition: DtElementDefinitionManager.h:486
The makVrv::DtRecordSettingsBackup is a templaced class that settings records will use in order to ba...
Definition: DtRecordSettingsBackup.h:103
Definition: DtElementDefinitionManager.h:508
The element type manager is responsible for knowing about the types of elements as well as owning the...
Definition: DtElementDefinitionManager.h:494
unsigned int ElementDefinitionType
Identifier for a type of element definition.
Definition: DtElementDefinitionManager.h:500
Definition: DtElementDefinitionManager.h:510
boost::unordered_map< unsigned int, DtElementDefinitionManager * > ManagerMap
Definition: DtElementDefinitionManager.h:601
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:37
Definition: DtElementDefinitionManager.h:511
std::vector< const DtElementDefinitionNew * > ElementDefinitions
List of new element definitions.
Definition: DtElementDefinitionManager.h:52
Definition: DtElementDefinitionManager.h:507
VisualizerDefinitionValidatorMap myValidators
Definition: DtElementDefinitionManager.h:470
std::string myLeafName
Definition: DtElementDefinitionManager.h:474
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtDe * myOptionalDe
Definition: DtElementDefinitionManager.h:603
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
std::map< DtUnicode, DtElementDefinitionNew * > DefinitionMap
Ordered map from element definition name to definition object.
Definition: DtElementDefinitionManager.h:49
The element definition class contains the element definition information.
Definition: DtElementDefinitionNew.h:25
DefinitionMap myModifiedDefinitions
Definition: DtElementDefinitionManager.h:485
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:840
Definition: DtElementDefinitionManager.h:509
bool myAutoSave
Definition: DtElementDefinitionManager.h:481
ManagerMap myManagers
Definition: DtElementDefinitionManager.h:605
DefinitionMap myDefinitions
Definition: DtElementDefinitionManager.h:478
Record containing a collection of element definition records.
Definition: DtElementsRecord.h:16
bool myProceduralFlag
Definition: DtElementDefinitionManager.h:480
Base class to provide boost signal/slot management.
Settings class for reading and writing settings to/from files.
Definition: DtDeSettings.h:29
std::map< std::string, DtVisualizerDefinitionValidator * > VisualizerDefinitionValidatorMap
Definition: DtElementDefinitionManager.h:466
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function.
Definition: DtDe.h:802
boost::unordered_map< std::string, std::string > myDefinitionNameCheck
Definition: DtElementDefinitionManager.h:479
std::pair< std::string, const makArchives::DtElementDefinitionRecord * > ElementPair
a pair, holding the definition file name in the key and the element definition record in the value ...
Definition: DtElementDefinitionManager.h:384
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Definition: DtElementDefinitionManager.h:513
DefinitionMap myDeletedDefinitions
Definition: DtElementDefinitionManager.h:487
DtUnicode myScreenName
Definition: DtElementDefinitionManager.h:475
Record for an element definition (new type)
Definition: DtElementDefinitionRecord.h:90
DtRecordSettingsBackup< DtElementDefinitionManager, makArchives::DtElementsRecord > ElementDefinitionsBackup
Definition: DtElementDefinitionManager.h:468
The backup interface, is used by components to control backups of a state.
Definition: DtBackupInterface.h:22
std::vector< ElementPair > ElementGroup
A group of element definition records, used for the following map.
Definition: DtElementDefinitionManager.h:387