VR-Exchange 2.5 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 <QtGui/QTreeWidget>
16 #include <QtGui/QGroupBox>
17 #include <QtCore/QObject>
18 #include <QtCore/QPoint>
19 
20 #include <vlutil/vlString.h>
21 #include <vlutil/vlTime.h>
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 DtPortalLoggerDeleteFileInteraction;
62  class DtPortalLoggerEmptyInteraction;
63  class DtPortalLoggerEndInteraction;
64  class DtPortalLoggerEndOfActionInteraction;
65  class DtPortalLoggerHeartbeatInteraction;
66  class DtPortalLoggerPauseInteraction;
67  class DtPortalLoggerPlayActionInteraction;
68  class DtPortalLoggerPlayFileInteraction;
69  class DtPortalLoggerPlayInteraction;
70  class DtPortalLoggerQuitInteraction;
71  class DtPortalLoggerRecordActionInteraction;
72  class DtPortalLoggerRecordFileInteraction;
73  class DtPortalLoggerRecordInteraction;
74  class DtPortalLoggerSetTimeInteraction;
75  class DtPortalLoggerSkipTimeInteraction;
76  class DtPortalLoggerStartInteraction;
77  class DtPortalLoggerStateFlagInteraction;
78  class DtPortalLoggerStopInteraction;
79  class DtPortalLoggerTimeoutInteraction;
80  class DtPortalLoggerTimeScaleInteraction;
81  class DtPortalLoggerTotalStateInteraction;
82 
83  // VR-Forces interactions:
84  class DtPortalVrfChangeGlobalWeatherCommandInteraction;
85  class DtPortalVrfChangeTimeOfDayCommandInteraction;
86  class DtPortalVrfControlInteraction;
87  class DtPortalVrfCreateObjInteraction;
88  class DtPortalVrfCurrentResourceRequestInteraction;
89  class DtPortalVrfCurrentTasksInteraction;
90  class DtPortalVrfDeleteObjInteraction;
91  class DtPortalVrfEntityResourceResponseInteraction;
92  class DtPortalVrfResourceMonitorResponseInteraction;
93  class DtPortalVrfScenarioInteraction;
94  class DtPortalVrfScriptedTaskInteraction;
95  class DtPortalVrfSetDataInteraction;
96  class DtPortalVrfSkipTaskInteraction;
97  class DtPortalVrfSpotReportInteraction;
98  class DtPortalVrfTextReportInteraction;
99 
100  // VR-Vantage interactions:
101  class DtPortalVrvDynamicOceanInteraction;
102  class DtPortalVrvFollowViewInteraction;
103  class DtPortalVrvInputEventInteraction;
104  class DtPortalVrvKeyPressInteraction;
105  class DtPortalVrvMimicTrackViewInteraction;
106  class DtPortalVrvMimicViewInteraction;
107  class DtPortalVrvModelScaleFactorInteraction;
108  class DtPortalVrvModelScalingInteraction;
109  class DtPortalVrvModelSetInteraction;
110  class DtPortalVrvMouseEventInteraction;
111  class DtPortalVrvObserverModeInteraction;
112  class DtPortalVrvSensorModeInteraction;
113  class DtPortalVrvSetSystemStateInteraction;
114  class DtPortalVrvTetherViewInteraction;
115  class DtPortalVrvTimingSignalInteraction;
116  class DtPortalVrvTrackHistoriesInteraction;
117  class DtPortalVrvUseSavedViewInteraction;
118  class DtPortalVrvViewMagnificationInteraction;
119 
120 
126  { Q_OBJECT;
127  public:
128 
130  enum
131  {
132  TranslatorField = 0,
133  PublisherField = 1,
134  TimeReceivedField = 2,
135  DescriptionField = 3
136  };
137 
138  protected:
139 
140  typedef std::list<QTreeWidgetItem*> QTreeWidgetItemList;
141  typedef std::map<DtPortalMessageKind,DtU32> MessageKindToIntegerMap;
142  typedef std::map<DtPortalMessageKind,QTreeWidgetItem*> MessageKindToListViewItemMap;
143  typedef std::map<DtPortalMessageKind,QTreeWidgetItemList*> MessageKindToListViewItemListMap;
144 
145  public:
146 
148  static DtInteractionViewComponent* create( DtPortalConnection* pConn,
149  QWidget* parent );
150 
152  virtual ~DtInteractionViewComponent();
153 
155  virtual void clearInteractionList();
156 
158  virtual void resetStatistics();
159 
162  virtual void setMaxInteractionsToDisplay( int val );
163 
165  virtual void processInteraction( const DtPortalInteraction& inter,
166  const DtString& description );
167 
169  virtual void toggleShowInteractions( bool show );
170 
173  virtual const QTreeWidget* treeWidget() const;
174 
177  virtual QTreeWidget* treeWidget();
178 
179  protected slots:
180 
183  virtual void displayStatistics();
184 
185  protected:
186 
189 
192  virtual void initialize();
193 
195  virtual void setupGui();
196 
198  virtual void initStatistics();
199 
201  virtual void registerCallbacks();
202 
204  virtual void removeCallbacks();
205 
209  virtual void resizeEvent( QResizeEvent* event );
210 
221  bool eventFilter( QObject* target, QEvent* event );
222 
224  virtual void interactionHeaderRightButtonPressedCb( const QPoint& point );
225 
227  virtual void interactionRightButtonPressedCb( const QPoint& point );
228 
231  virtual void truncateList( QTreeWidgetItemList* lst );
232 
234  virtual QTreeWidgetItem* findQtGroupItem( const DtPortalInteraction& inter );
235  virtual QTreeWidgetItemList* findQtGroupList( const DtPortalInteraction& inter );
236 
238  virtual QString headerLabel( const QHeaderView* header, int section );
239 
240  protected:
241 
242  // Standard interaction callbacks:
243  static void fireCb( const DtPortalFireInteraction& inter, void* usr );
244  static void genericCb( const DtPortalGenericInteraction& inter, void* usr );
245  static void detonationCb( const DtPortalDetonationInteraction& inter, void* usr );
246  static void acknowledgeCb( const DtPortalAcknowledgeInteraction& interaction, void* usr );
247  static void collisionCb( const DtPortalCollisionInteraction& interaction, void* usr );
248  static void commentCb( const DtPortalCommentInteraction& interaction, void* usr );
249  static void eventReportCb( const DtPortalEventReportInteraction& interaction, void* usr );
250  static void startCb( const DtPortalStartInteraction& interaction, void* usr );
251  static void stopCb( const DtPortalStopInteraction& interaction, void* usr );
252  static void radioSignalCb( const DtPortalRadioSignalInteraction& interaction, void* usr );
253  static void dataCb( const DtPortalDataInteraction& interaction, void* usr );
254  static void dataQueryCb( const DtPortalDataQueryInteraction& interaction, void* usr );
255  static void setDataCb( const DtPortalSetDataInteraction& interaction, void* usr );
256  static void createEntityCb( const DtPortalCreateEntityInteraction& interaction, void* usr );
257  static void removeEntityCb( const DtPortalRemoveEntityInteraction& interaction, void* usr );
258  static void actionRequestCb( const DtPortalActionRequestInteraction& interaction, void* usr );
259  static void actionResponseCb( const DtPortalActionResponseInteraction& interaction, void* usr );
260  static void viewControlCb( const DtPortalViewControlInteraction& interaction, void* usr );
261  static void damageAssessmentCb(const DtPortalDamageAssessmentInteraction& inter, void* usr );
262 
263  // Logger Control interaction callbacks:
264  static void loggerDeleteCb( const DtPortalLoggerDeleteFileInteraction& interaction, void* usr );
265  static void loggerEmptyCb( const DtPortalLoggerEmptyInteraction& interaction, void* usr );
266  static void loggerEndCb( const DtPortalLoggerEndInteraction& interaction, void* usr );
267  static void loggerEndOfActionCb( const DtPortalLoggerEndOfActionInteraction& interaction, void* usr );
268  static void loggerHeartbeatCb( const DtPortalLoggerHeartbeatInteraction& interaction, void* usr );
269  static void loggerPauseCb( const DtPortalLoggerPauseInteraction& interaction, void* usr );
270  static void loggerPlayActionCb( const DtPortalLoggerPlayActionInteraction& interaction, void* usr );
271  static void loggerPlayFileCb( const DtPortalLoggerPlayFileInteraction& interaction, void* usr );
272  static void loggerPlayCb( const DtPortalLoggerPlayInteraction& interaction, void* usr );
273  static void loggerQuitCb( const DtPortalLoggerQuitInteraction& interaction, void* usr );
274  static void loggerRecordActionCb( const DtPortalLoggerRecordActionInteraction& interaction, void* usr );
275  static void loggerRecordFileCb( const DtPortalLoggerRecordFileInteraction& interaction, void* usr );
276  static void loggerRecordCb( const DtPortalLoggerRecordInteraction& interaction, void* usr );
277  static void loggerSetTimeCb( const DtPortalLoggerSetTimeInteraction& interaction, void* usr );
278  static void loggerSkipTimeCb( const DtPortalLoggerSkipTimeInteraction& interaction, void* usr );
279  static void loggerStartCb( const DtPortalLoggerStartInteraction& interaction, void* usr );
280  static void loggerStateFlagCb( const DtPortalLoggerStateFlagInteraction& interaction, void* usr );
281  static void loggerStopCb( const DtPortalLoggerStopInteraction& interaction, void* usr );
282  static void loggerTimeoutCb( const DtPortalLoggerTimeoutInteraction& interaction, void* usr );
283  static void loggerTimeScaleCb( const DtPortalLoggerTimeScaleInteraction& interaction, void* usr );
284  static void loggerTotalStateCb( const DtPortalLoggerTotalStateInteraction& interaction, void* usr );
285 
286  // VR-Forces interaction callbacks:
287  static void vrfChangeGlobalWeatherCb( const DtPortalVrfChangeGlobalWeatherCommandInteraction& interaction, void* usr );
288  static void vrfChangeTimeOfDayCb( const DtPortalVrfChangeTimeOfDayCommandInteraction& interaction, void* usr );
289  static void vrfControlInteractionCb( const DtPortalVrfControlInteraction& interaction, void* usr );
290  static void vrfCreateObjCb( const DtPortalVrfCreateObjInteraction& interaction, void* usr );
291  static void vrfCurrentResourceRequestCb( const DtPortalVrfCurrentResourceRequestInteraction& interaction, void* usr );
292  static void vrfCurrentTasksCb( const DtPortalVrfCurrentTasksInteraction& interaction, void* usr );
293  static void vrfDeleteObjCb( const DtPortalVrfDeleteObjInteraction& interaction, void* usr );
294  static void vrfEntityResourceResponseCb( const DtPortalVrfEntityResourceResponseInteraction& interaction, void* usr );
295  static void vrfResourceMonitorResponseCb( const DtPortalVrfResourceMonitorResponseInteraction& interaction, void* usr );
296  static void vrfScenarioInteractionCb( const DtPortalVrfScenarioInteraction& interaction, void* usr );
297  static void vrfScriptedTaskCb( const DtPortalVrfScriptedTaskInteraction& interaction, void* usr );
298  static void vrfSetDataInteractionCb( const DtPortalVrfSetDataInteraction& interaction, void* usr );
299  static void vrfSkipTaskInteractionCb( const DtPortalVrfSkipTaskInteraction& interaction, void* usr );
300  static void vrfSpotReportInteractionCb( const DtPortalVrfSpotReportInteraction& interaction, void* usr );
301  static void vrfTextReportInteractionCb( const DtPortalVrfTextReportInteraction& interaction, void* usr );
302 
303  // VR-Vantage interaction callbacks:
304  static void vrvDynamicOceanCb( const DtPortalVrvDynamicOceanInteraction& interaction, void* usr );
305  static void vrvFollowViewCb( const DtPortalVrvFollowViewInteraction& interaction, void* usr );
306  static void vrvInputEventCb( const DtPortalVrvInputEventInteraction& interaction, void* usr );
307  static void vrvKeyPressCb( const DtPortalVrvKeyPressInteraction& interaction, void* usr );
308  static void vrvMimicTrackViewCb( const DtPortalVrvMimicTrackViewInteraction& interaction, void* usr );
309  static void vrvMimicViewCb( const DtPortalVrvMimicViewInteraction& interaction, void* usr );
310  static void vrvModelScaleFactorCb( const DtPortalVrvModelScaleFactorInteraction& interaction, void* usr );
311  static void vrvModelScalingCb( const DtPortalVrvModelScalingInteraction& interaction, void* usr );
312  static void vrvModelSetCb( const DtPortalVrvModelSetInteraction& interaction, void* usr );
313  static void vrvMouseEventCb( const DtPortalVrvMouseEventInteraction& interaction, void* usr );
314  static void vrvObserverModeCb( const DtPortalVrvObserverModeInteraction& interaction, void* usr );
315  static void vrvSensorModeCb( const DtPortalVrvSensorModeInteraction& interaction, void* usr );
316  static void vrvSetSystemStateCb( const DtPortalVrvSetSystemStateInteraction& interaction, void* usr );
317  static void vrvTetherViewCb( const DtPortalVrvTetherViewInteraction& interaction, void* usr );
318  static void vrvTimingSignalCb( const DtPortalVrvTimingSignalInteraction& interaction, void* usr );
319  static void vrvTrackHistoriesCb( const DtPortalVrvTrackHistoriesInteraction& interaction, void* usr );
320  static void vrvUseSavedViewCb( const DtPortalVrvUseSavedViewInteraction& interaction, void* usr );
321  static void vrvViewMagnificationCb( const DtPortalVrvViewMagnificationInteraction& interaction, void* usr );
322 
323  private:
324 
327 
329  DtInteractionViewComponent& operator = ( const DtInteractionViewComponent& orig );
330 
331  protected:
332 
333  enum
334  {
335  ClearInteractions = 1
336  } InteractionPopupMenuPosition;
337 
338  protected:
339 
343 
345 
350  QTreeWidget* myTreeWidget;
355  std::vector<int> myListViewColumnSize;
356 
357  };
358 
359 }

Document ID: Generated on Wed Dec 21 15:05:11 EST 2016 from SVN revision 171891
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)