VR-Exchange 2.7 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
pInteractionViewComponent.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2016 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <portalApp/dllExport.h>
13 #include <portal/pMessageKinds.h>
14 
15 #include <vlutil/vlString.h>
16 #include <vlutil/vlTime.h>
17 
18 #include <QtCore/QObject>
19 #include <QtCore/QPoint>
20 #include <QTreeWidget>
21 #include <QGroupBox>
22 
23 #include <vector>
24 #include <list>
25 #include <map>
26 
27 class QMenu;
28 class QTimer;
29 class QHeaderView;
30 
31 namespace MAKVrExchange
32 {
33 
34  class DtPortalAppGui;
35  class DtPortalConnection;
36  class DtPortalInteraction;
37  class DtColumnSelectionContextMenu;
38 
39  // Standard interactions:
40  class DtPortalFireInteraction;
41  class DtPortalGenericInteraction;
42  class DtPortalDetonationInteraction;
43  class DtPortalAcknowledgeInteraction;
44  class DtPortalCollisionInteraction;
45  class DtPortalCommentInteraction;
46  class DtPortalEventReportInteraction;
47  class DtPortalStartInteraction;
48  class DtPortalStopInteraction;
49  class DtPortalRadioSignalInteraction;
50  class DtPortalDataInteraction;
51  class DtPortalDataQueryInteraction;
52  class DtPortalSetDataInteraction;
53  class DtPortalCreateEntityInteraction;
54  class DtPortalRemoveEntityInteraction;
55  class DtPortalActionRequestInteraction;
56  class DtPortalActionResponseInteraction;
57  class DtPortalViewControlInteraction;
58  class DtPortalDamageAssessmentInteraction;
59 
60  // Logger Control interactions:
61  class DtPortalLoggerConnectInteraction;
62  class DtPortalLoggerDeleteFileInteraction;
63  class DtPortalLoggerEmptyInteraction;
64  class DtPortalLoggerEndInteraction;
65  class DtPortalLoggerEndOfActionInteraction;
66  class DtPortalLoggerHeartbeatInteraction;
67  class DtPortalLoggerPauseInteraction;
68  class DtPortalLoggerPlayActionInteraction;
69  class DtPortalLoggerPlayFileInteraction;
70  class DtPortalLoggerPlayInteraction;
71  class DtPortalLoggerQuitInteraction;
72  class DtPortalLoggerRecordActionInteraction;
73  class DtPortalLoggerRecordFileInteraction;
74  class DtPortalLoggerRecordInteraction;
75  class DtPortalLoggerSetTimeInteraction;
76  class DtPortalLoggerSkipTimeInteraction;
77  class DtPortalLoggerStartInteraction;
78  class DtPortalLoggerStateFlagInteraction;
79  class DtPortalLoggerStopInteraction;
80  class DtPortalLoggerTimeoutInteraction;
81  class DtPortalLoggerTimeScaleInteraction;
82  class DtPortalLoggerTotalStateInteraction;
83 
84  // VR-Forces interactions:
85  class DtPortalVrfChangeGlobalWeatherCommandInteraction;
86  class DtPortalVrfChangeTimeOfDayCommandInteraction;
87  class DtPortalVrfControlInteraction;
88  class DtPortalVrfCreateObjInteraction;
89  class DtPortalVrfCurrentResourceRequestInteraction;
90  class DtPortalVrfCurrentTasksInteraction;
91  class DtPortalVrfDeleteObjInteraction;
92  class DtPortalVrfEntityResourceResponseInteraction;
93  class DtPortalVrfResourceMonitorResponseInteraction;
94  class DtPortalVrfScenarioInteraction;
95  class DtPortalVrfScriptedTaskInteraction;
96  class DtPortalVrfTaskInteraction;
97  class DtPortalVrfSetDataInteraction;
98  class DtPortalVrfSkipTaskInteraction;
99  class DtPortalVrfSpotReportInteraction;
100  class DtPortalVrfTextReportInteraction;
101 
102  // VR-Vantage interactions:
103  class DtPortalVrvDynamicOceanInteraction;
104  class DtPortalVrvFollowViewInteraction;
105  class DtPortalVrvInputEventInteraction;
106  class DtPortalVrvKeyPressInteraction;
107  class DtPortalVrvMimicTrackViewInteraction;
108  class DtPortalVrvMimicViewInteraction;
109  class DtPortalVrvModelScaleFactorInteraction;
110  class DtPortalVrvModelScalingInteraction;
111  class DtPortalVrvModelSetInteraction;
112  class DtPortalVrvMouseEventInteraction;
113  class DtPortalVrvObserverModeInteraction;
114  class DtPortalVrvSensorModeInteraction;
115  class DtPortalVrvSetSystemStateInteraction;
116  class DtPortalVrvTetherViewInteraction;
117  class DtPortalVrvTimingSignalInteraction;
118  class DtPortalVrvTrackHistoriesInteraction;
119  class DtPortalVrvUseSavedViewInteraction;
120  class DtPortalVrvViewMagnificationInteraction;
121 
122 
128  { Q_OBJECT;
129  public:
130 
132  enum
133  {
134  TranslatorField = 0,
135  PublisherField = 1,
136  TimeReceivedField = 2,
137  DescriptionField = 3
138  };
139 
140  protected:
141 
142  typedef std::list<QTreeWidgetItem*> QTreeWidgetItemList;
143  typedef std::map<DtPortalMessageKind,DtU32> MessageKindToIntegerMap;
144  typedef std::map<DtPortalMessageKind,QTreeWidgetItem*> MessageKindToListViewItemMap;
145  typedef std::map<DtPortalMessageKind,QTreeWidgetItemList*> MessageKindToListViewItemListMap;
146 
147  public:
148 
150  static DtInteractionViewComponent* create( DtPortalConnection* pConn,
151  QWidget* parent );
152 
154  virtual ~DtInteractionViewComponent();
155 
157  virtual void clearInteractionList();
158 
160  virtual void resetStatistics();
161 
164  virtual void setMaxInteractionsToDisplay( int val );
165 
167  virtual void processInteraction( const DtPortalInteraction& inter,
168  const DtString& description );
169 
171  virtual void toggleShowInteractions( bool show );
172 
175  virtual const QTreeWidget* treeWidget() const;
176 
179  virtual QTreeWidget* treeWidget();
180 
181  protected slots:
182 
185  virtual void displayStatistics();
186 
187  protected:
188 
191 
194  virtual void initialize();
195 
197  virtual void setupGui();
198 
200  virtual void initStatistics();
201 
203  virtual void registerCallbacks();
204 
206  virtual void removeCallbacks();
207 
211  virtual void resizeEvent( QResizeEvent* event );
212 
223  bool eventFilter( QObject* target, QEvent* event );
224 
226  virtual void interactionHeaderRightButtonPressedCb( const QPoint& point );
227 
229  virtual void interactionRightButtonPressedCb( const QPoint& point );
230 
233  virtual void truncateList( QTreeWidgetItemList* lst );
234 
236  virtual QTreeWidgetItem* findQtGroupItem( const DtPortalInteraction& inter );
237  virtual QTreeWidgetItemList* findQtGroupList( const DtPortalInteraction& inter );
238 
240  virtual QString headerLabel( const QHeaderView* header, int section );
241 
242  protected:
243 
244  // Standard interaction callbacks:
245  static void fireCb( const DtPortalFireInteraction& inter, void* usr );
246  static void genericCb( const DtPortalGenericInteraction& inter, void* usr );
247  static void detonationCb( const DtPortalDetonationInteraction& inter, void* usr );
248  static void acknowledgeCb( const DtPortalAcknowledgeInteraction& interaction, void* usr );
249  static void collisionCb( const DtPortalCollisionInteraction& interaction, void* usr );
250  static void commentCb( const DtPortalCommentInteraction& interaction, void* usr );
251  static void eventReportCb( const DtPortalEventReportInteraction& interaction, void* usr );
252  static void startCb( const DtPortalStartInteraction& interaction, void* usr );
253  static void stopCb( const DtPortalStopInteraction& interaction, void* usr );
254  static void radioSignalCb( const DtPortalRadioSignalInteraction& interaction, void* usr );
255  static void dataCb( const DtPortalDataInteraction& interaction, void* usr );
256  static void dataQueryCb( const DtPortalDataQueryInteraction& interaction, void* usr );
257  static void setDataCb( const DtPortalSetDataInteraction& interaction, void* usr );
258  static void createEntityCb( const DtPortalCreateEntityInteraction& interaction, void* usr );
259  static void removeEntityCb( const DtPortalRemoveEntityInteraction& interaction, void* usr );
260  static void actionRequestCb( const DtPortalActionRequestInteraction& interaction, void* usr );
261  static void actionResponseCb( const DtPortalActionResponseInteraction& interaction, void* usr );
262  static void viewControlCb( const DtPortalViewControlInteraction& interaction, void* usr );
263  static void damageAssessmentCb(const DtPortalDamageAssessmentInteraction& inter, void* usr );
264 
265  // Logger Control interaction callbacks:
266  static void loggerConnectCb(const DtPortalLoggerConnectInteraction& interaction, void* usr);
267  static void loggerDeleteCb( const DtPortalLoggerDeleteFileInteraction& interaction, void* usr );
268  static void loggerEmptyCb( const DtPortalLoggerEmptyInteraction& interaction, void* usr );
269  static void loggerEndCb( const DtPortalLoggerEndInteraction& interaction, void* usr );
270  static void loggerEndOfActionCb( const DtPortalLoggerEndOfActionInteraction& interaction, void* usr );
271  static void loggerHeartbeatCb( const DtPortalLoggerHeartbeatInteraction& interaction, void* usr );
272  static void loggerPauseCb( const DtPortalLoggerPauseInteraction& interaction, void* usr );
273  static void loggerPlayActionCb( const DtPortalLoggerPlayActionInteraction& interaction, void* usr );
274  static void loggerPlayFileCb( const DtPortalLoggerPlayFileInteraction& interaction, void* usr );
275  static void loggerPlayCb( const DtPortalLoggerPlayInteraction& interaction, void* usr );
276  static void loggerQuitCb( const DtPortalLoggerQuitInteraction& interaction, void* usr );
277  static void loggerRecordActionCb( const DtPortalLoggerRecordActionInteraction& interaction, void* usr );
278  static void loggerRecordFileCb( const DtPortalLoggerRecordFileInteraction& interaction, void* usr );
279  static void loggerRecordCb( const DtPortalLoggerRecordInteraction& interaction, void* usr );
280  static void loggerSetTimeCb( const DtPortalLoggerSetTimeInteraction& interaction, void* usr );
281  static void loggerSkipTimeCb( const DtPortalLoggerSkipTimeInteraction& interaction, void* usr );
282  static void loggerStartCb( const DtPortalLoggerStartInteraction& interaction, void* usr );
283  static void loggerStateFlagCb( const DtPortalLoggerStateFlagInteraction& interaction, void* usr );
284  static void loggerStopCb( const DtPortalLoggerStopInteraction& interaction, void* usr );
285  static void loggerTimeoutCb( const DtPortalLoggerTimeoutInteraction& interaction, void* usr );
286  static void loggerTimeScaleCb( const DtPortalLoggerTimeScaleInteraction& interaction, void* usr );
287  static void loggerTotalStateCb( const DtPortalLoggerTotalStateInteraction& interaction, void* usr );
288 
289  // VR-Forces interaction callbacks:
290  static void vrfChangeGlobalWeatherCb( const DtPortalVrfChangeGlobalWeatherCommandInteraction& interaction, void* usr );
291  static void vrfChangeTimeOfDayCb( const DtPortalVrfChangeTimeOfDayCommandInteraction& interaction, void* usr );
292  static void vrfControlInteractionCb( const DtPortalVrfControlInteraction& interaction, void* usr );
293  static void vrfCreateObjCb( const DtPortalVrfCreateObjInteraction& interaction, void* usr );
294  static void vrfCurrentResourceRequestCb( const DtPortalVrfCurrentResourceRequestInteraction& interaction, void* usr );
295  static void vrfCurrentTasksCb( const DtPortalVrfCurrentTasksInteraction& interaction, void* usr );
296  static void vrfDeleteObjCb( const DtPortalVrfDeleteObjInteraction& interaction, void* usr );
297  static void vrfEntityResourceResponseCb( const DtPortalVrfEntityResourceResponseInteraction& interaction, void* usr );
298  static void vrfResourceMonitorResponseCb( const DtPortalVrfResourceMonitorResponseInteraction& interaction, void* usr );
299  static void vrfScenarioInteractionCb( const DtPortalVrfScenarioInteraction& interaction, void* usr );
300  static void vrfScriptedTaskCb(const DtPortalVrfScriptedTaskInteraction& interaction, void* usr);
301  static void vrfTaskCb(const DtPortalVrfTaskInteraction& interaction, void* usr);
302  static void vrfSetDataInteractionCb( const DtPortalVrfSetDataInteraction& interaction, void* usr );
303  static void vrfSkipTaskInteractionCb( const DtPortalVrfSkipTaskInteraction& interaction, void* usr );
304  static void vrfSpotReportInteractionCb( const DtPortalVrfSpotReportInteraction& interaction, void* usr );
305  static void vrfTextReportInteractionCb( const DtPortalVrfTextReportInteraction& interaction, void* usr );
306 
307  // VR-Vantage interaction callbacks:
308  static void vrvDynamicOceanCb( const DtPortalVrvDynamicOceanInteraction& interaction, void* usr );
309  static void vrvFollowViewCb( const DtPortalVrvFollowViewInteraction& interaction, void* usr );
310  static void vrvInputEventCb( const DtPortalVrvInputEventInteraction& interaction, void* usr );
311  static void vrvKeyPressCb( const DtPortalVrvKeyPressInteraction& interaction, void* usr );
312  static void vrvMimicTrackViewCb( const DtPortalVrvMimicTrackViewInteraction& interaction, void* usr );
313  static void vrvMimicViewCb( const DtPortalVrvMimicViewInteraction& interaction, void* usr );
314  static void vrvModelScaleFactorCb( const DtPortalVrvModelScaleFactorInteraction& interaction, void* usr );
315  static void vrvModelScalingCb( const DtPortalVrvModelScalingInteraction& interaction, void* usr );
316  static void vrvModelSetCb( const DtPortalVrvModelSetInteraction& interaction, void* usr );
317  static void vrvMouseEventCb( const DtPortalVrvMouseEventInteraction& interaction, void* usr );
318  static void vrvObserverModeCb( const DtPortalVrvObserverModeInteraction& interaction, void* usr );
319  static void vrvSensorModeCb( const DtPortalVrvSensorModeInteraction& interaction, void* usr );
320  static void vrvSetSystemStateCb( const DtPortalVrvSetSystemStateInteraction& interaction, void* usr );
321  static void vrvTetherViewCb( const DtPortalVrvTetherViewInteraction& interaction, void* usr );
322  static void vrvTimingSignalCb( const DtPortalVrvTimingSignalInteraction& interaction, void* usr );
323  static void vrvTrackHistoriesCb( const DtPortalVrvTrackHistoriesInteraction& interaction, void* usr );
324  static void vrvUseSavedViewCb( const DtPortalVrvUseSavedViewInteraction& interaction, void* usr );
325  static void vrvViewMagnificationCb( const DtPortalVrvViewMagnificationInteraction& interaction, void* usr );
326 
327  private:
328 
331 
333  DtInteractionViewComponent& operator = ( const DtInteractionViewComponent& orig );
334 
335  protected:
336 
337  enum
338  {
339  ClearInteractions = 1
340  } InteractionPopupMenuPosition;
341 
342  protected:
343 
347 
349 
354  QTreeWidget* myTreeWidget;
359  std::vector<int> myListViewColumnSize;
360 
361  };
362 
363 }
Represents a weapon create entity event.
Definition: pRemoveEntityInter.h:28
Represents a battle damage assessment event.
Definition: pDamageAssessmentInter.h:28
DtTime myInitialTime
Definition: pInteractionViewComponent.h:352
Portal Data Interaction class.
Definition: pDataInter.h:21
QAction * myCollapseAllAction
Definition: pInteractionViewComponent.h:358
Vrf Scenario Interaction class.
Definition: pVrfScenario.h:23
Represents a logger Heartbeat File event.
Definition: pLoggerHeartbeatInteraction.h:26
Represents a weapon createentity event.
Definition: pCreateEntityInter.h:28
Vrv Model Scaling Interaction class.
Definition: pVrvModelScaling.h:22
std::map< DtPortalMessageKind, QTreeWidgetItemList * > MessageKindToListViewItemListMap
Definition: pInteractionViewComponent.h:145
Represents a logger RecordAction event.
Definition: pLoggerRecordActionInteraction.h:26
Represents a logger Delete File event.
Definition: pLoggerDeleteFileInteraction.h:26
Vrf Current Tasks Interaction class.
Definition: pVrfCurrentTasks.h:22
A Interaction class to handle unknown HLA attributes.
Definition: pGenericInter.h:26
Represents a logger Timeout event.
Definition: pLoggerTimeoutInteraction.h:26
Portal Action Response Interaction class.
Definition: pActionResponseInter.h:21
Vrv KeyPress Interaction class.
Definition: pVrvKeyPress.h:22
std::map< DtPortalMessageKind, QTreeWidgetItem * > MessageKindToListViewItemMap
Definition: pInteractionViewComponent.h:144
Represents a weapon fire event.
Definition: pViewControlInter.h:117
Vrf Resource Monitor Response Interaction class.
Definition: pVrfResourceMonResponse.h:22
Vrv View Magnification Interaction class.
Definition: pVrvViewMagnification.h:21
Portal Comment Interaction class.
Definition: pCommentInter.h:21
MessageKindToListViewItemMap myListViewGroupMap
Definition: pInteractionViewComponent.h:344
Vrv Video Latency Signal interaction class.
Definition: pVrvTimingSignal.h:22
Vrv Dynamic Ocean Interaction class.
Definition: pVrvDynamicOcean.h:22
Responsible for the display of Interactions received from the Portal on the VR-Exchange GUI...
Definition: pInteractionViewComponent.h:127
Vrv InputEvent Interaction class.
Definition: pVrvInputEvent.h:23
Represents a logger RecordFile event.
Definition: pLoggerRecordFileInteraction.h:26
Portal Start Interaction class.
Definition: pStartInter.h:21
Vrv Model Set Interaction class.
Definition: pVrvModelSet.h:22
Vrv Model Scale Factor Interaction class.
Definition: pVrvModelScaleFactor.h:22
Represents a weapon fire event.
Definition: pFireInter.h:28
Represents a logger Stop File event.
Definition: pLoggerStopInteraction.h:26
Portal Stop Interaction class.
Definition: pStopInter.h:21
Represents a logger TimeScale event.
Definition: pLoggerTimeScaleInteraction.h:26
Represents a logger PlayFile event.
Definition: pLoggerPlayFileInteraction.h:26
DtPortalInteractions are a special type of DtPortalMessages which are used to transmit simulation dat...
Definition: pInteraction.h:21
Vrf Scripted Task Interaction class.
Definition: pVrfTask.h:22
std::list< QTreeWidgetItem * > QTreeWidgetItemList
Definition: pInteractionViewComponent.h:142
Vrv Mimic Track View Interaction class.
Definition: pVrvMimicTrackView.h:22
Portal Action Request Interaction class.
Definition: pActionRequestInter.h:21
Vrf Entity Resource Response Interaction class.
Definition: pVrfEntityResourceResponse.h:23
Vrv Track Histories Interaction class.
Definition: pVrvTrackHistories.h:22
Represents a logger StateFlag event.
Definition: pLoggerStateFlagInteraction.h:26
#define DT_DLL_LIBPORTALAPP
Definition: include/portalApp/dllExport.h:20
Vrf Text Report Interaction class.
Definition: pVrfTextReport.h:22
Represents a logger Start event.
Definition: pLoggerStartInteraction.h:26
Vrf Change Time Of Day Interaction class.
Definition: pVrfChangeTimeOfDayCommand.h:22
Represents a logger PlayAction event.
Definition: pLoggerPlayActionInteraction.h:26
Vrv Mimic View Interaction class.
Definition: pVrvUseSavedView.h:23
Represents a logger Record event.
Definition: pLoggerRecordInteraction.h:26
Vrf CreateObj Interaction class.
Definition: pVrfCreateObj.h:22
Represents a logger End event.
Definition: pLoggerEndInteraction.h:26
Portal Acknowledge Interaction class.
Definition: pAcknowledgeInter.h:21
Vrv Sensor Mode Interaction class.
Definition: pVrvSensorMode.h:22
bool myShowInteractionsFlag
Definition: pInteractionViewComponent.h:351
Portal Radio Signal Interaction class.
Definition: pRadioSignalInter.h:21
Portal Collision Interaction class.
Definition: pCollisionInter.h:21
Represents a logger Empty event.
Definition: pLoggerEmptyInteraction.h:26
Vrf Scripted Task Interaction class.
Definition: pVrfScriptedTask.h:22
Portal Event Report Interaction class.
Definition: pEventReportInter.h:21
Vrv Mimic View Interaction class.
Definition: pVrvMimicView.h:22
Represents a munition detonation event.
Definition: pDetonationInter.h:27
Represents a logger Play event.
Definition: pLoggerPlayInteraction.h:26
Represents a logger Quit event.
Definition: pLoggerQuitInteraction.h:26
Represents a logger SetTime event.
Definition: pLoggerSetTimeInteraction.h:26
QMenu * myInteractionPopupMenu
Definition: pInteractionViewComponent.h:356
Represents a logger EndOfAction event.
Definition: pLoggerEndOfActionInteraction.h:26
Represents a logger Pause event.
Definition: pLoggerPauseInteraction.h:26
Portal Start Interaction class.
Definition: pVrfSpotReport.h:21
Vrv Observer Mode Interaction class.
Definition: pVrvObserverMode.h:22
Vrv MouseEvent Interaction class.
Definition: pVrvMouseEvent.h:22
Represents a logger TotalState event.
Definition: pLoggerTotalStateInteraction.h:26
Vrf Set Data Interaction class.
Definition: pVrvSetSystemState.h:35
Vrf Current Resource Request Interaction class.
Definition: pVrfCurrentResourceReq.h:22
Represents a logger Connect event.
Definition: pLoggerConnectInteraction.h:26
Contains the DtPortalMessageKind type enumerations.
Vrf CreateObj Interaction class.
Definition: pVrfDeleteObj.h:22
Represents a logger SkipTime event.
Definition: pLoggerSkipTimeInteraction.h:26
Vrv Tether View Interaction class.
Definition: pVrvTetherView.h:22
Connects a broker to the Portal Data Exchange.
Definition: pConnection.h:49
Vrf Change Global Weather Command Interaction class.
Definition: pVrfChangeGlobalWeatherCommand.h:34
QTimer * myStatisticsTimer
Definition: pInteractionViewComponent.h:348
Menu for configuring the columns displayed in a QTreeWidget.
Definition: columnSelectionContextMenu.h:22
Portal Set Data Interaction class.
Definition: pSetDataInter.h:21
MessageKindToListViewItemListMap myListViewItemListMap
Definition: pInteractionViewComponent.h:346
std::vector< int > myListViewColumnSize
Definition: pInteractionViewComponent.h:359
MessageKindToIntegerMap myInteractionCountMap
Definition: pInteractionViewComponent.h:345
Vrv Follow View Interaction class.
Definition: pVrvFollowView.h:22
DtColumnSelectionContextMenu * myHeaderPopupMenu
Definition: pInteractionViewComponent.h:355
Vrf Set Data Interaction class.
Definition: pVrfSetData.h:21
Vrf CreateObj Interaction class.
Definition: pVrfSkipTask.h:22
int myMaxInteractionCount
Definition: pInteractionViewComponent.h:350
std::map< DtPortalMessageKind, DtU32 > MessageKindToIntegerMap
Definition: pInteractionViewComponent.h:143
QTreeWidget * myTreeWidget
Definition: pInteractionViewComponent.h:354
Vrf Control Interaction class.
Definition: pVrfControl.h:22
Portal Data Query Interaction class.
Definition: pDataQueryInter.h:21
DtPortalConnection * myPConn
Definition: pInteractionViewComponent.h:353
QAction * myExpandAllAction
Definition: pInteractionViewComponent.h:357

Document ID: Generated on Mon Apr 19 15:55:22 EDT 2021 from SVN revision 227909
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)