![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00019 00020 #pragma once 00021 00022 #include <vrfGuiCore/vrfGuiCore.h> 00023 #include <vrfGuiCore/DtVrfStateViewCollectionManager.h> 00024 #include <vrfGuiCore/DtSpotReportState.h> 00025 00026 #include <vrvUtil/signalslib.h> 00027 #include <vrvCore/DtUniqueID.h> 00028 #include <vrvUtil/DtVirtualBaseClass.h> 00029 #include <vrvUtil/DtSignalConnectionManager.h> 00030 00031 #include <boost/bind.hpp> 00032 00033 namespace makVrv 00034 { 00035 class DtDe; 00036 } 00037 00038 namespace makVrf 00039 { 00040 class DtSpotReportVisualHandler; 00041 class DtSpotReportVisualHandlerCreatorInterface; 00042 00043 class DT_DLL_VRFGUICORE DtSpotReportVisualManager : public makVrv::DtVirtualBaseClass 00044 { 00045 public: 00046 00048 static DtSpotReportVisualManager& instance(makVrv::DtDe& de); 00049 00050 public: 00053 virtual void addSpotReportHandler(const std::string& s, DtSpotReportVisualHandlerCreatorInterface*); 00054 00055 virtual void removeSpotReportHandler(const std::string& s); 00056 00057 protected: 00058 virtual DtSpotReportVisualHandler* createSpotReportHandler(const std::string& s, makVrv::DtUniqueID) const; 00059 00062 virtual void slot_onStateViewAdded(const makVrv::DtStateView<DtSpotReportState>&); 00063 00067 virtual void slot_stateViewAboutToBeRemoved(const makVrv::DtStateView<DtSpotReportState>&); 00068 00070 virtual void slot_stateViewUpdated(makVrv::DtStateView<DtSpotReportState>*); 00071 00073 virtual void createSpotReportFor(const DtSpotReportState&, makVrv::DtUniqueID); 00074 00075 protected: 00077 DtSpotReportVisualManager(makVrv::DtDe& sim); 00078 00080 virtual ~DtSpotReportVisualManager(); 00081 00082 protected: 00083 typedef std::map<std::string, DtSpotReportVisualHandlerCreatorInterface*> SpotReportHandlerCreators; 00084 typedef std::map<makVrv::DtUniqueID, DtSpotReportVisualHandler*> SpotReportHandlers; 00085 00086 makVrv::DtDe& myDe; 00087 makVrv::DtSignalConnectionManager myConnections; 00088 SpotReportHandlerCreators mySpotReportHandlerCreators; 00089 SpotReportHandlers mySpotReportHandlers; 00090 }; 00091 }