VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
informationDialogManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 
14 #include <boost/signals2.hpp>
15 
21 
24 
26 #include <vrvCore/DtUniqueID.h>
28 #include <vrvCore/DtStateView.h>
29 #include <vrvCore/DtEntityState.h>
31 
32 #include <vlpi/entityType.h>
33 
34 namespace makVrv
35 {
36  class DtDe;
37 }
38 
39 #define DtInformationDialogToken "ShowInformationDialog"
40 
41 namespace makVrf
42 {
43  class DtVrfStateViewCollectionManager;
44 
45  namespace makVrfGuiObjectInformationQt
46  {
51 
52  class DtInformationDialog;
54 
63  {
64  public:
65 
67  virtual ~DtInformationDialogManager();
68 
70  static DtInformationDialogManager& instance(makVrv::DtDe& de);
71 
72  public:
73  virtual void showDialogsFor(const makVrv::DtSelectionManager::IdSet&);
74  virtual void showDialogFor(const makVrv::DtUniqueID&);
75 
76  virtual void showInformationDialogFor(makVrv::DtUniqueID, const std::string& page);
77 
78  virtual void addDialogCreator(makVrv::DtElementEntry::ObjectType, const std::string&);
79 
81  virtual void addDialogCreator(const DtEntityType&, const std::string&);
82 
84  virtual void removeDialogCreator(const DtEntityType&);
85 
86  virtual bool hasDialogFor(const makVrv::DtSelectionManager::IdSet& idSet) const;
87  virtual bool hasDialogFor(const makVrv::DtUniqueID&) const;
88 
91  virtual DtInformationDialogWidgetSection* createDialogWidgetSection(makVrv::DtUniqueID);
92  virtual DtInformationDialogWidgetSection* createDialogWidgetSection(const std::string& creator,
94 
95  virtual std::string dialogCreatorForElementType(makVrv::DtElementEntry::ObjectType) const;
96  virtual std::string dialogCreatorFor(const DtEntityType&) const;
97  virtual std::string dialogCreatorFor(makVrv::DtUniqueID id) const;
98 
99  virtual DtVrfStateViewCollectionManager* stateViewCollectionManager() const;
100 
101  DtInformationPageConfiguration& informationPageConfiguration();
102  const DtInformationPageConfiguration& informationPageConfiguration() const;
103  DtInformationPageAssembler& informationPageAssembler();
104 
105  virtual DtInformationDialogPage* createPage(const std::string& pageName);
106 
108  virtual std::string pageForInformationItem(const std::string& item) const;
109 
112  createInformationDialog(const std::string& collection, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
113 
114  virtual void removeAllInformationDialogs();
115 
117  boost::signals2::signal<void (DtInformationDialogHandler*, const DtEntityType&)> signal_dialogAboutToBeCreated;
118 
120  boost::signals2::signal<void (DtInformationDialogHandler*, const DtEntityType&)> signal_dialogCreated;
121 
124 
127  virtual void addSelectedObjectInformationCreator(makVrv::DtElementEntry::ObjectType, const std::string&);
128 
130  virtual void addSelectedObjectInformationCreator(const DtEntityType&, const std::string&);
131 
133  virtual void removeSelectedObjectInformationCreator(const DtEntityType&);
134 
135  virtual bool hasSelectedObjectInformationFor(const makVrv::DtUniqueID&) const;
136 
137  virtual std::string selectedObjectInformationCreatorForElementType(makVrv::DtElementEntry::ObjectType) const;
138  virtual std::string selectedObjectInformationCreatorFor(const DtEntityType&) const;
139  virtual std::string selectedObjectInformationCreatorFor(makVrv::DtUniqueID id) const;
140 
142  virtual std::string proposedCreator(makVrv::DtUniqueID) const;
143  virtual DtInformationDialogWidgetSection* createSelectedObjectInformationWidgetSection(makVrv::DtUniqueID, const std::string& useCreator = "");
144  virtual DtInformationDialogWidgetSection* createSelectedObjectInformationWidgetSection(const std::string& creator,
147 
149  virtual void setMaximumSectionsPerDialog(int);
151  {
152  return myMaximumSectionsPerDialog;
153  }
154 
156  boost::signals2::signal<void ()> signal_informationDialogSetupComplete;
157 
158  protected:
159  virtual void scenarioRewinding();
160  virtual void slot_onStateAboutToBeRemoved(makVrv::DtSimObjectEntry&);
161 
162  virtual void slot_infoDialogDestroyed(DtInformationDialogHandler* dlg, const makVrv::DtUniqueID&, bool keepSettingsData = false);
163 
164  virtual void slot_guiInstalled(bool lockStage);
165 
166  virtual void scenarioEventConcluded(makVrv::DtUniqueID id);
167  virtual void multiSelectionDialogDestroyed(DtInformationDialogHandler*);
168  virtual void initializeConnections();
169 
170  virtual void slot_stateAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
171  virtual bool keepInformationDialogUpOnRewind(const std::string& content) const;
172 
173  virtual bool isExternalState(makVrv::DtUniqueID) const;
174 
175  protected:
176  typedef std::map<makVrv::DtElementEntry::ObjectType, std::string> DtDialogTypeCreatorList;
177 
181 
184 
185  std::map<makVrv::DtUniqueID, DtInformationDialogHandler*> myDialogs;
189 
190  typedef std::set<DtInformationSectionedDialog*> MultipleSelectionDialogs;
194  std::set<makVrv::DtUniqueID> mySimEntryAddedConnections;
195  boost::signals2::scoped_connection mySimEntryAddedConnection;
196  };
197  }
198 }
DtInformationPageAssembler myPageAssembler
Definition: informationDialogManager.h:188
boost::signals2::signal< void()> signal_informationDialogSetupComplete
Signal sent when setup is complete. After this signal is sent you can install your overrides for the ...
Definition: informationDialogManager.h:156
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signals2::signal< void(DtInformationDialogHandler *, const DtEntityType &)> signal_dialogAboutToBeCreated
Sent before any dialog initialization.
Definition: informationDialogManager.h:117
PageCollectionLocation
Definition: DtPageConfiguration.h:42
int myMaximumSectionsPerDialog
Definition: informationDialogManager.h:193
Definition: DtPageConfiguration.h:53
MultipleSelectionDialogs myMultipleSelectionDialogs
Definition: informationDialogManager.h:191
Contains makVrv:DtSelectionManager class.
Contains makVrv::DtStateView class.
std::set< makVrv::DtUniqueID > mySimEntryAddedConnections
Definition: informationDialogManager.h:194
This is the Qt specific implementation of the page assembler. Actual page creators must be registered...
Definition: informationPageAssembler.h:35
DtOrderedEntityTypeList< std::string * > mySelectedObjectInformationCreatorsByEntityType
Definition: informationDialogManager.h:183
std::map< makVrv::DtElementEntry::ObjectType, std::string > DtDialogTypeCreatorList
Definition: informationDialogManager.h:176
std::set< DtInformationSectionedDialog * > MultipleSelectionDialogs
Definition: informationDialogManager.h:190
unsigned int ObjectType
Definition: DtElementEntry.h:54
Contains makVrv::DtPageConfiguration class.
Contains makVrf::DtInformationPagePath class.
Contains makVrv::DtVirtualBaseClass class.
DtVrfStateViewCollectionManager * myStateViewCollectionManager
Definition: informationDialogManager.h:186
A DtSimObjectEntry is an entry for a persistent simulation object like an entity. ...
Definition: DtSimObjectEntry.h:22
Contains makVrv::DtSimObjectEntry class.
boost::signals2::scoped_connection mySimEntryAddedConnection
Definition: informationDialogManager.h:195
const makVrv::DtPageConfiguration::PageCollectionLocation DtInformationDialogWithoutObjectConsole
Definition: informationDialogManager.h:49
std::map< makVrv::DtUniqueID, DtInformationDialogHandler * > myDialogs
Definition: informationDialogManager.h:185
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtDialogTypeCreatorList myDialogCreators
Definition: informationDialogManager.h:179
Contains makVrv::DtVrlinkSimulatedEntityState class.
This class is the central point for looking up information about a particular object in the VRF GUI...
Definition: vrfStateViewCollectionManager.h:143
const makVrv::DtPageConfiguration::PageCollectionLocation DtInformationDialogWithObjectConsole
Definition: informationDialogManager.h:47
!!!!!
Definition: informationDialogHandler.h:147
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Base class to provide boost signal/slot management.
#define DT_DLL_VRFGUIOBJECTINFORMATIONQT
Contains DLL export macros.
Definition: vrfGuiObjectInformationQt.h:24
makVrv::DtDe & myDe
Definition: informationDialogManager.h:178
Definition: informationDialogWidgetSection.h:52
Contains DtInformationPageConfiguration class.
int maximumSectionsPerDialog() const
Definition: informationDialogManager.h:150
Contains makVrv::DtUniqueID type.
makVrv::DtSignalConnectionManager myConnections
Definition: informationDialogManager.h:192
Contains makVrfGuiObjectInformationQt::DtInformationPageAssembler class.
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
DtInformationPageConfiguration myPageConfiguration
Definition: informationDialogManager.h:187
boost::signals2::signal< void(DtInformationDialogHandler *, const DtEntityType &)> signal_dialogCreated
Sent after dialog has been fully initialized.
Definition: informationDialogManager.h:120
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
DtDialogTypeCreatorList mySelectedObjectInformationCreators
Definition: informationDialogManager.h:180
A configuration of the pages in the gui.
Definition: informationPageConfiguration.h:23
DtOrderedEntityTypeList< std::string * > myDialogCreatorsByEntityType
Definition: informationDialogManager.h:182

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)