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);
338 virtual void getSplitRecord(std::vector<makArchives::DtElementsRecord>& rec, std::vector<std::string>& fileNames);
351 virtual void setAutoSave(
bool enabled);
357 virtual bool validateElementAttribute(
const DtVisualizerDefinition::SortedAttributeMap::iterator& attr);
363 virtual bool canUseHierLeaf();
366 virtual bool modifiedSinceStartup();
369 virtual void resetModifiedSinceStartupFlag();
384 virtual void resetModifiedFlags();
396 virtual std::string getModelSetDisplayName(
DtModelSetId modelSet)
const;
399 virtual void removeElementFromChangeMaps(
const DtUnicode& definitionName);
405 virtual void getChangedFiles(std::vector<std::string>& changedFiles,
DefinitionFileType fileType);
427 typedef std::pair < std::string, const makArchives::DtElementDefinitionRecord*>
ElementPair;
450 virtual void registerBackup();
471 virtual bool isEntityDefinitions()
const;
474 virtual bool isTacticalGraphicsDefinitions()
const;
477 virtual bool isUnitDefinitions()
const;
481 virtual void checkDefinitionName(
const DtUnicode& definitionName);
487 virtual void logWarning(
const std::string& message);
490 virtual void getFilesFromDefinitionMap(
const DefinitionMap& defMap, std::set<std::string>& changedFiles);
509 virtual void convertLeafToUuid(
const std::vector<makArchives::DtVisualizerDefinitionRecord>& visualizerDefinitionRecords,
544 bool myConvertWarningsToInfo =
false;
606 virtual void registerElementType(ElementDefinitionType type,
607 const std::string& name,
const DtUnicode& typeScreenName,
608 bool proceduralOnly);
622 ElementDefinitionType type)
const;
625 virtual void loadDefaults();
633 template <
typename ManagerClass>
637 template <
typename ManagerClass>
657 typedef std::unordered_map<unsigned int, DtElementDefinitionManager*>
679 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:410
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:562
ElementDefinitionsBackup * myBackup
Definition: DtElementDefinitionManager.h:538
DtDe * myOptionalDe
Definition: DtElementDefinitionManager.h:532
std::string myHierName
Definition: DtElementDefinitionManager.h:528
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:669
DefinitionFileType
Definition: DtElementDefinitionManager.h:76
Definition: DtElementDefinitionManager.h:569
std::string myName
Definition: DtElementDefinitionManager.h:526
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:435
bool myConvertingHierarchy
Definition: DtElementDefinitionManager.h:541
std::multimap< const std::string, DtVisualizerDefinition * >::const_iterator ConstParentSchemaDataInterator
Remove all elements from a definition map.
Definition: DtElementDefinitionManager.h:514
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:661
Manager which owns element definitions.for one type of element Use the makVrv::DtElementDefinitionTyp...
Definition: DtElementDefinitionManager.h:73
DefinitionMap myAddedDefinitions
Definition: DtElementDefinitionManager.h:540
The makVrv::DtRecordSettingsBackup is a templaced class that settings records will use in order to ba...
Definition: DtRecordSettingsBackup.h:100
Definition: DtElementDefinitionManager.h:565
The element type manager is responsible for knowing about the types of elements as well as owning the...
Definition: DtElementDefinitionManager.h:551
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:557
Definition: DtElementDefinitionManager.h:567
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:527
Definition: DtElementDefinitionManager.h:568
std::unordered_map< unsigned int, DtElementDefinitionManager * > ManagerMap
Definition: DtElementDefinitionManager.h:658
Definition: DtElementDefinitionManager.h:564
VisualizerDefinitionValidatorMap myValidators
Definition: DtElementDefinitionManager.h:524
std::string myLeafName
Definition: DtElementDefinitionManager.h:529
std::multimap< const std::string, DtVisualizerDefinition * > ParentSchemaDataMap
Remove all elements from a definition map.
Definition: DtElementDefinitionManager.h:512
#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:660
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DefinitionMap myModifiedDefinitions
Definition: DtElementDefinitionManager.h:539
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:879
Definition: DtElementDefinitionManager.h:566
bool myAutoSave
Definition: DtElementDefinitionManager.h:536
ManagerMap myManagers
Definition: DtElementDefinitionManager.h:662
DefinitionMap myDefinitions
Definition: DtElementDefinitionManager.h:533
boost::signalslib::signal< void(const DtUnicode &oldName, const DtUnicode &newName)> signal_elementRenamed
Definition: DtElementDefinitionManager.h:680
Record containing a collection of element definition records.
Definition: DtElementsRecord.h:17
bool myProceduralFlag
Definition: DtElementDefinitionManager.h:535
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:520
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:841
std::multimap< const std::string, DtVisualizerDefinition * >::iterator ParentSchemaDataInterator
Remove all elements from a definition map.
Definition: DtElementDefinitionManager.h:513
boost::unordered_map< std::string, std::string > myDefinitionNameCheck
Definition: DtElementDefinitionManager.h:534
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:427
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:72
Definition: DtElementDefinitionManager.h:570
Record for a visualizer definition Designed to fit into a visualizer definition set record...
Definition: DtVisualizerDefinitionRecord.h:18
DefinitionMap myDeletedDefinitions
Definition: DtElementDefinitionManager.h:542
DtUnicode myScreenName
Definition: DtElementDefinitionManager.h:530
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:522
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:430