VR-Exchange 2.6 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 }

Document ID: Generated on Wed Jan 30 18:15:18 EST 2019 from SVN revision 195534
Copyright © 2005-2019 VT MÄK. All Rights Reserved (www.mak.com)