VR-Forces 4.0.4 Class Documentation
include/vrfGuiObjectInformationQt/DtInformationDialogManager.h
Go to the documentation of this file.
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 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)