![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: DtInformationDialogManager.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #pragma once 00015 00016 #include <vrvUtil/signalslib.h> 00017 00018 #include <vrfGuiCore/DtOrderedEntityTypeList.h> 00019 #include <vrfGuiObjectInformationQt/vrfGuiObjectInformationQt.h> 00020 #include <vrfGuiObjectInformationQt/DtInformationPagePath.h> 00021 #include <vrfGuiObjectInformationQt/DtInformationPageAssembler.h> 00022 #include <vrfGuiObjectInformationQt/DtInformationPageConfiguration.h> 00023 00024 #include <vrvUtil/DtVirtualBaseClass.h> 00025 00026 #include <vrvCore/DtSelectionManager.h> 00027 #include <vrvCore/DtUniqueID.h> 00028 #include <vrvCore/DtSimObjectEntry.h> 00029 #include <vrvCore/DtStateView.h> 00030 #include <vrvCore/DtEntityState.h> 00031 #include <vrvCore/DtPageConfiguration.h> 00032 00033 #include <vlpi/entityType.h> 00034 00035 namespace makVrv 00036 { 00037 class DtDe; 00038 } 00039 00040 namespace makVrf 00041 { 00042 class DtVrfStateViewCollectionManager; 00043 00044 namespace makVrfGuiObjectInformationQt 00045 { 00046 const makVrv::DtPageConfiguration::PageCollectionLocation DtInformationDialogWithObjectConsole = 00047 (makVrv::DtPageConfiguration::PageCollectionLocation)(makVrv::DtPageConfiguration::Location_End ); 00048 const makVrv::DtPageConfiguration::PageCollectionLocation DtInformationDialogWithoutObjectConsole = 00049 (makVrv::DtPageConfiguration::PageCollectionLocation)(makVrv::DtPageConfiguration::Location_End + 1 ); 00050 00051 class DtInformationDialog; 00052 00053 class DT_DLL_VRFGUIOBJECTINFORMATIONQT DtInformationDialogManager : public makVrv::DtVirtualBaseClass 00054 { 00055 public: 00056 00057 DtInformationDialogManager(makVrv::DtDe&); 00058 virtual ~DtInformationDialogManager(); 00059 00061 static DtInformationDialogManager& instance(makVrv::DtDe& de); 00062 00063 public: 00064 virtual void showDialogsFor(const makVrv::DtSelectionManager::IdSet&); 00065 virtual void showDialogFor(const makVrv::DtUniqueID&); 00066 00067 virtual void addDialogCreator(makVrv::DtElementEntry::ObjectType, const std::string&); 00068 00070 virtual void addDialogCreator(const DtEntityType&, const std::string&); 00071 00073 virtual void removeDialogCreator(const DtEntityType&); 00074 00075 virtual bool hasDialogFor(const makVrv::DtSelectionManager::IdSet& idSet) const; 00076 virtual bool hasDialogFor(const makVrv::DtUniqueID&) const; 00077 00078 std::string dialogCreatorFor(makVrv::DtElementEntry::ObjectType) const; 00079 std::string dialogCreatorFor(const DtEntityType&) const; 00080 00081 DtInformationPagePath& informationPagePath(); 00082 DtInformationPageConfiguration& informationPageConfiguration(); 00083 DtInformationPageAssembler& informationPageAssembler(); 00084 00086 virtual DtInformationDialog* createInformationDialog(const std::string& collection); 00087 00089 boost::signal<void (DtInformationDialog*, const DtEntityType&)> signal_dialogAboutToBeCreated; 00090 00092 boost::signal<void (DtInformationDialog*, const DtEntityType&)> signal_dialogCreated; 00093 00094 protected: 00095 virtual void slot_onStateAboutToBeRemoved(makVrv::DtSimObjectEntry&); 00096 00097 virtual void slot_infoDialogDestroyed(DtInformationDialog* dlg, const makVrv::DtUniqueID&); 00098 00099 protected: 00100 typedef std::map<makVrv::DtElementEntry::ObjectType, std::string> DtDialogTypeCreatorList; 00101 00102 makVrv::DtDe& myDe; 00103 DtDialogTypeCreatorList myDialogCreators; 00104 DtOrderedEntityTypeList<std::string*> myDialogCreatorsByEntityType; 00105 std::map<makVrv::DtUniqueID, DtInformationDialog*> myDialogs; 00106 DtVrfStateViewCollectionManager* myStateViewCollectionManager; 00107 DtInformationPagePath myPagePath; 00108 DtInformationPageConfiguration myPageConfiguration; 00109 DtInformationPageAssembler myPageAssembler; 00110 }; 00111 } 00112 }