17 #include <vlutil/vlPrint.h>
19 #include <unordered_map>
23 class DtElementDefinitionRecord;
24 class DtElementsRecord;
30 class DtBaseConnection;
31 class DtElementDefinition;
33 class DtBackupInterface;
34 class DtVisualizerDefinitionValidator;
85 typedef std::map<DtUnicode, DtElementDefinition*>
112 static bool isHierFileName(
const std::string& fileName);
127 virtual const std::string& name()
const;
131 virtual const DtUnicode& screenName()
const;
135 virtual const std::string& rootsFilesname()
const;
138 virtual unsigned int numberOfElementDefinitions()
const;
182 virtual bool renameElementDefinition(
const DtUnicode& oldName,
const DtUnicode& newName);
185 virtual void loadDefaults();
188 virtual void loadDefaults(
bool loadOnlyFactory);
196 virtual std::vector<std::string> retrieveHierFilesToMerge(
const std::string& type);
201 virtual std::vector<std::string> retrieveLeafFilesToMerge(
const std::string& type);
206 virtual bool shouldSkipDefLoading();
209 virtual void revertSettings();
212 virtual void saveAsDefaults();
218 virtual void exportSettings(
const std::string& fileOrDirName);
221 virtual void exportSelectedSettings(
const std::vector<std::string>& names,
const std::string& fileName);
224 virtual void exportHierSettings(
const std::string& fileName);
227 virtual void exportHierSettings(std::vector<std::string>& fileList);
233 virtual void exportLeafSettings(std::vector<std::string>& fileList);
236 virtual void exportSelectedLeafSetting(
const std::string& name,
const std::string& fileName);
239 virtual void exportSelectedHierSetting(
const std::string& name,
const std::string& fileName,
bool allLevels=
true);
244 virtual void createFolderFromPathAndSplit(
const std::string &fileOrDirName,
245 std::string& newPath, std::string& dirName);
248 virtual bool importAndReplaceSettings(
const std::string& fileName);
253 virtual void mergeHierSettings(
const std::string& hierFileOrDirName);
260 virtual void mergeLeafSettings(
const std::string& leafFileOrDirName);
341 virtual void getSplitRecord(std::vector<makArchives::DtElementsRecord>& rec, std::vector<std::string>& fileNames);
361 virtual void setAutoSave(
bool enabled);
367 virtual bool validateElementAttribute(
const DtVisualizerDefinition::SortedAttributeMap::iterator& attr);
373 virtual bool canUseHierLeaf();
376 virtual bool modifiedSinceStartup();
379 virtual void resetModifiedSinceStartupFlag();
394 virtual void resetModifiedFlags();
406 virtual std::string getModelSetDisplayName(
DtModelSetId modelSet)
const;
409 virtual void removeElementFromChangeMaps(
const DtUnicode& definitionName);
415 virtual void getChangedFiles(std::vector<std::string>& changedFiles,
DefinitionFileType fileType);
437 typedef std::pair < std::string, const makArchives::DtElementDefinitionRecord*>
ElementPair;
460 virtual void registerBackup();
481 virtual bool isEntityDefinitions()
const;
484 virtual bool isTacticalGraphicsDefinitions()
const;
487 virtual bool isUnitDefinitions()
const;
491 virtual void checkDefinitionName(
const DtUnicode& definitionName);
497 virtual void logWarning(
const std::string& message);
500 virtual void getFilesFromDefinitionMap(
const DefinitionMap& defMap, std::set<std::string>& changedFiles);
519 virtual void convertLeafToUuid(
const std::vector<makArchives::DtVisualizerDefinitionRecord>& visualizerDefinitionRecords,
554 bool myConvertWarningsToInfo =
false;
616 virtual void registerElementType(ElementDefinitionType type,
617 const std::string& name,
const DtUnicode& typeScreenName,
618 bool proceduralOnly);
632 ElementDefinitionType type)
const;
635 virtual void loadDefaults();
643 template <
typename ManagerClass>
647 template <
typename ManagerClass>
667 typedef std::unordered_map<unsigned int, DtElementDefinitionManager*>
689 boost::signalslib::signal<void(const DtUnicode& oldName, const DtUnicode& newName)>
boost::signalslib::signal< void()> signal_managerAboutTobeDeleted
Signals Signal sent when this manager is about to be deleted.
Definition: DtElementDefinitionManager.h:420
std::vector< DtUnicode > StringVector
Definition: DtVisualizerAttribute.h:113
BuiltInElementTypes
These types are all automatically registered when the manager is created. This enum is linked with Dt...
Definition: DtElementDefinitionManager.h:572
ElementDefinitionsBackup * myBackup
Definition: DtElementDefinitionManager.h:548
DtDe * myOptionalDe
Definition: DtElementDefinitionManager.h:542
std::string myHierName
Definition: DtElementDefinitionManager.h:538
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
A signaler class which emits signals when element definitions change.
Definition: DtElementDefinitionManager.h:679
DefinitionFileType
Definition: DtElementDefinitionManager.h:76
Definition: DtElementDefinitionManager.h:579
std::string myName
Definition: DtElementDefinitionManager.h:536
std::vector< std::string >::const_iterator ParentToElementIter
Iterator for parent to element names.
Definition: DtElementDefinitionManager.h:95
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:445
bool myConvertingHierarchy
Definition: DtElementDefinitionManager.h:551
std::multimap< const std::string, DtVisualizerDefinition * >::const_iterator ConstParentSchemaDataInterator
Remove all elements from a definition map.
Definition: DtElementDefinitionManager.h:524
The makVrv::DtVisualizerDefinitionSet is a collection of makVrv::DtVisualizerDefinition instances...
Definition: DtVisualizerDefinitionSet.h:28
std::string Utf8String
Typedef'd string used to indicate that a std::string must use utf8.
Definition: UnicodeStringRecord.h:11
std::map< std::string, makArchives::DtElementsRecord > StringToElementsRecordMap
Ordered map from a string (fileName) to a DtElementsRecord.
Definition: DtElementDefinitionManager.h:89
DtSignalConnectionManager myConnections
Definition: DtElementDefinitionManager.h:671
Manager which owns element definitions.for one type of element Use the makVrv::DtElementDefinitionTyp...
Definition: DtElementDefinitionManager.h:73
DefinitionMap myAddedDefinitions
Definition: DtElementDefinitionManager.h:550
The makVrv::DtRecordSettingsBackup is a templaced class that settings records will use in order to ba...
Definition: DtRecordSettingsBackup.h:101
Definition: DtElementDefinitionManager.h:575
The element type manager is responsible for knowing about the types of elements as well as owning the...
Definition: DtElementDefinitionManager.h:561
std::map< DtUnicode, DtElementDefinition * > DefinitionMap
Ordered map from element definition name to definition object.
Definition: DtElementDefinitionManager.h:86
unsigned int ElementDefinitionType
Identifier for a type of element definition.
Definition: DtElementDefinitionManager.h:567
Definition: DtElementDefinitionManager.h:577
Record for a visualization definition.
Definition: DtElementDefinitionRecord.h:23
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
std::string myRootsFilename
Definition: DtElementDefinitionManager.h:537
Definition: DtElementDefinitionManager.h:578
std::unordered_map< unsigned int, DtElementDefinitionManager * > ManagerMap
Definition: DtElementDefinitionManager.h:668
Definition: DtElementDefinitionManager.h:574
VisualizerDefinitionValidatorMap myValidators
Definition: DtElementDefinitionManager.h:534
std::string myLeafName
Definition: DtElementDefinitionManager.h:539
std::multimap< const std::string, DtVisualizerDefinition * > ParentSchemaDataMap
Remove all elements from a definition map.
Definition: DtElementDefinitionManager.h:522
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
The element definition class contains the element definition information. The makVrv::DtElementDefini...
Definition: DtElementDefinition.h:26
DtDe * myOptionalDe
Definition: DtElementDefinitionManager.h:670
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DefinitionMap myModifiedDefinitions
Definition: DtElementDefinitionManager.h:549
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:887
Definition: DtElementDefinitionManager.h:576
bool myAutoSave
Definition: DtElementDefinitionManager.h:546
ManagerMap myManagers
Definition: DtElementDefinitionManager.h:672
DefinitionMap myDefinitions
Definition: DtElementDefinitionManager.h:543
boost::signalslib::signal< void(const DtUnicode &oldName, const DtUnicode &newName)> signal_elementRenamed
Definition: DtElementDefinitionManager.h:690
Record containing a collection of element definition records.
Definition: DtElementsRecord.h:22
bool myProceduralFlag
Definition: DtElementDefinitionManager.h:545
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:530
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:26
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function. Manager requirements: 1) Static instance function 2) Protected DtS...
Definition: DtDe.h:849
std::multimap< const std::string, DtVisualizerDefinition * >::iterator ParentSchemaDataInterator
Remove all elements from a definition map.
Definition: DtElementDefinitionManager.h:523
boost::unordered_map< std::string, std::string > myDefinitionNameCheck
Definition: DtElementDefinitionManager.h:544
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:437
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
Definition: DtElementDefinitionManager.h:580
Record for a visualizer definition Designed to fit into a visualizer definition set record...
Definition: DtVisualizerDefinitionRecord.h:18
DefinitionMap myDeletedDefinitions
Definition: DtElementDefinitionManager.h:552
DtUnicode myScreenName
Definition: DtElementDefinitionManager.h:540
Record for an element definition (new type)
Definition: DtElementDefinitionRecord.h:90
std::vector< const DtElementDefinition * > ElementDefinitions
List of new element definitions.
Definition: DtElementDefinitionManager.h:92
DtModelSetId
Definition: DtModelSetEnums.h:19
Contains makVrv::DtIGLogger class.
DtRecordSettingsBackup< DtElementDefinitionManager, makArchives::DtElementsRecord > ElementDefinitionsBackup
Definition: DtElementDefinitionManager.h:532
The backup interface, is used by components to control backups of a state.
Definition: DtBackupInterface.h:19
Contains DLL export macros.
std::vector< ElementPair > ElementGroup
A group of element definition records, used for the following map.
Definition: DtElementDefinitionManager.h:440