VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scriptedTaskDialog.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 #if !defined(Q_MOC_RUN)
21 #endif
22 #include <boost/signals2.hpp>
23 
24 #include <QtWidgets/QDialog>
25 
26 #include <vector>
27 
28 class QVBoxLayout;
29 class QScrollArea;
30 class QLabel;
31 class QFrame;
33 class DtSimMessage;
34 class QSpacerItem;
35 
36 namespace makVrf
37 {
38  class DtTaskSetVariableWidgetInterface;
39  class DtLocationEntryWidget;
40  class DtVrfFilteredListView;
41  class DtTaskSetVariableWidget;
42 
44  {
45  public:
47  virtual ~DtQtScriptedTaskFormatter();
48 
49  virtual DtString stringRep(const DtScriptedTask&) const;
50  virtual DtString stringRep(const DtString& scriptId, const DtRwVariableBindings& variables, const DtRwVariableBindings& variableDataTypes) const;
51 
52  protected:
54  };
55 
59  {
60  Q_OBJECT
61  public:
62 
63  struct WidgetInfo
64  {
65  bool visible;
66  std::string type;
69  QHBoxLayout* hBoxLayout;
71  };
72 
73  //CTOR
74  DtScriptedTaskDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
75 
76  //DTOR
77  virtual ~DtScriptedTaskDialog();
78 
79  virtual QSize minimumSizeHint() const;
80  virtual QSize sizeHint() const;
81 
82  virtual bool editStatement(const std::vector<makVrv::DtSimEntry*>& data, const DtSimStatement* s);
83 
85  virtual void initializeFromVariables(const QString& description, const std::vector<DtScriptedTaskVariable>& vars,
86  const std::vector<makVrv::DtSimEntry*>& initializeFrom = std::vector<makVrv::DtSimEntry*>());
87 
89  virtual void initializeFromLayout(const QString& description, const std::string& uiLayout,
90  const std::vector<makVrv::DtSimEntry*>& initializeFrom = std::vector<makVrv::DtSimEntry*>());
91 
93  virtual void setDescription(const QString&);
94 
96  virtual std::vector<DtScriptedTaskVariable> convertToVariables() const;
97 
99  virtual DtRwVariableBindings* convertToVariableBindings() const;
100 
101  virtual void setLocationValid(bool);
102 
103  virtual void validate();
104 
105  virtual QSize visibleSize();
106 
108  virtual void setupFromBoundVariables(const DtRwVariableBindings&);
109 
111  virtual DtRwVariableBindings* variableBindings() const;
112 
113  template <typename T> void getWidgetsOfType(std::vector<T>& widgets) const
114  {
115  std::map<std::string, WidgetInfo>::const_iterator iter = this->myWidgetVariables.begin();
116 
117  while (iter != this->myWidgetVariables.end())
118  {
119  T widget = dynamic_cast<T>(iter->second.widget);
120 
121  if (widget)
122  {
123  widgets.push_back(widget);
124  }
125 
126  ++iter;
127  }
128  }
129 
130  boost::signals2::signal<void (DtVrfFilteredListView*)> signal_filteredListViewSelectionChanged;
131  boost::signals2::signal<void (bool, DtTaskSetVariableWidget*)> signal_topLevelCheckStateChanged;
132 
133  virtual bool insertMapFocusHandler(DtMapFocusHandlerInterface* h, int index);
134 
136  virtual void setUiLayout(const std::string&);
137 
139  virtual QSize canvasSize();
140  virtual QWidget* contents(const std::vector<makVrv::DtSimEntry*>& data);
141 
143  virtual void setShowInternalVariables(bool);
144  bool showInternalVariables() const { return myShowInternalVariables; };
145 
146  static std::string buildLayoutFrom(makVrv::DtDe& de, const std::vector<DtScriptedTaskVariable>& vars, const std::string& description, bool showInternal = false);
147  virtual std::string buildLayoutFrom();
148 
149  virtual void resizeContentsToFit();
150 
152  virtual void setValidateBeforeSend(bool);
153  bool validateBeforeSend() const
154  {
155  return myValidateBeforeSend;
156  }
157 
158  protected:
159  virtual bool initializeForScriptedTask(const std::vector<makVrv::DtSimEntry*>& data, const DtSimStatement* s);
160  virtual bool initializeForScriptedSet(const std::vector<makVrv::DtSimEntry*>& data, const DtSimStatement* s);
161  virtual bool initializeStatementForEditing(const std::vector<makVrv::DtSimEntry*>& data, const DtString& scriptId, const DtSimStatement* stmt);
162 
163  virtual void slot_topLevelCheckStateChanged(bool, DtTaskSetVariableWidget*);
164 
165  virtual void slot_filteredListViewChanged(DtVrfFilteredListView*);
166 
168  virtual void initializeFromAction(DtVrfTaskSetAction*);
169  virtual void initializeDialogFromScriptId(const std::string& scriptId);
170 
171  virtual void setupFormForDisplayFromMetaData();
172 
174  virtual void initializeDialogFromLayout(const QString& description, const std::string& scriptId);
175 
176  virtual bool wantsSelectionOfObjectInCommandMode(const std::vector<makVrv::DtSimEntry*>&) const;
177  virtual void sendRequest();
178 
180  virtual void run(const std::vector<makVrv::DtSimEntry*>&);
181 
183  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& s);
184 
186  virtual void setupStatement(const DtSimStatement* stmt);
187 
189  virtual void postGuiSetup(const std::vector<makVrv::DtSimEntry*>& data);
190 
191  virtual void setLocationValid(DtLocationEntryWidget* loca, bool);
192 
195  virtual bool setupFromUiLayout(bool& setup, const std::vector<makVrv::DtSimEntry*>& data = std::vector<makVrv::DtSimEntry*>());
196 
199  virtual bool setupFromVariables(bool& setup, const std::vector<makVrv::DtSimEntry*>& data = std::vector<makVrv::DtSimEntry*>());
200 
202  virtual void requestUiLayout();
203 
205  virtual void receivedUiLayout(DtSimMessage*);
206 
208  virtual void initializeWidgetForVariable(DtTaskSetVariableWidgetInterface* w, const DtScriptedTaskVariable&, int index, bool fromDesigner, int& indent, bool& setup,
209  const std::vector<makVrv::DtSimEntry*>& data = std::vector<makVrv::DtSimEntry*>(), const std::set<makVrv::DtUniqueID>& selection = std::set<makVrv::DtUniqueID>());
210 
211  virtual void resizeToContents();
212 
213  public slots:
214 
217  virtual void updateValidity();
218 
219  public:
220  QWidget* myCanvas;
221  QVBoxLayout* myContentLayout;
223  QScrollArea* myScrollArea;
224  QWidget* myInsideWidget;
227  QVBoxLayout* myInsideLayout;
228 
229  protected:
232 
233  std::map<std::string, WidgetInfo> myWidgetVariables;
235  std::vector<DtScriptedTaskVariable> myScriptedTaskVariables;
236 
238 
239  typedef std::map<DtLocationEntryWidget*, bool> LocationValid;
241 
243 
244  std::string myUiLayout;
245 
248  std::vector<makVrv::DtUniqueID> mySimEntryIDs;
251 
252  bool myValidateBeforeSend = true;
253  };
254 
258  {
259  public:
260  DtScriptedTaskPreviewDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
261  virtual ~DtScriptedTaskPreviewDialog();
262 
264  virtual void init(const QString& description, const std::vector<DtScriptedTaskVariable>&);
265 
267  virtual void init(const QString& description, const std::string&);
268 
269  public:
272  };
273 
275  {
276  public:
277  virtual DtTaskSetDialogInterface* create(makVrv::DtDe&, QWidget* parent);
278  bool supportsType(makVrv::DtDe& de, const DtSimTaskMessageType&, const DtSimStatement*) const;
279  };
280 
282  {
283  public:
284  virtual DtTaskSetDialogInterface* create(makVrv::DtDe&, QWidget* parent);
285  bool supportsType(makVrv::DtDe& de, const DtSetMessageType&, const DtSimStatement*) const;
286  };
287 
289  {
290  public:
292  virtual DtScriptedTaskDialogCreator* create();
293 
295  static void registerInstance(makVrv::DtDe& de, DtScriptedTaskDialogCreatorInstance*);
296  };
297 
299  {
300  public:
302  virtual DtScriptedSetDialogCreator* create();
303 
305  static void registerInstance(makVrv::DtDe& de, DtScriptedSetDialogCreatorInstance*);
306  };
307 }
QVBoxLayout * myContentLayout
Definition: scriptedTaskDialog.h:221
QString myDescriptionText
Definition: scriptedTaskDialog.h:237
Definition: scriptedTaskTask.h:40
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Definition: taskSetDialogInterface.h:65
Definition: baseTaskSetDialogInterface.h:34
Definition: scriptedTaskDialog.h:63
int variableIndex
Definition: scriptedTaskDialog.h:70
makVrv::DtDe & myDe
Definition: scriptedTaskDialog.h:271
std::vector< makVrv::DtUniqueID > mySimEntryIDs
Variables when requesting UI layout during a run, will keep track of the element ids for sim entry (f...
Definition: scriptedTaskDialog.h:248
Definition: taskSetDialogInterface.h:84
Definition: scriptedTaskDialog.h:298
std::string myUiLayout
Definition: scriptedTaskDialog.h:244
bool myShowInternalVariables
Definition: scriptedTaskDialog.h:230
QFrame * myDescriptionSeparator
Definition: scriptedTaskDialog.h:226
QVBoxLayout * myInsideLayout
Definition: scriptedTaskDialog.h:227
Definition: scriptedTaskDialog.h:288
const DtSimStatement * myScriptedTaskToEdit
Definition: scriptedTaskDialog.h:250
boost::signals2::signal< void(DtVrfFilteredListView *)> signal_filteredListViewSelectionChanged
Definition: scriptedTaskDialog.h:130
This class will created a dialog from scripted task meta data and send that information to the back-e...
Definition: scriptedTaskDialog.h:58
ReaderWriter object that maintains a list of reader-writer variable bindings. It keeps a list of name...
Definition: rwVariableBindings.h:27
bool visible
Definition: scriptedTaskDialog.h:65
QHBoxLayout * hBoxLayout
Definition: scriptedTaskDialog.h:69
A dialog that allows a preview of the scripted task dialog to be show without sending task requests...
Definition: scriptedTaskDialog.h:257
Basic implementation that has a label at the top.
Definition: taskSetVariableWidget.h:228
Definition: scriptedTaskDialog.h:43
Contains makVrv::DtVirtualBaseClass class.
Contains makVrf::DtBaseTaskSetDialogInterface class. This is the interface for the dialog used by mos...
std::map< DtLocationEntryWidget *, bool > LocationValid
Definition: scriptedTaskDialog.h:239
bool validateBeforeSend() const
Definition: scriptedTaskDialog.h:153
DtTaskSetVariableWidgetInterface * widget
Definition: scriptedTaskDialog.h:68
void getWidgetsOfType(std::vector< T > &widgets) const
Definition: scriptedTaskDialog.h:113
int myUiLayoutRequestId
Definition: scriptedTaskDialog.h:249
The DtScriptedTaskTask will encapsulate the variables defined by a scripted task in the variable bind...
Definition: scriptedTaskTask.h:37
File: simMsg.h.
Definition: simMessage.h:35
std::string type
Definition: scriptedTaskDialog.h:66
A widget class for managing a DtVrfTreeWidget of objects which supports user-defined filters...
Definition: vrfFilteredListView.h:63
This class will define the interface needed for being a task set variable that can be used in task di...
Definition: taskSetVariableWidget.h:115
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
A class for keeping track of meta data for variables of scripted tasks. The information is currently ...
Definition: scriptedTaskVariable.h:34
QSpacerItem * myInsideWidgetSpacerItem
Definition: scriptedTaskDialog.h:225
Definition: scriptedTaskDialog.h:281
QWidget * myCanvas
Definition: scriptedTaskDialog.h:220
Base class that must be implemented by items that wish to be part of a map focus handler chain...
Definition: mapFocusHandler.h:27
Class that is used as a template for task/set dialogs.
Definition: taskSetDialogInterface.h:46
boost::signals2::signal< void(bool, DtTaskSetVariableWidget *)> signal_topLevelCheckStateChanged
Definition: scriptedTaskDialog.h:131
bool showInternalVariables() const
Definition: scriptedTaskDialog.h:144
QWidget * myInsideWidget
Definition: scriptedTaskDialog.h:224
makVrv::DtSignalConnectionManager myConnections
Definition: scriptedTaskDialog.h:242
Base class to provide boost signal/slot management.
class DtSimStatement:
Definition: simStatement.h:38
LocationValid myLocationsValid
Definition: scriptedTaskDialog.h:240
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
This class will manage filtered list views for the basic purpose of allowing a single list view in th...
Definition: mapFocusHandler.h:74
DtScriptedTaskDialog * myScriptedTaskDialog
Definition: scriptedTaskDialog.h:270
std::vector< DtScriptedTaskVariable > myScriptedTaskVariables
Definition: scriptedTaskDialog.h:235
QLabel * myDescription
Definition: scriptedTaskDialog.h:222
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:70
Definition: locationEntryWidget.h:45
DtMapFocusHandler myMapFocusHandler
Definition: scriptedTaskDialog.h:231
Contains makVrf::DtTaskSetMenu, makVrf::DtVrfTaskSetAction, and makVrf::DtTaskSetMenuItem class...
Definition: vrfTaskSetAction.h:106
QScrollArea * myScrollArea
Definition: scriptedTaskDialog.h:223
makVrv::DtDe & myDe
Definition: scriptedTaskDialog.h:53
std::string scriptedTaskVariableName
Definition: scriptedTaskDialog.h:67
#define DT_DLL_VRFGUITASKSETQT
Definition: vrfGuiTaskSetQt.h:22
class DtScriptedTaskMetaData
Definition: scriptedTaskMetaData.h:56
DtScriptedTaskMetaData myScriptedTaskMetaData
Definition: scriptedTaskDialog.h:234
std::map< std::string, WidgetInfo > myWidgetVariables
Definition: scriptedTaskDialog.h:233
Definition: scriptedTaskDialog.h:274

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)